Skip to content

The School Registration System is a Java-based application designed to simplify course management and registration for students and administrators.

Notifications You must be signed in to change notification settings

AndreyJVM/programming-patterns-test

 
 

Repository files navigation

School Registration System

Table of Contents


Project Overview

The School Registration System is a Java-based application designed to simplify course management and registration for students, teachers, and administrators. The system allows students to:

  • Register for courses.
  • View their course schedules.
  • Drop courses.

Administrators can:

  • Add, update, or remove courses.
  • Manage student enrollments.
  • Generate reports on student and course data.

Teachers can:

  • View course details, including student lists and schedules.

This project serves as a practical implementation of key object-oriented programming concepts, data structures, and software design patterns, aligning with the Programming Patterns course (420-301-VA) at Vanier College.


Key Features

1. Student Portal

  • Register and drop courses with real-time feedback on available seats.
  • View current and upcoming semester schedules.
  • Notifications for important updates or deadlines.

2. Administrator Portal

  • Add, update, or delete courses.
  • View and manage student enrollment.
  • Generate reports on course enrollments and student information.

3. Teacher Portal

  • View course details such as enrolled students and course schedules.
  • Access class rosters and attendance records.

4. Data Structures

  • ArrayList and LinkedList for course storage and management.
  • Queue for handling student registration requests.
  • Use of Comparable and Comparator interfaces for sorting courses by name, schedule, or capacity.

5. Stream Processing & Lambda Expressions

  • Efficient filtering of course data using Java Streams.
  • Lambda expressions for simplified data processing and comparisons.

6. Generic Classes

  • Implementation of generic data structures to handle multiple types of data, ensuring flexibility and scalability.

7. Unit Testing

  • Comprehensive unit tests using JUnit to ensure functionality and correctness of all core components, such as student registration, course management, and data manipulation.

8. External Libraries

  • Maven for dependency management and project build automation.
  • Integration of external libraries for validation and input handling.

Technologies Used

  • Java: Core programming language.
  • JUnit: For unit testing and quality assurance.
  • Maven: For dependency management and building the project.
  • Java Streams & Lambda Expressions: To simplify code and make data operations more efficient.
  • JDBC (optional): For database connectivity (SQLite/Oracle) if required for advanced features.
  • Git: Version control for code collaboration and management.

Created By

  • Matthew Veroutis
  • Matthew Macri
  • Phoeuk Thao

Fall 2024 @ Vanier College

About

The School Registration System is a Java-based application designed to simplify course management and registration for students and administrators.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%