In this project you are required to design and implement an application that keeps track of a meeting scheduling system (MSS). Your MSS keeps track of meetings schedule and which people are in what meeting in which room. The program is not required to perform scheduling, rather is is responsible for maintaining the schedule. For simplicity, assume your application is maintaining the schedule for only one day and a meeting can only fall in traditional 9-5 business hours.
Following are general guidelines:
- Each room has a number. A room should keep track of all meetings held in it.
- Each meeting has a name, time and room. A meeting should keep track of all people attending the meeting.
- A person has a first name, a last name and a phone number.
- A person cannot be attending more than one meeting in any one-hour slot.
- A room cannot hold more than one meeting at any one-hour slot.
Your application should be able to provide the following functionaries:
- When the application starts, the user can specify the number of rooms available for meetings.
- Rooms can be added and deleted by the user. (To delete a room, no meetings should be scheduled in this room).
- Participants can be added and deleted by the user. (To delete a participant, he should not be assigned to any meeting).
- A meeting can be added and deleted by the user. (To delete a meeting, no participant should be assigned to any meeting).
- The user can create meetings by specifying a room number and the participants.
- Upon request the system should display all meetings in the day.
- Upon request the system should display all meetings in a room.
- Upon request the system should display all meetings being attended by a single user.
- Upon request the system should display all meetings at a specific time slot.
General Implementation Guidelines:
- You are required to use Java.
- You are required to use classes to represent your objects.
The application implementation is defined into the following two phases:
- Your application should not have a GUI. All interaction should be made through the command line.
- Your application does not need to save the information onto a file.
- Zip your files into one zip file. Upload your zip file into Angel under drop box ProjectPhase1.
- You will have to present a 5-minute demo of your application. This is performed in your lab sessions scheduled on (March 29th).
- Grading Policy:
- Correct functional behavior. (70%)
- Good and clear documentation. (10%)
- Input validity check and fault tolerance. (20%)
- Your application should have a GUI. All interaction should be through the GUI. The command line should never be used.
- At any time, the user should be able to save all the information on a file.
- When a program start the user can upload all the information from a file.
- Zip your files into one zip file. Upload your zip file into Angel under drop box ProjectPhase2.
- You will have to prepare a short report about your application. Submit the printed report during your demo. It should contain the following sections:
- Introduction: give an overview of the application and the main functionalities.
- Requirements: give a detailed discussion about the application required functionalities.
- Design: List all the classes that you have in your implementation. Each class should be discussed by introducing the class goal and its main functionality.
- Challenges: discuss and challenges that you have faced and how you dealt with them.
- Shortcomings: discuss the functionaries that you were not able to implement and the reason behind that.
- Conclusion and Future work: give some concluding remarks and state how you can improve your application in the future.
- You will have to present a 5-minute demo of your final application. This is performed in your last lab session scheduled on (April 26th).
- Grading Policy:
- Correct functional behavior. (50%)
- Correct and Usable GUI. (25%)
- Input validity check and fault tolerance. (15%)
- Report (10%)