A comprehensive, full-stack university management system built with PHP 8+, MySQL, and Tailwind CSS. Designed with role-based access control for administrators, instructors, students, and parents to manage academic activities end-to-end.
Course Project β Database Systems (FAST NUCES)
- Features
- User Roles & Permissions
- Tech Stack
- Database Schema
- Project Structure
- Installation
- Default Credentials
- Screenshots
- ERD
- License
- Add / edit / delete student profiles with full personal details
- Store name, DOB, B-Form/CNIC, parent info, contact, address
- Admission year, class, section assignment
- Student status tracking (active, transferred, left)
- Unique roll number generation per batch
- Batch/year tagging for cohort management
- Add / edit / delete instructor profiles
- Assign subjects, departments, and classes
- Contact and employment information (qualification, specialization, hire date)
- Designation tracking (Subject Teacher, Class Incharge, etc.)
- Instructor login for result entry and class management
- Secure parent login with child-specific access
- View child's profile, class, section, and assigned subjects
- Access term-wise results with subject-wise marks, grades, and remarks
- Attendance summary and exam schedules
- Fee challan generation and payment status tracking
- Multiple children under one parent account via
parent_student_link
- Create and manage classes (e.g., BSCS-1, BSCS-2, etc.)
- Assign sections (A, B, C) with capacity management
- Assign instructors to class sections
- Room allocation and scheduling
- Add and manage courses with department assignment
- Credit hours and fee configuration per course
- Mark as compulsory or elective
- Assign instructors to courses and classes
- Prerequisite tracking
- Define exam types: quiz, midterm, final, assignment, project
- Set total marks and passing marks per exam
- Schedule exam dates with time slots and room assignment
- Exam status tracking: scheduled β ongoing β completed β cancelled
- Lock/unlock exams for result entry
- Enroll students in class sections
- Track enrollment status: enrolled, dropped, completed
- Auto-link students to courses based on class enrollment
- Teachers see only their assigned subjects/students
- Teachers enter marks per subject per student
- Auto-calculate percentage and grade
- Generate results per student, class, or subject
- Store historical results term-wise and year-wise
- Admin moderation and entered-by tracking
- Configurable grading criteria (A+ = 95%+, A = 90%+, etc.)
- Pass/fail thresholds per subject
- Remarks section per subject or overall
- Pre-seeded grading scale in database
- Admin dashboard with system-wide KPIs
- Class-wise and subject-wise result summaries
- Student performance trends across terms
- Attendance analytics
- Fee collection and overdue reports
- Daily attendance tracking per class section
- Status options: present, absent, late, excused
- Instructor-marked with audit trail (
marked_by) - Unique constraint per student/class/date
- Fee types: tuition, exam, library, lab, transport, other
- Payment tracking with due date management
- Fee status: pending, paid, overdue, waived
- Semester-wise fee assignment
- System notifications for all user roles
- Types: info, warning, success, error
- Read/unread status tracking
- Session-based authentication with role validation
- Password hashing with bcrypt
- Role-based access control on every page
- Database-level referential integrity with foreign keys
- Indexed tables for query performance
| Role | Access Level |
|---|---|
| Admin | Full system access β manage users, courses, classes, enrollments, exams, results, fees, reports |
| Instructor | View assigned classes, enter results, manage assignments, mark attendance, instructor dashboard |
| Student | View own profile, enrolled courses, results, attendance, fee status, student dashboard |
| Parent | Monitor child's academic progress, attendance, fees, notifications via parent dashboard |
| Layer | Technology |
|---|---|
| Backend | PHP 8.0+ |
| Database | MySQL 5.7+ / 8.0+ |
| Frontend | HTML5, Tailwind CSS (CDN), JavaScript |
| Icons | Google Material Symbols |
| Server | Apache (XAMPP / WAMP / LAMP) |
| Architecture | MVC-inspired with role-based access control |
| Table | Purpose |
|---|---|
users |
Authentication and role management |
students |
Student profiles with academic details |
instructors |
Faculty profiles with qualifications |
parents |
Parent/guardian profiles |
parent_student_link |
M:N relationship between parents and students |
courses |
Course catalog with credits and fees |
classes |
Course sections with scheduling |
student_class_enrollment |
Student enrollment in class sections |
exams |
Exam scheduling and configuration |
exam_results |
Student marks and grades per exam |
assignments |
Class assignments with due dates |
attendance |
Daily attendance records |
fees |
Fee records per student per semester |
payments |
Payment transactions against fees |
notifications |
System messages for all users |
- 3NF Normalized β No transitive dependencies
- Referential Integrity β CASCADE/SET NULL on all foreign keys
- Performance Indexed β Indexes on email, department, status, dates, and foreign keys
- Audit Ready β
entered_bytracking on results,marked_byon attendance
See ERD.md for the full Entity Relationship Diagram.
βββ .gitignore
βββ README.md
βββ ERD.md # Entity Relationship Diagram (Mermaid)
βββ database_schema.sql # Complete schema + sample data
βββ setup.php # Browser-based DB setup utility
βββ index.php # Admin dashboard (entry point)
βββ assets/
β βββ images/
β βββ logo.png # University logo
β βββ campus1.jpg # Login page background
β βββ campus2.jpg # Login page background
βββ auth/
β βββ login.php # Multi-role authentication
β βββ logout.php # Session cleanup
βββ includes/
β βββ config.php # Session helpers & role checks
β βββ db.php # PDO database connection
β βββ header.php # HTML head + top navigation
β βββ sidebar.php # Role-aware sidebar navigation
β βββ footer.php # Page footer
βββ pages/
βββ students.php # Student CRUD management
βββ instructors.php # Instructor CRUD management
βββ courses.php # Course CRUD management
βββ classes.php # Class/section management
βββ enrollments.php # Student enrollment management
βββ exams.php # Exam scheduling & results
βββ reports.php # Analytics & reporting
βββ instructor_dashboard.php # Instructor portal
βββ student_dashboard.php # Student portal
βββ parent_dashboard.php # Parent portal
- PHP 8.0+
- MySQL 5.7+
- Apache web server (XAMPP recommended for local dev)
-
Clone the repository
git clone https://github.com/Mafnan12/-Academic-Management-System.git cd -Academic-Management-System -
Deploy to web server Copy the project to your Apache document root:
# XAMPP (Windows) cp -r . C:/xampp/htdocs/fast_sms/ # Or create a symlink
-
Configure database connection Create
includes/db.phpwith your credentials:<?php $host = 'localhost'; $dbname = 'fast_university_management'; $user = 'root'; $pass = ''; try { $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8mb4", $user, $pass); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); } catch (PDOException $e) { die("Connection failed: " . $e->getMessage()); } ?>
-
Initialize the database
Option A β Browser setup (recommended):
http://localhost/fast_sms/setup.phpOption B β Direct SQL import:
mysql -u root -p < database_schema.sql -
Login
http://localhost/fast_sms/auth/login.php
| Role | Username | Password |
|---|---|---|
| Admin | admin |
password123 |
| Instructor | instructor1 |
password123 |
| Student | student1 |
password123 |
| Parent | parent1 |
password123 |
β οΈ Change default passwords immediately in a production environment.
Screenshots of the login page, admin dashboard, student management, and result entry are available in the application itself. Run locally to preview.
The full Entity Relationship Diagram is documented in ERD.md using Mermaid syntax, covering all 16 tables with their relationships, data types, and constraints.
Muhammad Afnan β FAST NUCES
This project is open source and available under the MIT License.