DAC Academy — System Inventory & Navigation Map
| Route | Page | Description |
|---|
/ | Root page | Landing/home page |
/login | Login page | Email/password authentication |
/forgot-password | Forgot Password | Request password reset email |
/update-password | Update Password | Set new password via reset token |
/privacy | Privacy Policy | Static privacy page |
/terms | Terms of Service | Static terms page |
/sentry-example-page | Sentry Test | Debug page for error tracking |
| Route | Method | Description | Access |
|---|
/api/auth/[...all] | All | Better Auth handler (login, signup, session, etc.) | Public |
/api/batches | GET | Returns all batches for select dropdowns | Admin/Counselor |
/api/cron/fee-reminders | POST | Cron-triggered fee reminder processing | Cron job |
/api/cron/process-notifications | POST | Cron-triggered WhatsApp queue processor | Cron job |
/api/health | GET | Health check endpoint | Public |
/api/metrics | GET | Application metrics | Public |
/api/receipts/[id]/pdf | GET | Serve receipt PDF for download/print | Authenticated |
/api/sentry-example-api | GET | Sentry error test endpoint | Any |
/receipts/[id] | GET | Public receipt view/redirect | Public |
These routes share the Admin Layout with sidebar navigation. Accessible by: admin, counselor, warden (role-dependent).
| Route | Page | Roles |
|---|
/dashboard | Dashboard Page | admin, counselor, warden |
Widgets:
- Total Leads — Count of all leads (admin, counselor)
- Hot Leads — Subset of leads marked "hot" (admin, counselor)
- Admissions — Total admissions count (admin, counselor)
- Students — Active student count (admin, counselor, warden)
- Revenue — Sum of all paid fees in paise (admin, counselor)
- Pending Outings — Outings awaiting approval (admin, warden)
- Pending Medical Requests — Medical requests awaiting acknowledgment (admin, warden)
- WhatsApp Messages — Total notification count (admin)
- Currently Out — Approved outings not yet returned (warden only)
- Charts Section:
- Leads by Status — Pie/bar chart of lead distribution
- Fee Collection — Time-series chart of fee collection
- (Hidden for warden role)
| Route | Page | Roles |
|---|
/leads | Leads list (Kanban view default) | admin, counselor |
/leads?status=X | Leads table view (drill-down from Kanban) | admin, counselor |
/leads/new | Create new lead form | admin, counselor |
/leads/[id] | Lead detail page | admin, counselor |
/leads/[id]/edit | Edit lead form | admin, counselor |
Components on Leads Page:
- Kanban Columns: New, Contacted, Interested, Registered, Admitted, Lost
- Filters: Branch, Date Range (from/to), Search
- Sortable Columns (table view): Student Name, Parent Name, Probability, Created Date
Components on Lead Detail Page:
- Student Information Card
- Parent Information Card
- Lead Status Card
- Registration Receipt Card (if registered)
- Phone Action Buttons (call/WhatsApp)
- Follow-up Timeline
- Edit Lead button
- Register button (if eligible)
- Convert to Admission button (if eligible)
| Route | Page | Roles |
|---|
/admissions | Admissions list | admin, counselor |
/admissions/new | New admission form (with leadId query param) | admin, counselor |
/admissions/new?leadId=X | New admission form pre-filled from lead | admin, counselor |
/admissions/[id] | Redirects to /students/[id] | admin, counselor |
/admissions/[id]/edit | Edit admission (historical snapshot only) | admin, counselor |
Filters on Admissions Page: Branch, Course, Date Range (from/to), Search
Admission Form Sections (New):
- Student Details — Name, Class, Target Exam, Date of Birth, Gender
- Contact Details — Phone (parent), Email, Father/Mother/Local Guardian phones
- Academic Info — Course, Batch, Board, School, Medium
- Address — State, Full Address
- Hostel — Room, Bed, Locker selection (if hostel opted)
- Fee Structure — Admission Fee, Hostel Fee, Installment schedule
- Payment — Amount Paid, Payment Mode, Transaction ID, Screenshot
- Documents — Document checklist items (photo upload per item)
- Admission Items — Items to be given to student
- Student Photo — Upload
| Route | Page | Roles |
|---|
/students | Students list | admin, counselor, warden |
/students/[id] | Student detail page | admin, counselor, warden |
/students/[id]/edit | Edit student profile | admin, counselor |
Filters on Students Page: Branch, Course, Batch, Class, Status, Hostel Status, Admission Type, Session, Search
Actions: Export to Excel
Student Detail Page Sections:
- Header: Photo, Name, Batch, Branch, Status badge, Session status
- Action Buttons: Edit Profile, Batch Transfer, Promote, Re-enroll, Reinstate, Parent Password Reset, Parent Account Creation
- Personal Info Card: Name, DOB, Class, Target Exam, Board, Medium, School, Address, Aadhaar
- Contact Info Card: Parent name/phone/WhatsApp, Father/Mother/Guardian phones, Email
- Hostel Info Card: Room, Bed, Locker, Hostel name (if hostel opted)
- Admission Info Card: Admission type, date, fee snapshot, transaction details
- Documents Card: Checklist items with status and document links
- Admission Items Card: Items given/remaining
- Fee Card: Fee record, payment progress, installment timeline
- Payment History: Transaction table with Edit/Void/Pay actions
- Enrollment History Card: Session-by-session enrollment history
- Re-enroll Dialog — For students who left/completed
- Promote Dialog — Move to next session
- Status Transition Dialog — Mark as Left/TC Issued/Removed/Completed
| Route | Page | Roles |
|---|
/fees | Fees ledger | admin, counselor |
Filters on Fees Page: Branch, Batch, Course, Due Date Range, Search
Columns: Student Name, Batch, Total Fee, Paid, Outstanding, Status (Paid/Pending/Partial/Overdue), Last Payment
| Route | Page | Roles |
|---|
/manual-receipts | Generate receipts for non-admission payments | admin, counselor |
| Route | Page | Roles |
|---|
/hostel | Hostel management | admin, warden |
/hostel/outings/[id] | Outing review detail | admin, warden |
Hostel Page Tabs:
- Directory — Student hostel directory (room, name, contact, status)
- Outings — Outing requests list with status filter
- Medical Requests — Medical request queue
Outing Review Page: Request details, review form (Approve/Reject), student/branch info
| Route | Page | Roles |
|---|
/users | User management | admin |
Features: Create user, Edit user, Toggle active status, Reset password, Role assignment, Branch assignment, Hostel assignment
| Route | Page | Roles |
|---|
/whatsapp-log | WhatsApp message delivery log | admin |
Filters: Status, Event Type, Date Range, Search by recipient/template
| Route | Page | Roles |
|---|
/audit-log | System audit trail | admin |
Filters: Entity Type, Action, Date Range, Search
Features: Human-readable summaries for each audit entry
| Route | Page | Roles |
|---|
/announcements | Create/manage announcements | admin |
| Route | Page | Roles |
|---|
/settings | System configuration | admin |
Settings Tabs:
- Academy — Academy name, GST settings
- Branches — Add/edit/toggle branches
- Courses — Add/edit/toggle courses
- Batches — Add/edit/toggle batches (with fee fields and payment schedule)
- Sessions — Create/activate/deactivate academic sessions
- Hostels — Add/edit/toggle hostels per branch
- Checklist — Document checklist items configuration
- WhatsApp — Notification settings (toggles for each event type)
| Route | Page | Roles |
|---|
/batches/[id] | Batch detail view (students, fee structure) | admin, counselor |
| Route | Page | Roles |
|---|
/parent/dashboard | Parent dashboard | parent |
/parent/hostel-outing | Request/View hostel outings | parent (hostel students only) |
/parent/medical | Submit/View medical requests | parent (hostel students only) |
/parent/receipts | View receipts for all linked students | parent |
/parent/receipts/[id] | Receipt detail with print | parent |
Parent Dashboard Widgets:
- Students linked to account
- Upcoming fee installments
- Recent receipts
- Recent outing requests
- Recent medical requests
- Announcements matching student profiles
| Route | Page | Roles |
|---|
/warden | Warden dashboard (redirects to /dashboard) | warden, admin |
/warden/students | Warden student directory | warden, admin |
/warden/medical | Medical request queue | warden, admin |
/warden/export | Export student data | warden, admin |
| # | Label | Icon | href | Roles |
|---|
| 1 | Dashboard | LayoutDashboard | /dashboard | admin, counselor, warden |
| 2 | Leads | Users | /leads | admin, counselor |
| 3 | Admissions | ClipboardList | /admissions | admin, counselor |
| 4 | Students | GraduationCap | /students | admin, counselor, warden |
| 5 | Fees | IndianRupee | /fees | admin, counselor |
| 6 | manual Receipts | Printer | /manual-receipts | admin, counselor |
| 7 | Hostel | Home | /hostel | admin, warden |
| 8 | Users | UserPlus | /users | admin |
| 9 | WhatsApp Log | MessageCircle | /whatsapp-log | admin |
| 10 | Audit Log | ScrollText | /audit-log | admin |
| 11 | Announcements | Megaphone | /announcements | admin |
| 12 | Settings | Settings | /settings | admin |
Additional Sidebar Elements:
- Parent Portal Link (bottom of sidebar) — shown when user has linked parent students; navigates to
/parent/dashboard
- Branch Filter (in header) — shown only for admin/counselor roles
| # | Label | Icon | href | Condition |
|---|
| 1 | Dashboard | Home | /parent/dashboard | Always |
| 2 | Hostel Outing | MapPin | /parent/hostel-outing | Has hostel students |
| 3 | Medical Requests | Activity | /parent/medical | Has hostel students |
| 4 | Receipts | Receipt | /parent/receipts | Always |
| 5 | Staff Portal | — | /dashboard | Staff role with linked students |
| # | Label | href | Description |
|---|
| 1 | Dashboard | /warden | (redirects to /dashboard) |
| 2 | Students | /warden/students | Hostel student directory |
| 3 | Medical Queue | /warden/medical | Medical request management |
| 4 | Export | /warden/export | Data export |
| Component | Triggered From | Purpose | Roles |
|---|
| Register Lead Dialog | Lead detail page / Lead form | Convert lead to registered with payment | admin, counselor |
| Add Payment Dialog (3 modes) | Fees page / Student detail | New payment, edit payment, resolve installment | admin, counselor |
| Receipt History Dialog | Fees table row | View/download receipts for a student | admin, counselor |
| Batch Transfer Dialog | Student detail page | Move student to different batch | admin, counselor |
| Batch Enrollment Dialog | Batch detail page | View/enroll students in batch | admin, counselor |
| Status Transition Dialog | Student detail page | Mark Left/TC Issued/Removed/Completed | admin, counselor |
| Re-enroll Dialog | Student detail page | Re-admit student for new session | admin, counselor |
| Reinstate Dialog | Student detail page | Restore previously left student | admin, counselor |
| Promote Dialog | Student detail page | Promote to next academic session | admin, counselor |
| User Dialog | Users page | Create/edit system user | admin |
| User Status Toggle | Users page | Activate/deactivate user | admin |
| Outing Review Form | Outing detail page | Approve/reject outing request | admin, warden |
| Create Parent Account Button | Student detail page | Generate parent portal credentials | admin, counselor |
| Reset Parent Password Button | Student detail page | Reset parent portal password | admin, counselor |
| Phone Action Buttons | Lead detail page / Student detail | Call or WhatsApp contact | admin, counselor |
| Search Input (global) | Header/Page | Quick search across entities | All staff |
The mobile sidebar is a slide-out Sheet component containing the same NAV_ITEMS as the desktop sidebar, role-filtered identically. Includes logo, branch-aware links, and optional Parent Portal link.
Login Page (/login)
↓ Email + Password + Remember Me
↓ Rate limited: 5 attempts/IP/60s
↓ Better Auth signInEmail API
↓ If parent → redirect /parent/dashboard
↓ If admin/counselor/warden → redirect /dashboard
Forgot Password (/forgot-password)
↓ Email + Rate limited: 3 requests/email/120s
↓ Better Auth requestPasswordReset API
↓ Email sent with reset link → /update-password?token=X
Update Password (/update-password)
↓ New Password + Token OR Existing Session
↓ Rate limited: 5 attempts/IP/60s
↓ If parent → redirect /parent/dashboard
↓ If staff → redirect /dashboard
Logout (from header user menu)
↓ Better Auth signOut API
↓ Redirect /login
The front desk workflow spans multiple screens in a sequential flow:
/leads/new → /leads → /leads/[id] → /leads/[id]/edit
↓ (Register)
Register Dialog → receipt generated
↓ (Convert to Admission)
/admissions/new?leadId=X → Submit Admission
↓
Student created, parent account created,
fee record, installments, receipt, document checklist
↓
/students/[id] → Student details