Full-Stack App · Education · demo · 2026
University Portal
A full-stack student and admin portal for a demo university — role-based access, a 34-table data model and server-generated PDF documents.
- Role
- Design & full-stack development
- Built with
- Next.js 15 · TypeScript · Prisma · Auth.js · Tailwind CSS · Zod · pdfkit · Recharts
Screens
4 screenshots · 1920 × 1080
Overview
University Portal is a complete student and administration system for “Global University”, a fictional institution I created to build the product end to end. Students register and manage their academic life in one place; administrators run courses, fees, attendance and notices from a separate portal. The public deployment currently shows the interface only — sign-in is not enabled there.
The problem
Students and administrators need separate, secure access to academic, fee and campus records — records that are often scattered across disconnected systems.
Objective
Build one role-aware application that covers the day-to-day student journey and the admin work behind it, with real authentication and a real data model rather than mock screens.
The solution
A Next.js 15 App Router application with Auth.js credentials and JWT sessions, edge middleware plus server-side guards for each role, a Prisma data model, and role-guarded Server Actions with Zod validation on form input.
What I built
Separate student & admin portals
Role-based routing with Auth.js JWT sessions, edge middleware and a server-side guard on every page.
Self-registration & secure login
Students register themselves; passwords are bcrypt-hashed and login attempts are rate-limited. Admin accounts come from a seed script only.
Course enrolment
Students enrol in and drop courses, with seat limits enforced on the server.
Fees, library & helpdesk
Fee vouchers, library loans and renewals, event registration and support tickets — each handled by a role-guarded Server Action.
Admin management
Admins create and edit students, faculty, courses, notices and events, issue fee vouchers and record attendance.
PDF documents
Fee vouchers and attendance reports generated as A4 PDFs on the server, available only to the student they belong to.
How it’s built
- 49 routes — 39 student pages and 10 admin pages — plus 4 PDF endpoints.
- 34-table Prisma schema covering users, courses, enrolment, attendance, fees, library, LMS, events, hostel and careers.
- Zod validation on form input; sign-up limited to 5 attempts per 5 minutes per IP and login to 5 per minute.
- Server-side PDF generation with pdfkit and an ownership check on every document.