Skip to content

A multithreaded Java application for scheduling meetings

Notifications You must be signed in to change notification settings

DashaaFX/Meeting-Scheduler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Meeting Scheduler V2
Project Overview:
This multithreaded Java application enables users to view, book, and cancel meeting slots. It provides live updates using synchronized Java objects to maintain consistent states across multiple clients.

Implemented Features:
- Viewing available and booked slots
- Booking and cancellation with username authentication
- Real-time updates broadcast to all clients instantly
- GUI interface built with JavaFX
- Thread-safe operations using synchronized methods

How to Run:
1. Compile all Java files with BlueJ.
2. Start the server:
   `java MeetingSchedulerServer <port>`
   Example:
   `java MeetingSchedulerServer 4444`

3. Launch the client GUI:
   `java MeetingSchedulerGUI <hostname> <port>`
   You will be prompted for your username at launch.

Multi-Client Support:
- Run multiple GUI instances simultaneously to test synchronization.
- Changes by one client are immediately reflected on all others.
- New clients receive the current state upon connection.

Limitations:
- JavaFX's launch() constraint requires restarting the VM between GUI sessions in BlueJ.
- Admin controls will not be implemented
- GUI logs only display user-initiated actions to prevent clutter.

Enhancement Plan (Given More Time):
- Implement persistent storage for bookings and user credentials.
- Extend admin controls for managing slots and users.
- Enhance error handling and user feedback mechanisms.

Tested Environment:
- Java SE 17+
- JavaFX SDK 17+
- BlueJ IDE 5.x

Author:
Dashnyam Puntsagnorov
Adelphi University - CSC 450

About

A multithreaded Java application for scheduling meetings

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages