Skip to content

course enrollment management system to optimize course prerequisites and scheduling

Notifications You must be signed in to change notification settings

alexFengXW/Course_Enrollment_Tool

 
 

Repository files navigation

Course Enrollment System

Overview

The Course Enrollment System is a comprehensive C++ application with a GUI, designed to streamline course scheduling and management. The system provides functionality for students to enroll in courses and administrators to manage course information efficiently. It utilizes the SFML (Simple and Fast Multimedia Library) for GUI components and SQLite for database integration.


Preview

  • Login preview1.png
  • Course searching preview2.png
  • Schedule viewing preview3.png
  • Prerequisites checking preview4.png

Features

  • Student Features:

    • Login and authentication function
    • Browse and search for available courses.
    • Enroll in courses, ensuring prerequisites are met.
      • View and manage personal course schedules.
  • Backend:

    • Persistent data storage using SQLite.
    • Optimized scheduling algorithms to manage complex enrollments.
  • GUI:

    • User-friendly graphical interfaces for students and administrators.
    • Multiple pages including:
      • Login Interface
      • Course Search Page
      • Main Dashboard
      • Administrator Panel

Technical Details

  • Programming Language: C++
  • GUI Framework: SFML
  • Database: SQLite
  • Design Patterns:
    • Factory Pattern
    • Singleton Pattern
    • Observer Pattern
    • DAO (Data Access Object) Pattern

Icon used

icon.png

user_profile.png

All images used in the project generated by ChatGPT: https://chatgpt.com/share/6756e190-0414-8006-8cb6-5458b7d35882


Project Structure

3307/
├── Authentication.cpp/h       # User authentication logic
├── Course.cpp/h               # Course data and operations
├── CourseManager.cpp/h        # Manages course-related actions
├── DatabaseManager.cpp/h      # Handles SQLite database interactions
├── Scheduler.cpp/h            # Optimized course scheduling algorithms
├── MainMenuInterface.cpp/h    # GUI for the main menu
├── LoginInterface.cpp/h       # GUI for user login
├── PrerequisiteChecker.cpp/h  # Validates course prerequisites
├── assets/                    # Images and resources for the GUI
└── CMakeLists.txt             # Build configuration

Setup and Installation
Clone the Repository

Build the Project:
Ensure you have CMake and a C++ compiler installed.
Run the following commands:
mkdir build
cd build
cmake ..
make

Run the Application:
Main.cpp

Database reminder:
Database should have be created, if not run the SQL file in cmake-build-debug

Contributors
Shaotian Li
Xiaowei Feng





About

course enrollment management system to optimize course prerequisites and scheduling

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 47.1%
  • C++ 35.8%
  • Makefile 10.3%
  • Python 3.5%
  • CMake 1.1%
  • HTML 1.0%
  • Other 1.2%