Skip to content

Digifice is a role based university management web application that streamlines results, GPA tracking, medical submissions, and academic workflows in a secure, modern digital platform.

Notifications You must be signed in to change notification settings

chamod-malindu/digifice

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

64 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Digifice Logo

Digifice transforms traditional university processes into a smooth digital experience โ€” faster, smarter, and future-ready.


Next.js React MongoDB Tailwind CSS TypeScript Node.js


๐Ÿ“š Project Overview

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).


๐Ÿš€ Key Features

  • ๐Ÿ” 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

๐Ÿ› ๏ธ Tech Stack

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

๐Ÿ—๏ธ Project Structure

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

๐Ÿ—๏ธ System Development Approach

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.


โš™๏ธ Setup & Installation

Follow these steps to run Digifice locally on your computer:

1. Clone the Repository

git clone https://github.com/chamod-malindu/digifice.git
cd digifice

2. Install Dependencies

npm install

3. Create a .env.local File

Create 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:3000

4. Seed the Database (Optional)

npm run seed

5. Run the Development Server

npm run dev

Visit http://localhost:3000 to view the application.


๐Ÿ‘ฅ Team Members

Meet the development team behind Digifice (UWU/ICT/22):

Name Role GitHub LinkedIn
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

๐Ÿ’ก Why We Built This

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

๐Ÿ”ฎ Future Enhancements

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.


๐Ÿ Conclusion

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!


๐Ÿ–ผ๏ธ Project Screenshots

๐Ÿ‘จโ€๐ŸŽ“ Student Dashboard

Student Dashboard

๐Ÿ‘จโ€๐Ÿ’ผ Lecture Dashboard

Lecture Dashboard

๐Ÿ‘จโ€๐Ÿ’ป Admin Dashboard

Admin Dashboard

About

Digifice is a role based university management web application that streamlines results, GPA tracking, medical submissions, and academic workflows in a secure, modern digital platform.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •