The Challenge
National Polytechnic College runs the full lifecycle of a technical college — admissions, seat allocation, class timetabling across many departments and shifts, fee collection, attendance, stipends, and a referral network that drives enrolments. Almost all of it was handled on paper and spreadsheets, which created familiar problems:
- Admissions by hand — paper forms, manual document checks, and no easy way for applicants to track their status or pay online.
- Timetabling agony — building conflict-free class routines for every department, semester, and shift by hand, avoiding teacher and room double-bookings, is slow and error-prone.
- Fees and cash — collecting fees, tracking installments and late fines, and reconciling mobile-money payments without a system.
- Commission disputes — the college relies on referrers to bring in students, and manual commission tracking led to disputes, delays, and no audit trail.
- Communication gaps — no systematic way to notify guardians about absences or send fee reminders.
All of it needed to work the way Bangladesh works: bKash mobile money, Bangla-language interfaces, and SMS to guardians.
The Solution
We built NPC EMS as a single Laravel 12 platform that replaces roughly ten manual processes end to end. It began as a referral-commission payout system and grew into a full education management system — online admissions with lottery seat allocation, an automated class-routine generation engine, dual-gateway digital payments and installment-based fee management, attendance with automated guardian SMS, stipend and waiver administration, self-service student and teacher portals, and the original commission-payout engine — all in a Bangla-first bilingual interface with a mobile-ready API underneath.
Feature Highlights
1. Online Admission Portal
Prospective students apply through a public, rate-limited online form — with guardian details, declarations, document uploads, and shift preference — then track their status by a private UUID, view lottery results, pay the admission fee online, and download their filled form, payment slip, and receipt as PDFs. Admission staff review, edit, or reject applications, collect payment, and finalise admissions, with email confirmation at each step.
2. Lottery / Seat Allocation
Every department has a configurable seat capacity. When applications exceed seats, a transparent lottery draw selects admitted students; results are published and viewable by each applicant through their tracking link — removing manual selection and the disputes that come with it.
3. Automated Class-Routine Generation Engine (flagship)
The standout module: an engine that generates conflict-free class timetables for every department, semester, and shift automatically. Administrators configure the rules once — active days, multiple shifts with start times, periods per day and duration, mid-day breaks, per-teacher daily and weekly load caps, required consecutive periods for labs, and a distribution strategy (balanced across days vs. compact). The generator then runs a three-phase constraint solver:
- Merged classes first — cross-department shared subjects (e.g. English taught to all departments) are placed into every participating department's routine at the same time slot.
- Labs — placed as consecutive-period blocks into each department's mapped lab rooms.
- Theory — remaining periods filled with teacher-load balancing.
A session-wide conflict validator loads every slot across all departments and shifts before placing anything, so no teacher, room, or student group is ever double-booked. A drag-and-drop review screen lets staff fine-tune the result with live conflict re-checking (moving a merged class cascades to all sibling departments), and routines export to clean landscape-A4 PDFs. Regenerating a published routine builds a new version while the live one stays intact until re-published.
4. Fee Management & Installments
Configurable fee structures per session and semester generate per-student fees, with installment plans and automatic late-fine calculation. Fees can be collected in person by the accounts team (in full or per installment) or paid online by students themselves, and every receipt renders to PDF with a QR code verifiable at a public URL.
5. Digital Payments — bKash & SSLCommerz
Two online payment gateways — bKash tokenized checkout and SSLCommerz — with public callbacks and server-to-server webhooks, plus manual/offline payment verification by staff, refund handling, and a reconciliation report that cross-checks gateway transactions against the ledger.
6. Stipends, Waivers & Facilities
Administration of fee concessions and quota-based facilities, semester-recurring facility claims (bulk-generated and approved by accounts), fee-waiver applications with an approve/reject workflow, and government/institutional stipend schemes with student banking details for disbursement.
7. Referral & Commission Management (the origin module)
The system's original purpose, still a first-class module: referrers who bring in students are tracked with their bKash details, and commissions are auto-calculated from each department's active, date-ranged rate at the time of deposit. Referrer details are snapshotted at entry time so historical records can't be altered by later edits — protecting against disputes. Referrers can look up and self-claim payouts through a public page, and staff can link unmatched claims to referrer records.
8. Commission Payouts — bKash / Cash / Gift
A status-driven payout engine offering three channels suited to Bangladesh: bKash (processed asynchronously via a queued job with automatic retries and full API-response logging), cash, and physical gift items. Each commission moves through a clear state machine (pending → approved/ready → sent/paid/delivered, with hold and reject paths), capturing proof attachments along the way.
9. Teacher Portal
Teachers log in to see their weekly routine, take class attendance per period with full history, view their students, apply for leave (approved or rejected by admins), and manage their profile — with a forced password change on first login.
10. Student Portal
Students access their class routine and attendance record, view and pay fees online, check stipend eligibility and apply, receive in-app notifications, and download a generated student ID card — all self-service.
11. Attendance & Guardian SMS
Per-period attendance rolls up into summaries for reporting, and a scheduled job automatically sends SMS to guardians when a student is absent — closing the communication gap that manual systems leave open.
12. SMS & Communications
A full SMS subsystem with editable templates and variable substitution, targeted bulk SMS with recipient resolution and preview, complete delivery logging, and transactional sends (login credentials, attendance alerts, fee reminders) — delivered through REVE SMS (with SSL Wireless as an alternative). Email is handled via Resend.
13. Academic Setup & Operations
The academic backbone: bilingual departments, subjects (theory/lab/both with credit hours), sessions, and rooms (classrooms and labs), plus a bulk semester-promotion tool that previews and then advances students to the next semester. Announcements and an academic calendar surface to the student and teacher portals.
14. Reporting, Exports, Audit & Administration
Filterable reports across admissions, attendance, fees, commissions, and reconciliation, exportable to CSV, Excel, and PDF. Template-based bulk import loads students and referrers. Underpinning everything: role-based access control, a complete activity-log audit trail, scheduled database backups, a role-aware dashboard, and a bilingual (Bangla/English) interface throughout.
Technical Architecture
| Layer | Technology |
|---|---|
| Framework | Laravel 12, PHP 8.2 |
| Frontend | Blade + Tailwind CSS 3 + Alpine.js 3 (Vite), Flatpickr |
| Auth & roles | Laravel Breeze + Spatie Laravel-Permission (5 roles) |
| Scheduling engine | Custom constraint-solver services (merged-class, lab, theory allocators + session-wide conflict validator) |
| Payments | bKash (tokenized checkout) + SSLCommerz, with webhooks & reconciliation |
| SMS / Email | REVE SMS (SMPP) / SSL Wireless; Resend email |
| Documents | DomPDF (forms, slips, receipts, routines), Maatwebsite Excel, intervention/image, simple-qrcode |
| Audit & ops | Spatie Activitylog, Spatie Backup, database queue |
| API | Laravel Sanctum-guarded JSON API for student/teacher mobile clients |
| Localisation | Bangla-first bilingual UI, BDT currency, Asia/Dhaka timezone |
The system is organised into clear service layers — an admissions engine, a routine-scheduling engine, a payment abstraction over multiple gateways, and an SMS subsystem — so each domain evolves independently.
Outcomes
- One platform, ten manual processes replaced — admissions, lottery, timetabling, fees, payments, attendance, stipends, commissions, and communications now run in a single system
- Timetabling that used to take days, automated — conflict-free routines for all departments generated by an engine that guarantees no teacher, room, or group is double-booked, with drag-and-drop fine-tuning
- Built for how Bangladesh operates — bKash and SSLCommerz payments, REVE/SSL Wireless SMS to guardians, a Bangla-first interface, BDT, and QR-verifiable receipts
- Audit-grade integrity — immutable referrer snapshots, a full activity-log trail, and scheduled backups protect financial and academic records
- From one module to a platform — what started as a referral-commission payout tool grew into a complete education management system, on a clean Laravel 12 foundation ready to scale to other institutions
What's Next
- A native mobile app for students and teachers, already unblocked by the Sanctum-guarded JSON API built into the platform
- Continued expansion of academic and reporting modules across the college's departments
Designed, built, and maintained by Vista SysTech — end-to-end design, development, integration, and ongoing support.


