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

1. Opens a published course page → clicks Free skill check (no login).
2. Reads the intro → starts a mini quiz (12 MCQs pulled from that course’s verified question bank).
3. Submits answers → enters email + WhatsApp (lead form).
4. Sees their score. Lead is saved under Diagnostic attempts for your follow-up.

### How to ENABLE it for a course

1. Sidebar → Manage Courses → open the course → Edit.
2. Scroll to section Growth & marketing.
3. Turn ON the switch: Enable Free skill check (no login).
4. Save the course. Status must be Published and Active.
5. Import enough questions (see §7): at least 12 active + verified questions for that course. Without them the quiz shows an error and cannot start.
6. Open the public course page and confirm the button is visible.

### How to DISABLE it

1. Manage Courses → Edit the course.
2. In Growth & marketing, turn OFF Enable Free skill check (no login).
3. 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)

1. Sidebar → Data Manager.
2. Open Courses group → Diagnostic attempts.
3. 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

1. Sidebar → Manage Users → Add User.
2. Fill username, email, role (Student / Teacher / Admin / staff), password.
3. Save. If SMTP is configured, signup welcome email may send automatically.

### Edit role or profile

1. Manage Users → find the user → Edit.
2. Change role / profile fields → Save.

### Reset password

1. Manage Users → Reset password for that user → set a new password.
2. (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

1. Sidebar → Manage Courses → Create Course.
2. Enter title, short & full description, price, duration, status, thumbnail, teachers.
3. Under Growth & marketing: optional Featured + Free skill check.
4. Save. Set status to Published when ready for the public catalog.

### Add modules & lessons

1. On Manage Courses, open the course and use Add Module.
2. Add lessons (video URL / file, content, Zoom/Meet links) inside each module.
3. 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

1. Sidebar → Categories → Add / Edit.
2. Set name, order, and whether it applies to courses, certifications, or both.
3. 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)

1. Open Django admin /admin/ → Course questions → Import or use Data Manager to add questions one by one.
2. Download the CSV template, fill columns (course, topic, stem, options A–D, correct option, etc.).
3. Upload. Import adds questions; check Replace bank only if you intend to wipe and reload.
4. 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.

### Student exam flow (after bank is ready)

1. Student enrolls / pays → approved in Admissions.
2. Starts exam from the course page → timed MCQ with soft anti-cheat (flagged after 3 tab switches).
3. Result + topic breakdown; certificate issues when pass rules (and practical, if required) are met.

## 8. Admissions & course payments

1. Sidebar → Admissions.
2. Open a pending enrollment. Review payment proof (manual) or Stripe status.
3. 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

1. Sidebar → Certifications → create/edit a program.
2. Add exam questions for that program where the UI provides it.
3. Publish when ready for student applications.

## 10. Testing centers & exam schedules

1. Testing Centers — add venue name, city, capacity, address.
2. Exam Schedules — create slots (date/time) linked to a center / program.
3. Center Bookings — review who booked which slot.

## 11. Cert applications & issued certificates

1. Cert. Applications — review applicant, payment, schedule → approve/reject.
2. Issued Certificates — list of awarded certificates; print hard copy / share verify link.
3. 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.

1. Sidebar → Practical reviews.
2. Open submission → Approve or Request changes with feedback.

## 13. Academy Settings

1. Sidebar → Academy Settings.
2. Branding — institute name, tagline, light/dark logos, favicon.
3. Certificates — verify URL, signer name/title, signature & seal images.
4. Theme — color preset or custom colors.
5. Pricing — currency code & symbol (e.g. PKR).
6. Payments — enable Manual and/or Stripe; paste keys; copy webhook URL to Stripe.
7. Email / SMTP — see next section.

## 14. SMTP, templates & bulk email

### Configure SMTP (so emails actually arrive)

1. Academy Settings → tab Email / SMTP.
2. Fill host (e.g. mail.yourdomain.com), port 587 + TLS (or 465 + SSL), username, password, From address.
3. Turn ON “Use admin SMTP settings” → Save settings.
4. Use Send test to your own email. Check inbox + spam.

### Email templates

1. Sidebar → Email & Templates.
2. Edit Signup welcome (trigger: On user signup) and Password reset.
3. Placeholders: {{ user_name }}, {{ institute_name }}, {{ login_url }}, {{ reset_url }}, etc.
4. Inactive templates are not sent automatically.

### Bulk / compose email

1. Email & Templates → Compose / bulk.
2. Choose recipients: all of a role, selected users, or paste emails.
3. Optionally load a template → edit subject/body → Send.

## 15. Promo codes

1. Sidebar → Promo Codes → create code, discount %, validity dates, usage limits.
2. Students enter the code at checkout / enrollment when the form supports it.

## 16. Support tickets & contact inquiries

1. Support Tickets — open, reply, change status (open / in progress / closed).
2. 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.

1. Open Data Manager → pick an app group (Courses, Accounts, …).
2. Click a model tile → search, Add, Edit, Delete.
3. 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

1. Academy Settings: branding, currency PKR, payment methods, certificate seal/signature.
2. SMTP enabled + test email received.
3. At least one Published course with modules/lessons.
4. Question bank imported & verified (≥12 for skill check; full size for exams).
5. Free skill check toggled ON only for courses you want as lead magnets.
6. Create a test student → enroll → approve admission → take a short exam if configured.
7. 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.