An academic dashboard and management system that enables university administrators and students to track academic progress, analyze module performance, send communications, and upload student data in bulk. Built with Node.js, Express.js, EJS, and MySQL.
- Admin and student role-based dashboards.
- View and manage degree programs, modules, and student data.
- Upload and process student records from CSV files.
- Track academic progression and eligibility using built in progression rules.
- Messaging and notification system.
- Data visualization for academic reports, module and degree pass fail stats and module and degree progression stats.
Below are a selection of some of the main pages of the web app, illustrating some of the main features.
- Backend: Node.js, Express.js
- Frontend: EJS templates, HTML, CSS, JavaScript
- Database: MySQL
- Other: CSV parsing, bcrypt password handling, Chart.js
- Node.js (v18+)
- MySQL (v8+)
- Git
-
Clone the repository:
git clone https://gitlab.eeecs.qub.ac.uk/40430805/academic-progression-monitoring.git cd academic-progression-monitoring -
Install dependencies: npm install
-
Database set up: Create a new MySQL database called 40430805. Import the provided base SQL file available at /db/40430805.sql Note that the provided db has modules and programs pre populated this is important for progression logic to operate correctly. If you want to to use a clean db you will then have to add degree programs and associated module with their details before processing reports. An admin account will also have to be made in the db as there is no way to this out side the db. Use this query to add admin account : INSERT INTO
user(email,password,salt,role) VALUES ('Admin01@university.edu','$2b$12$znzj6Fw8QJg8LOCl/1Ceg.9OtuZv2xtXGTXACX//i4ewhdvyQsTEm','$2b$12$znzj6Fw8QJg8LOCl/1Ceg.','admin') -
Run the app: npm run start
-
Open Web App Open desired browser at http://localhost:3500
Admin log in
Email: Admin01@university.edu
Password: Admin2025
Student log in
Email: student first name first letter + . + lastname + @university.edu (e.g. EMAIL = r.adams@university.edu)
Password student last name + sID (e.g. Adams22-IFSY-0933003)
student emails and passwords are generated automatically when a new student is made through students page or mass uploaded and can be changed only by admins.
Admins can log in to:
- Add/update/delete programs, modules, and students.
- Upload CSV files for bulk student data.
- Send messages/notifications.
- Generate academic progression reports.
Students can log in to:
- View user details.
- Edit secondary user email.
- View their modules, grades, and progression status.
- Receive messages and notifications.
- John Livingstone
This project is for academic use. You may fork and adapt it for educational purposes.









