This University Project was developed as part of our coursework to demonstrate our knowledge of TCP/UDP protocols and Java programming. It implements a client-server architecture to create and manage class schedules for students. The project has been completed, submitted, and received the maximum grade possible.
- Grade Received: A
- Development Status: Completed (No Further Development Planned)
-
Initial Development: The project began as a collaborative effort between team members, focusing on TCP implementation. It was initially hosted at https://github.com/VaskMykola/University-Project-javaFX-tcp.
-
Repository Transfer: During development, a team member requested to host the project in their personal repository. The team agreed, and development continued there with contributions from all members. If it will be public again here a link: https://github.com/oleksandr-kardash/EDP-project
-
Project Completion: The project was successfully completed and submitted for grading.
-
Repository Privacy Change: After grading, the repository owner made the project repository private.
-
Current Public Version: This repository is a copy of the final project state just before it was made private. It's shared publicly to showcase our work and maintain access to the completed project.
- Client GUI for easy interaction
- Server handling multiple client connections
- TCP-based communication between client and server
- TCP-based communication between client and server
- Add, remove, and display class schedules
- Automatic rescheduling of classes to early morning slots
- Multi-threaded server to handle concurrent client connections
- Implementation of synchronization for thread-safe operations
- Use of Java Swing for the client GUI
- Fork-Join framework for parallel processing of schedule modifications
ClassSchedulerApplication.java
: Main client application with GUIServer.java
: Multi-threaded server implementationSchedule.java
: Core logic for managing class schedulesClass.java
: Represents a single class in the scheduleIPAddressUtil.java
: Utility for retrieving server IP address
- Start the server:
java project.server.Server
- Launch the client application:
java project.fxpart.ClassSchedulerApplication
- Enter the server's IP address when prompted (or press Enter for localhost)
- Client: JavaFX-based GUI for user interaction
- Server: Handles client requests and manages the shared schedule
- Schedule: Maintains the class timetable with thread-safe operations
- Class: Represents individual classes with start/end times and room information
- Early morning rescheduling using Fork-Join framework
- Conflict detection for overlapping classes
- Dynamic GUI updates based on user actions
- [Your Name]
- [Team Member Names]
This project was developed as part of the [Course Name] at [University Name]. We extend our gratitude to our instructors for their guidance and support throughout the development process.
This repository represents the final, graded version of our team project. It is no longer under active development. While the original repository is now private, this public version ensures continued access to our completed work. It serves as a testament to our collaborative effort and the skills we developed during this course.