Complete admin guide
How to run TSN Digital Academy
Step-by-step instructions for every admin action — courses, free skill check, question bank, enrollments, certificates, email, and the Data Manager. Keep this page bookmarked.
1. Overview & login
Log in with an Admin account. You land on the Admin Dashboard. Use the left sidebar for every module.
| Role | What they can do |
|---|---|
| Admin | Full control — settings, users, courses, money, certificates, email, Data Manager |
| Accounts staff | Approve payments / admissions & cert fees |
| Support staff | Tickets, schedules, proctor help |
| Teacher | Own courses, students, practical reviews, proctor |
| Student | Learn, enroll, take exams, certificates |
Tip: Prefer the dashboard sidebar over raw Django /admin/.
Use Data Manager when you need a field that is not on a dedicated screen.
2. Free skill check (no login) — how it works & how to enable/disable
About the button on the course page:
“Free skill check (no login)” appears on the public course detail card
(next to Start Learning / Direct exam). Visitors can take a short quiz
without creating an account. After answering, they must enter
email (and optional WhatsApp) to see their score — this captures leads.
What the visitor experiences
- Opens a published course page → clicks Free skill check (no login).
- Reads the intro → starts a mini quiz (12 MCQs pulled from that course’s verified question bank).
- Submits answers → enters email + WhatsApp (lead form).
- Sees their score. Lead is saved under Diagnostic attempts for your follow-up.
How to ENABLE it for a course
- Sidebar → Manage Courses → open the course → Edit.
- Scroll to section Growth & marketing.
- Turn ON the switch: Enable Free skill check (no login).
- Save the course. Status must be Published and Active.
- Import enough questions (see §7): at least 12 active + verified questions for that course. Without them the quiz shows an error and cannot start.
- Open the public course page and confirm the button is visible.
How to DISABLE it
- Manage Courses → Edit the course.
- In Growth & marketing, turn OFF Enable Free skill check (no login).
- Save. The button disappears from the course page and listing; direct quiz URLs also stop working for that course.
Where else can I toggle it?
- Data Manager → Courses → Course → Edit → field Enable free diagnostic
- Django admin → Courses → Course → same checkbox (advanced)
Where to see leads (people who took the skill check)
- Sidebar → Data Manager.
- Open Courses group → Diagnostic attempts.
- Each row shows course, email, WhatsApp, score, and date — use this list to call / message leads.
Common mistake: Button is ON but quiz fails with “bank has 0 / need 12 verified questions”.
Fix: import questions for that course, mark them verified and active.
3. Sidebar menu map (what each item does)
| Menu | Use it for |
|---|---|
| Admin Dashboard | Counts, recent enrollments & users |
| Manage Users | Create / edit / delete users, reset passwords |
| Roles & Permissions | See what each role can do |
| Manage Courses | Create courses, modules; growth toggles |
| Categories | Organize courses / programs |
| Certifications | Cert programs & exam questions |
| Testing Centers | Physical / online test venues |
| Exam Schedules | Time slots for center exams |
| Center Bookings | Student bookings at centers |
| Cert. Applications | Approve cert applications & fees |
| Issued Certificates | View / print issued certificates |
| Practical reviews | Approve project/practical work before cert |
| Proctor Sessions | Live proctor queue |
| Admissions | Approve course enrollments & payment proofs |
| Support Tickets | Student help desk |
| Contact Inquiries | Website contact form messages |
| Academy Settings | Logo, theme, payments, SMTP email |
| Email & Templates | Welcome / reset templates + bulk send |
| Data Manager | All database tables with easy UI |
| Promo Codes | Discount codes |
4. Manage users
Add a user
- Sidebar → Manage Users → Add User.
- Fill username, email, role (Student / Teacher / Admin / staff), password.
- Save. If SMTP is configured, signup welcome email may send automatically.
Edit role or profile
- Manage Users → find the user → Edit.
- Change role / profile fields → Save.
Reset password
- Manage Users → Reset password for that user → set a new password.
- (Students can also use public Forgot Password if SMTP works.)
Do not set passwords via Data Manager — the password field is hidden on purpose. Always use Reset password.
5. Courses, modules & lessons
Create a course
- Sidebar → Manage Courses → Create Course.
- Enter title, short & full description, price, duration, status, thumbnail, teachers.
- Under Growth & marketing: optional Featured + Free skill check.
- Save. Set status to Published when ready for the public catalog.
Add modules & lessons
- On Manage Courses, open the course and use Add Module.
- Add lessons (video URL / file, content, Zoom/Meet links) inside each module.
- For advanced pricing (exam fee, pass %, bank size, practical, subscription), use Data Manager → Courses → Course → Edit (all fields are there).
Learning Path vs Direct Cert
- Learning Path — student enrolls, studies modules, then takes exam.
- Direct exam — student pays exam fee and sits the MCQ exam without the learning track (if enabled on the course).
6. Categories
- Sidebar → Categories → Add / Edit.
- Set name, order, and whether it applies to courses, certifications, or both.
- Assign a category when creating/editing a course so filters work on the public site.
7. Question bank (required for exams & free skill check)
Exams and the free skill check both draw from Course questions for that course.
Import questions (recommended)
- Open Django admin /admin/ → Course questions → Import or use Data Manager to add questions one by one.
- Download the CSV template, fill columns (course, topic, stem, options A–D, correct option, etc.).
- Upload. Import adds questions; check Replace bank only if you intend to wipe and reload.
- Select imported rows → action Mark verified (and ensure Active).
Minimum for Free skill check: 12 active + verified questions on that course.
For full exams: fill at least question_count_per_attempt (often 100) with verified questions.
For full exams: fill at least question_count_per_attempt (often 100) with verified questions.
Student exam flow (after bank is ready)
- Student enrolls / pays → approved in Admissions.
- Starts exam from the course page → timed MCQ with soft anti-cheat (flagged after 3 tab switches).
- Result + topic breakdown; certificate issues when pass rules (and practical, if required) are met.
8. Admissions & course payments
- Sidebar → Admissions.
- Open a pending enrollment. Review payment proof (manual) or Stripe status.
- Approve to unlock learning / exam, or Reject with a reason.
Configure payment methods under Academy Settings → Payments (Manual bank/Easypaisa instructions and/or Stripe keys).
9. Certification programs
- Sidebar → Certifications → create/edit a program.
- Add exam questions for that program where the UI provides it.
- Publish when ready for student applications.
10. Testing centers & exam schedules
- Testing Centers — add venue name, city, capacity, address.
- Exam Schedules — create slots (date/time) linked to a center / program.
- Center Bookings — review who booked which slot.
11. Cert applications & issued certificates
- Cert. Applications — review applicant, payment, schedule → approve/reject.
- Issued Certificates — list of awarded certificates; print hard copy / share verify link.
- Public verify page uses the URL from Academy Settings → Certificates (or built-in /verify/).
12. Practical reviews
If a course has Requires practical enabled, students must submit practical work. Certificates stay blocked until staff approve.
- Sidebar → Practical reviews.
- Open submission → Approve or Request changes with feedback.
13. Academy Settings
- Sidebar → Academy Settings.
- Branding — institute name, tagline, light/dark logos, favicon.
- Certificates — verify URL, signer name/title, signature & seal images.
- Theme — color preset or custom colors.
- Pricing — currency code & symbol (e.g. PKR).
- Payments — enable Manual and/or Stripe; paste keys; copy webhook URL to Stripe.
- Email / SMTP — see next section.
14. SMTP, templates & bulk email
Configure SMTP (so emails actually arrive)
- Academy Settings → tab Email / SMTP.
- Fill host (e.g. mail.yourdomain.com), port 587 + TLS (or 465 + SSL), username, password, From address.
- Turn ON “Use admin SMTP settings” → Save settings.
- Use Send test to your own email. Check inbox + spam.
Email templates
- Sidebar → Email & Templates.
- Edit Signup welcome (trigger: On user signup) and Password reset.
- Placeholders: {{ user_name }}, {{ institute_name }}, {{ login_url }}, {{ reset_url }}, etc.
- Inactive templates are not sent automatically.
Bulk / compose email
- Email & Templates → Compose / bulk.
- Choose recipients: all of a role, selected users, or paste emails.
- Optionally load a template → edit subject/body → Send.
15. Promo codes
- Sidebar → Promo Codes → create code, discount %, validity dates, usage limits.
- Students enter the code at checkout / enrollment when the form supports it.
16. Support tickets & contact inquiries
- Support Tickets — open, reply, change status (open / in progress / closed).
- Contact Inquiries — messages from the public contact form; mark resolved when done.
17. Data Manager (all tables in one place)
Sidebar → Data Manager mirrors every model from Django admin with a simple Bootstrap UI.
- Open Data Manager → pick an app group (Courses, Accounts, …).
- Click a model tile → search, Add, Edit, Delete.
- Use this for fields not shown on Manage Courses (exam fees, pass %, bank size, bundles, mentors, etc.).
Be careful with Delete — related records may block deletion. Prefer dedicated screens for admissions and certificates when available.
18. Go-live checklist
- Academy Settings: branding, currency PKR, payment methods, certificate seal/signature.
- SMTP enabled + test email received.
- At least one Published course with modules/lessons.
- Question bank imported & verified (≥12 for skill check; full size for exams).
- Free skill check toggled ON only for courses you want as lead magnets.
- Create a test student → enroll → approve admission → take a short exam if configured.
- Verify a certificate on the public verify page.
After code updates that add database fields, run:
python manage.py migrate
on the server before using new toggles.