Digifice transforms traditional university processes into a smooth digital experience โ faster, smarter, and future-ready.
Digifice is a role-based web application designed to centralize academic and administrative processes for a university. The system provides separate dashboards for Students, Lecturers, and Administrators, ensuring secure and efficient access to features based on user roles.
The platform enables seamless result management, GPA tracking, medical submission workflows, course management, and real-time notifications - all within a modern, responsive interface.
This project is developed as part of the Independent Study Project II for the BICT degree program at Uva Wellassa University of Sri Lanka (2022/2023 Batch).
-
๐ Authentication & Role-Based Access
- Secure login with NextAuth & JWT
- Role-based route protection via middleware
- Three distinct roles: Student / Lecturer / Admin
- Password reset & account recovery
-
๐ Student Dashboard
- View exam results & semester-wise GPA
- Interactive GPA analytics with charts
- Submit and track medical requests
- Receive notifications & announcements
- Update personal profile
-
๐จโ๐ซ Lecturer Dashboard
- Manage assigned courses & modules
- View student medical submissions
- Schedule management
- Post announcements & notifications
- Task reminders & profile management
-
๐ ๏ธ Admin Dashboard
- Full user management (CRUD for students, lecturers, admins)
- Bulk student upload via Excel templates
- Upload & manage exam results
- Review & approve medical submissions
- Contact request management
- Student management with enrollment tracking
- System-wide announcements & notifications
-
๐ Analytics & Visualization
- Interactive charts using Recharts
- GPA trend analysis for students
- Dashboard statistics & overview cards
-
๐ Medical Submission System
- Students submit medical requests with documents
- Lecturers & admins review submissions
- Status tracking (pending, approved, rejected)
- Date validation to prevent future submissions
-
๐ข Notifications & Announcements
- Centralized announcement system
- Real-time notification alerts
- Role-specific notification routing
-
๐ Theme Support
- Dark/Light mode toggle
- Font size accessibility options
- Responsive design for all screen sizes
| Layer | Technology |
|---|---|
| Frontend | Next.js 16 (React 19), Tailwind CSS 4, TypeScript |
| Backend | Next.js API Routes (Node.js) |
| Database | MongoDB Atlas (Mongoose 9) |
| Authentication | NextAuth.js (JWT-based sessions) |
| UI Components | Radix UI, Lucide Icons, shadcn/ui |
| Charts | Recharts |
| Forms | React Hook Form + Zod validation |
| Data Tables | TanStack React Table |
| File Processing | xlsx (Excel import/export) |
| Styling | Tailwind CSS, class-variance-authority, tailwind-merge |
| Version Control | Git + GitHub |
digifice/
โ
โโโ app/ # Next.js App Router (pages, layouts, routing)
โ โโโ (auth)/ # Authentication routes
โ โ โโโ login/ # Login page
โ โ โโโ signup/ # Signup page
โ โ
โ โโโ (dashboard)/ # All role-based dashboards
โ โ โโโ admin/ # Admin dashboard
โ โ โ โโโ layout.tsx # Admin layout (sidebar/header)
โ โ โ โโโ page.tsx # Admin dashboard home
โ โ โ โโโ users/ # User management
โ โ โ โโโ students/ # Student directory
โ โ โ โโโ student-management/ # Bulk student operations
โ โ โ โโโ lecturers/ # Lecturer management
โ โ โ โโโ results/ # Result upload & management
โ โ โ โโโ medical/ # Medical submission review
โ โ โ โโโ contact-requests/ # Contact request handling
โ โ โ โโโ requests/ # Profile & other requests
โ โ โ
โ โ โโโ lecturer/ # Lecturer dashboard
โ โ โ โโโ layout.tsx # Lecturer layout
โ โ โ โโโ page.tsx # Lecturer dashboard home
โ โ โ โโโ courses/ # Course management
โ โ โ โโโ medicals/ # Medical submissions review
โ โ โ โโโ schedules/ # Schedule management
โ โ โ โโโ notifications/ # Notifications
โ โ โ โโโ profile/ # Profile settings
โ โ โ
โ โ โโโ student/ # Student dashboard
โ โ โ โโโ layout.tsx # Student layout
โ โ โ โโโ page.tsx # Student dashboard home
โ โ โ โโโ results/ # Exam results & GPA
โ โ โ โโโ medical/ # Medical submission
โ โ โ โโโ notifications/ # Notifications
โ โ โ โโโ profile/ # Profile settings
โ โ
โ โโโ api/ # Backend API routes
โ โ โโโ auth/ # Authentication APIs
โ โ โโโ users/ # User CRUD APIs
โ โ โโโ admin/ # Admin-specific APIs
โ โ โโโ lecturer/ # Lecturer-specific APIs
โ โ โโโ student/ # Student-specific APIs
โ โ โโโ results/ # Results & GPA APIs
โ โ โโโ medical/ # Medical submission APIs
โ โ โโโ modules/ # Module management APIs
โ โ โโโ notices/ # Notice/announcement APIs
โ โ โโโ hierarchy/ # Faculty/Dept hierarchy APIs
โ โ โโโ contact/ # Contact request APIs
โ โ โโโ profile/ # Profile update APIs
โ โ โโโ stats/ # Dashboard statistics APIs
โ โ โโโ upload/ # File upload APIs
โ โ โโโ seed/ # Database seeding APIs
โ โ
โ โโโ about/ # About page
โ โโโ contact/ # Contact page
โ โโโ features/ # Features page
โ โโโ news/ # News page
โ โโโ layout.tsx # Root app layout
โ โโโ page.tsx # Public landing page
โ โโโ not-found.tsx # 404 page
โ
โโโ components/ # Reusable UI components
โ โโโ ui/ # Base UI primitives (shadcn/ui)
โ โโโ dashboard/ # Dashboard widgets & cards
โ โโโ users/ # User management components
โ โโโ results/ # Result display components
โ โโโ modules/ # Module components
โ โโโ admin/ # Admin-specific components
โ โโโ providers/ # Context providers
โ
โโโ models/ # Mongoose schemas & models
โ โโโ User.ts # User model (student, lecturer, admin)
โ โโโ Result.ts # Exam results model
โ โโโ Medical.ts # Medical submissions model
โ โโโ Module.ts # Course modules model
โ โโโ Faculty.ts # Faculty model
โ โโโ Department.ts # Department model
โ โโโ DegreeProgram.ts # Degree program model
โ โโโ Enrollment.ts # Student enrollment model
โ โโโ Notice.ts # Announcements model
โ โโโ Notification.ts # Notifications model
โ โโโ NotificationState.ts # Notification read state
โ โโโ ContactRequest.ts # Contact form submissions
โ โโโ ProfileRequest.ts # Profile update requests
โ โโโ LecturerTask.ts # Lecturer task reminders
โ โโโ Hierarchy.ts # Academic hierarchy model
โ
โโโ hooks/ # Custom React hooks
โโโ lib/ # Core libraries & configs
โ โโโ db.ts # MongoDB connection
โ โโโ auth.ts # NextAuth configuration
โ
โโโ scripts/ # Database seeding & utilities
โ โโโ seed.js # Main database seeder
โ โโโ seed_lecturer.js # Lecturer seeder
โ โโโ seed_medicals.js # Medical data seeder
โ โโโ seed_results.js # Results seeder
โ โโโ fix-degrees.js # Degree data fix script
โ
โโโ types/ # Global TypeScript types
โโโ middleware.ts # Route protection & role-based access
โโโ public/ # Static assets & images
โโโ .env.local # Environment variables
โโโ next.config.ts # Next.js configuration
โโโ tsconfig.json # TypeScript configuration
โโโ package.json # Dependencies & scripts
The project follows an iterative development model with a feature-based architecture. Each feature module (results, medical, notifications, etc.) is built as an independent unit with its own API routes, components, and models โ enabling parallel development and easy scalability.
Follow these steps to run Digifice locally on your computer:
git clone https://github.com/chamod-malindu/digifice.git
cd digificenpm installCreate a .env.local file in the root directory with the following variables:
MONGODB_URI=your_mongodb_connection_string
NEXTAUTH_SECRET=your_nextauth_secret_key
NEXTAUTH_URL=http://localhost:3000npm run seednpm run devVisit http://localhost:3000 to view the application.
Meet the development team behind Digifice (UWU/ICT/22):
| Name | Role | GitHub | |
|---|---|---|---|
| Chamod Malindu | Full Stack Developer & Project Lead | @chamod-malindu | Chamod Kariyawasam |
| Subodha Wijesekara | Full Stack Developer & Planning | @subodha-wijesekara | Subodha Wijesekara |
| Chamodi Aponsu | Project Management & Documentation | @ChamodiAponsu | Chamodi Aponsu |
| Dasun Dilshan | Project Design (UI/UX) | @dasun-dilshan | Dasun Dilshan |
| Sanjana De Silva | Project Management & Documentation | @Sanjana-1311 | Sanjana De Silva |
University students and staff often deal with fragmented systems for results, medical requests, and announcements. Digifice was created to:
- Centralize all academic processes into a single, unified platform
- Streamline result management with automated GPA calculations
- Digitize medical submission workflows, replacing paper-based systems
- Empower administrators with bulk operations and real-time dashboards
- Enhance communication through centralized announcements and notifications
- Improve accessibility with responsive design, dark mode, and font size options
To continue improving Digifice, we plan to introduce the following features in future versions:
-
๐ฑ Mobile App Version
Develop a cross-platform mobile app using React Native for on-the-go access to dashboards, results, and notifications. -
๐ง Email Notification System
Integrate Nodemailer for automated email alerts on result uploads, medical approvals, and important announcements. -
๐ Advanced Analytics Dashboard
Provide real-time insights with data visualizations on student performance trends, enrollment statistics, and system usage. -
๐ Advanced Search & Filters
Implement full-text search across students, modules, results, and announcements with advanced filtering options. -
๐ Attendance Management
Add a digital attendance tracking system for lectures with QR code or location-based check-ins. -
๐ง AI-Powered Insights
Implement AI algorithms to identify at-risk students, predict performance trends, and suggest academic interventions. -
โ๏ธ Cloud File Storage
Integrate Cloudinary or AWS S3 for secure document uploads (medical certificates, profile images, course materials). -
๐ Multi-language Support
Introduce multi-language options (Sinhala, Tamil, English) to make the platform more inclusive for all users.
Digifice serves as a unified digital backbone for university academic management, bringing students, lecturers, and administrators together on a single platform. Through its role-based dashboards, automated workflows, and modern interface โ the platform streamlines everyday academic tasks while providing a foundation for future innovation.
โญ If you find this project useful or inspiring, please consider starring the repo and following our journey. Thank you!


