Parent & Student Portal
Complete self-service portal — fees, attendance, results, timetable, assignments, health, transport, events, grievances, messaging
Overview
The Parent & Student Portal is a self-service interface where parents can view their children's information, pay fees, check attendance, results, timetable, assignments, health records, transport details, register for events, file grievances, and communicate with the school.
Portal URL: <your-subdomain>.opticrm.app/portal/login
Portal Registration
For Parents
- Visit the registration URL (shared by the school)
- Fill in: Name, email, phone, child's details
- Submit — registration goes to admin for approval
- After approval, receive email with temporary password
- Log in and change password on first access
For Admins
Review registrations at Admin > Portal Registrations:
- Approve or reject registration requests
- Approved contacts receive welcome email with credentials
- Link contacts to student records
Portal Features
Fees & Payments
- Summary cards: Total Fees, Paid, Outstanding, Overdue
- Pending invoices table with "Pay Now" button
- Razorpay checkout for online payment
- Payment history with receipt download
- PDF receipts with fee breakdown, payment mode, amount in words
Attendance
- Monthly calendar view with color-coded statuses
- Attendance percentage calculation
- Select between multiple children
Results
- Exam-wise marks and grades
- Subject breakdown
- Report card access
Timetable
- Weekly timetable grid grouped by day
- Period number, start/end time, subject, teacher, room
- Color-coded day sections
- Child selector for parents with multiple children
Assignments
- List of published assignments with status badges (Pending, Submitted, Graded, Overdue)
- Subject and teacher info
- Due dates and max marks
- Submission details: submitted date, marks awarded, teacher feedback
- Child selector
Transport
- Route information (name, code, departure times)
- Vehicle details (registration, make/model, driver name)
- Highlighted personal stop with pickup/drop times
- Full route stop list with sequence numbers
- Boarding type indicator
Health Records
- Health Profile: Blood group, height, weight, allergies, chronic conditions, medications, doctor info, insurance
- Screenings tab: Type, date, findings, BMI, vision, conducted by
- Sick Bay Visits tab: Complaint, symptoms, treatment, medicine given, outcome
- Vaccinations tab: Vaccine name, dose number, date, next due date
Events
- Upcoming events with type, date, venue, description
- Capacity tracking (registered/total)
- Register button for RSVP events
- Registration status badge
Grievances
- Submit grievance: Category, subject, description, priority
- Auto-generated reference number (GRV-YYYY-NNNN)
- Status tracking: Open, In Progress, Resolved, Closed
- Comment thread (staff responses visible)
- Resolution display
Profile
- Account info (name, email, role, member since)
- Linked students with class and section
- Editable contact details (mobile, phone, address)
- Communication preferences (email opt-in, SMS opt-in)
Announcements
- School announcements filtered by audience
- Pinned announcements at top
- Acknowledgement button for required announcements
Messages
- Thread-based messaging with school staff
- Unread message badges
- Chat-style conversation view
Change Password
- Current + new password form
Child Selector
Parents with multiple children see a dropdown to switch between children. All child-specific data (fees, attendance, results, timetable, assignments, transport, health) updates based on the selected child.
Portal API Endpoints
| Method | Route | Description |
|---|---|---|
| GET | /api/portal/my-children | Get linked children |
| GET | /api/portal/fees?studentId=x | Get invoices + summary |
| GET | /api/portal/attendance?studentId=x | Get attendance records |
| GET | /api/portal/results?studentId=x | Get exam results |
| GET | /api/portal/timetable?studentId=x | Get weekly timetable |
| GET | /api/portal/assignments?studentId=x | Get assignments + submissions |
| GET | /api/portal/transport?studentId=x | Get transport allocation |
| GET | /api/portal/health?studentId=x | Get health records |
| GET | /api/portal/events | Get upcoming events |
| POST | /api/portal/events | Register for event |
| GET | /api/portal/grievances | List grievances |
| POST | /api/portal/grievances | Submit grievance |
| GET | /api/portal/profile | Get profile + children |
| PATCH | /api/portal/profile | Update contact details |
| GET | /api/portal/receipts/[id] | Get receipt details |
| POST | /api/portal/payments | Create order / verify payment |
| POST | /api/portal/change-password | Change password |