CSCK542 Final Project - Group B
A comprehensive web-based university database management system built with Flask and MySQL.
- Odalo Aimufia
- Rami Albaroudi
- Suely Argelia Bonga Pereira
- Preet Sall
- Zaid Widyan
This system provides a complete solution for managing university data including students, courses, programmes, staff, and research activities. The application features role-based authentication, interactive reports, and a web interface.
- Student Management: Student records, advisors, and organisation memberships
- Course Management: Course catalogue, prerequisites, offerings, and teaching assignments
- Programme Management: Academic programmes with course requirements
- Staff Management: Academic and non-academic staff with department organisation
- Research Management: Research groups, projects, and funding information
- Interactive Reports: Parameterised queries with dynamic results
- Role-based authentication (Administrator/Student)
- Session management
- Data privacy protection
- Combined table views
- Auto-scroll to results
- Back-to-top navigation
- Aesthetic styling
- Backend: Python Flask
- Database: MySQL
- Frontend: HTML5, CSS3, JavaScript
- Templates: Jinja2
- Database Connector: mysql-connector-python
The system manages 18 interconnected tables:
Student Tables: Student, Student_Advisor, Student_Organisation
Course Tables: Course, Course_Offering, Course_Prerequisite, Course_Offering_Lecturer, Course_Offering_Student
Programme Tables: Programme, Programme_Course_Requirement
Staff Tables: Lecturer, Staff, Department, Lecturer_Organisation
Research Tables: Research_Group, Research_Project, Lecturer_Research_Group
Organisation Table: Organisation
- Python 3.8+
- MySQL Server
- pip package manager
-
Create MySQL database:
CREATE DATABASE universitydb;
-
Import schema and data:
mysql -u username -p universitydb < universityDB_Queries/universityDB_DDL.sql mysql -u username -p universitydb < universityDB_Queries/universityDB_Data.sql
-
Clone the repository
-
Install dependencies:
pip install -r requirements.txt
-
Configure database connection in
config.py:db_config = { 'host': 'localhost', 'user': 'your_username', 'password': 'your_password', 'database': 'universitydb' } -
Run the application:
python app.py
-
Access at:
http://localhost:5000
- Administrator:
admin/admin(Full access) - Student:
johnsmith/student(Limited access)
- High-Performing Final Year Students: Students with >70% average in final year
- Student Advisor Contact: Faculty advisor information for specific students
- Courses by Department: All courses taught by department lecturers
- Staff by Department: Academic and non-academic staff by department
- Students by Advisor: Students advised by specific lecturers
- View all student data including grades
- Manage staff and research information
- Generate comprehensive reports
- Access all system functionality
- View personal student profile
- Browse course catalogue
- View programme requirements
- Limited to non-sensitive information