This project is developed as part of the Object-Oriented Programming course project for the academic year 2022/2023. It entails building a stand-alone GUI application using the .NET framework and WPF technology for managing individual language learning sessions in language schools.
The application allows users to view language schools, schedule individual sessions, and manage user accounts. Here are the main entities within the system:
- Address: Includes a unique code, street, number, city, and country.
- School: Contains a unique code, name, address, and a list of languages offered.
- Registered User: Holds details such as name, surname, unique ID number, gender, address, email, password, and user type (admin, teacher, student).
- Teacher: Extends the registered user entity and includes the school where they are employed, the list of languages they teach, and their schedule of classes.
- Student: Extends the registered user entity and includes a list of scheduled classes.
- Class: Includes a unique code, the teacher for the class, date, start time, duration, status (free or reserved), and the student who booked the class.
The application supports the following functionalities:
- View all schools based on selected location and languages offered.
- View all teachers working in a selected school.
- Registration: Unregistered users (students) can register on the system by providing personal details.
- Login/Logout: Users can log in and out of the system using their unique ID number and password.
- Profile Management: All registered users can view and update their personal information.
- Search Entities: Users can search for registered users, teachers, and schools based on various criteria.
- Data Management: Administrators have access to all entities and can add, edit, or delete data. Deletions are soft deletes, rendering data inactive.
- Teacher Management: Only administrators can register teachers, including the languages they teach.
- Class Management: Administrators create initial free classes for teachers and can delete any class, regardless of its status.
- Class Schedule: Teachers can view their class schedule (free and reserved) for selected dates and see which student booked a class.
- Free Class Creation: Teachers can create and delete their free classes. Classes cannot be created in the past, and teachers cannot delete reserved classes.
- Class Booking: Students can view available classes for selected teachers and languages and book free classes. They can also cancel their booked classes.
- Scheduled Classes: Students can view their scheduled classes.
Data persistence is achieved using a relational database.