In this console-based project, we plan to implement the following core functionalities:
-
User Authentication: Users will be able to create accounts, log in, and authenticate their identities to access the calendar and meetings.
-
Calendar Creation: Users can create multiple calendars, each with a unique title. Calendars will be associated with specific users.
-
Meeting Creation: Within each calendar, users can schedule meetings. Meetings will have attributes such as title, start time, end time, and a description.
-
Meeting Modification: Users will be able to update, edit, or reschedule existing meetings.
-
Meeting Deletion: Users can delete meetings from their calendars when they are no longer needed.
-
Viewing Calendars: Users will have the ability to view their calendars, which will display all scheduled meetings for a selected time period.
-
Searching Meetings: Users can search for meetings within a specific date range, by title, or other criteria.
-
Data Persistence: All user account data, calendars, and meetings will be stored in a relational database using SQL.
-
Exception Handling: Proper exception handling will be implemented to handle potential errors gracefully.
-
User-Friendly Console Interface: The application will provide a user-friendly console interface for interacting with the calendar and performing various actions.
-
Security: Passwords will be securely hashed and stored in the database to protect user account information.
-
Database Interaction: The application will use JDBC to interact with the database, including creating, reading, updating, and deleting records.
-
Stream Processing: Stream processing may be used for tasks like filtering, sorting, and summarizing meeting data.