Every student. Every record. One platform.
Student Manager replaces the chaos of spreadsheets, paper registers, and disconnected systems with a single, real-time administrative platform — giving institutions complete visibility over enrollment, academics, and performance.
The Story
The Problem
Most colleges manage student data across Excel sheets, WhatsApp groups, and legacy software that doesn't talk to each other. Admission offices lose track of enrollment stages. Faculty can't access attendance or marks in one place. Administrators spend hours generating reports manually.
Why It Matters
Institutional inefficiency directly impacts student experience. When a college can't track who is enrolled, who is at-risk academically, or who hasn't paid fees — students fall through the cracks. A unified system changes outcomes, not just workflows.
The Solution
A full-stack Next.js platform with role-based access for Admins, Faculty, and Students. Admissions, attendance, marks, fee tracking, and analytics live in one dashboard backed by MongoDB and secured with JWT auth.
Product Features
Track the complete student lifecycle from application to graduation — admission stage, documents, fee status, and academic standing in one view.
Visualise batch-level performance trends, subject-wise pass rates, and individual student progress over semesters with exportable reports.
Faculty mark attendance digitally. The system auto-calculates percentages and flags students below the minimum threshold with alerts.
Admins see everything. Faculty see their assigned subjects and students. Students see only their own records. All enforced at the API layer.
One-click PDF export for mark sheets, attendance registers, and fee receipts — formatted to institutional standards.
System Architecture
Technical Deep Dive
Every API route checks the JWT payload for role. Admin routes are gated with an adminOnly middleware. Faculty routes verify that the requesting user is assigned to the subject or batch they're querying. Students can only read their own document — enforced by matching the JWT userId against the record's studentId field. No client-side guard can bypass this because all data fetching goes through the API.
Attendance is stored as individual session records (date, subjectId, studentId, present: boolean). A MongoDB aggregation pipeline computes the percentage per student per subject on demand — no denormalised counters that can drift out of sync. The pipeline groups by studentId, sums presents and totals, and returns the percentage in a single query.
db.attendance.aggregate([
{ $match: { subjectId: ObjectId(subjectId) } },
{ $group: {
_id: "$studentId",
total: { $sum: 1 },
present: { $sum: { $cond: ["$present", 1, 0] } }
}},
{ $addFields: {
percentage: { $multiply: [{ $divide: ["$present", "$total"] }, 100] }
}}
])Engineering Decisions
Performance & Scale
Deployment & Infrastructure
Deployment
Next.js on Vercel with serverless API routes. MongoDB Atlas M10 cluster. Environment-based role configs for production vs. staging. Vercel preview deployments for every PR.
CI/CD
GitHub Actions — ESLint + TypeScript check on PR, auto-deploy to Vercel on merge to main.
Monitoring
Vercel Analytics for Core Web Vitals. MongoDB Atlas alerts for slow queries above 200ms.
Challenges & Failures
What I Learned
Role-based access is only trustworthy when enforced at the data layer, not the UI.
MongoDB aggregation pipelines can replace a lot of application-level data processing — learn them well.
Server Components in Next.js 14 genuinely improve time-to-interactive for data-heavy admin dashboards.
Future Roadmap
v2.0 — 2026
Screenshots
Admin dashboard — enrollment overview
Faculty attendance marking interface
Technology Stack
Frontend
Database
Auth
Visualisation
Deployment
Ready to dive in?