System Guide
نظام کی رہنمائی
How EAlkahaf for Sisters works, role by role. Every user journey, end to end, in one place.
A student's lifecycle, end to end
طالبہ کا مکمل سفر
The left side of each step is what a person does. The tinted chips underneath are what the platform does by itself the moment that happens - that is how the modules and the LMS stay connected without anyone copying data around.
1 · Application
درخواستApplicant (public)Public website → /applyA prospective student fills the public form: name, guardian, contact, program, city, prior education, optional date of birth, gender and a certificate upload. No login needed.
Happens automatically
- LinkedDuplicate guard: same email + program while one is pending → politely refused (409)
- In-appApplication lands in the Admissions inbox instantly
2 · Review & decision
جائزہ اور فیصلہAdmissions OfficerAdministratorAdmissions moduleStaff review the application (uploaded documents are viewable), then approve, reject, or waitlist - singly or in bulk. The waitlist is a real queue with positions; 'Promote from waitlist' re-decides to approved. The applicant's own text is never overwritten by staff notes.
Happens automatically
- EmailDecision email to the applicant (approve / reject / waitlist wording)
- Auditadmission_decision recorded in the audit trail
3 · Convert to student
طالبہ کا اندراجAdmissions OfficerAdministratorAdmissions → application → ConvertOne click turns an approved applicant into a student with a gap-free registration number (e.g. EAK2026-0011). Guardians are matched by phone so one mother of three girls stays ONE guardian record. Details can be corrected later via Edit - fixing a reg number safely renames the login too.
Happens automatically
- LinkedStudent record + guardian link created; application marked converted (locked)
- Auditadmission_convert recorded
4 · Enrol into a class
کلاس میں داخلہAdministratorAdmissions OfficerStudents → ⋮ → Enrol into classPick program → batch → section (fullness shown against capacity). The same dialog transfers a student between classes later. One active enrolment per batch is enforced by the database itself.
Happens automatically
- MoodleMoodle: user, course and Student enrolment created automatically in the LMS
- Auditenroll recorded
5 · Logins & SSO
لاگ انAdministratorStudents → ⋮ / batch toolbarProvision a login per student, per guardian, or for a whole batch of guardians at once. Staff get logins too (Provision login on the staff profile) - that is what lets teachers into Moodle. One account opens both the ERP portal and Moodle (OIDC single sign-on).
Happens automatically
- EmailCredentials emailed when a real address exists; one-time temp password shown otherwise
- MoodleStaff provisioning also creates the Moodle teacher account
6 · Fee setup & billing
فیسAccountantAdministratorFees → Fee setup / Generate challansCreate fee types (Tuition, Admission…), combine them into a per-batch structure, then generate a month's challans for the whole batch in one action. Generation is duplicate-proof (even across Urdu/English month spellings), skips exited students, and uses only the newest active structure.
Happens automatically
- LinkedAccepted scholarships discount the new challans automatically
- LinkedActive hostel allocations add a Hostel fee line and link back
- EmailSend challans emails each one exactly once (re-clicks skip already-sent)
7 · Scholarships
وظائفAccountantAdministratorScholarships moduleRecord the request (percent or agreed amount), then accept or reject. Acceptance is not just a status: the discount lands on the student's open challans immediately and on every future challan at generation time - linked, so you can always see which scholarship produced which discount.
Happens automatically
- LinkedAudited FeeAdjustment created per challan (scholarshipId link)
- Auditscholarship_decision recorded
8 · Payments & reminders
ادائیگیAccountantStudent/Guardian (slips)Fees → Record payment · Portal → submit slipDesk payments are recorded and verified in one step (receipt emailed). Students can submit a bank-deposit slip from the portal: it stays pending - no receipt number, no balance change - until staff verify it (number minted then) or reject it. A wrongly recorded payment can be reversed with a mandatory reason.
Happens automatically
- In-appSlip submitted → Administrator + Accountant get an in-app alert
- ScheduledDaily: past-due challans flip to overdue; reminders go out (max once/7 days, active students only)
- Auditpayment_record / payment_verify / payment_reverse / fee_adjustment / challan_cancel all recorded
9 · Attendance
حاضریTeacherCoordinatorAttendance moduleMark a section's register and submit. Submitted registers are locked - but can be reopened for correction with a reason (the reason stays on the record). Duplicate registers for the same day are impossible; sessions attach themselves to the current term.
Happens automatically
- LinkedStudent's My Record and the guardian's My Children update instantly
10 · Exams & results
امتحان اور نتائجTeacherCoordinatorAdministratorAssessments moduleCreate weighted assessments, enter marks, then Compute results for the term (per section or whole term - multi-section terms compute correctly). Publishing stamps the sheets, locks them against silent recompute, and notifies students. Rechecks go through an approval queue - an approved recheck really updates the mark and the result sheet.
Happens automatically
- EmailResult published → email to every student with an address
- In-appIn-app notification with the term name
- MoodleMoodle gradebook syncs into read-only LMS grades nightly; staff import chosen ones as official marks
11 · Certificates
اسنادAdministratorCoordinatorStudents → ⋮ / batch toolbar (bulk)Issue one certificate or a whole batch. Every certificate carries a scannable QR of its public verification page - anyone can confirm it is genuine without logging in. The certificate stays valid forever, independent of logins.
Happens automatically
- LinkedPublic /verify/<code> page; durable student link on the record
- Auditcertificate_issue recorded
12 · Promote, graduate or exit
ترقی، فراغت یا اخراجAdministratorStudents → Promote batch / Change statusYear end: promote a batch (with per-student selection) into the next one - if the target batch has no fee structure yet, the system tells you so billing is never silently missed. Graduating creates the alumni record by itself. Suspending or withdrawing a student requires a reason and truly closes the door: login banned, sessions killed, Moodle suspended, future billing stopped. Re-admission reverses all of it.
Happens automatically
- MoodleExit → Moodle account suspended; re-admit → restored
- ScheduledExited students drop out of billing and reminders automatically
- Auditstatus_change / promote / graduate recorded; alumni record auto-created
…and where it all shows up
Every stage above feeds these three living views - no manual updates, ever.
Student - My Record
Her profile, attendance %, fee balance with challans, published results - bilingual, live.
Guardian - My Children
Each daughter's attendance, fees, results and announcements in one place.
Moodle classroom
Lessons, protected videos and materials - same login, kept in sync by the ERP. Grades flow back too: the portal pulls each course's gradebook into read-only LMS grades nightly, and staff import the ones that should count as official marks.