Meeting Calendar Project Functionalities

In this console-based project, we plan to implement the following core functionalities:

  1. User Authentication: Users will be able to create accounts, log in, and authenticate their identities to access the calendar and meetings.

  2. Calendar Creation: Users can create multiple calendars, each with a unique title. Calendars will be associated with specific users.

  3. Meeting Creation: Within each calendar, users can schedule meetings. Meetings will have attributes such as title, start time, end time, and a description.

  4. Meeting Modification: Users will be able to update, edit, or reschedule existing meetings.

  5. Meeting Deletion: Users can delete meetings from their calendars when they are no longer needed.

  6. Viewing Calendars: Users will have the ability to view their calendars, which will display all scheduled meetings for a selected time period.

  7. Searching Meetings: Users can search for meetings within a specific date range, by title, or other criteria.

  8. Data Persistence: All user account data, calendars, and meetings will be stored in a relational database using SQL.

  9. Exception Handling: Proper exception handling will be implemented to handle potential errors gracefully.

  10. User-Friendly Console Interface: The application will provide a user-friendly console interface for interacting with the calendar and performing various actions.

  11. Security: Passwords will be securely hashed and stored in the database to protect user account information.

  12. Database Interaction: The application will use JDBC to interact with the database, including creating, reading, updating, and deleting records.

  13. Stream Processing: Stream processing may be used for tasks like filtering, sorting, and summarizing meeting data.