Skip to content
Adil Farooq, home
Menu

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.