Meeting scheduler

This project consists of developing a graphical application for managing meetings using a PostgreSQL database, allowing users to add persons, schedule and view meetings, and import/export meetings in a standard calendar format, with full input validation and error handling.

Phase 1: Database Setup and Connection

Set up the PostgreSQL database and connect the application.

  • Create tables for Persons and Meetings
  • Establish a secure database connection
  • Handle connection errors

Functional Output: The application can connect to the database and access the required tables


Phase 2: Adding Persons

Allow adding new persons through the GUI.

  • Validate input and prevent duplicates
  • Insert new records into the Persons table
  • Provide success/error feedback

Functional Output: New persons can be added and confirmed in the GUI


Phase 3: Scheduling Meetings

Enable scheduling meetings with start/end times and participants.

  • Validate times and participant list
  • Insert meeting records with participant mapping
  • Handle conflicts and errors

Functional Output: Meetings are stored in the database with all participants


Phase 4: Displaying Meetings

Display meetings within a selected time interval.

  • Query meetings from the database
  • Show results in a readable format in the GUI
  • Handle empty results

Functional Output: Meetings for the selected interval are displayed accurately


Phase 5: Export/Import Calendar

Allow export/import of meetings to/from a standard calendar format.

  • Export selected meetings to iCal/ICS
  • Import meetings from a calendar file with validation
  • Provide success/error feedback

Functional Output: Meetings can be exported to and imported from a calendar file correctly


Phase 6: Input Validation and Error Handling

Validate inputs and handle exceptions gracefully.

  • Check names, dates, and participant lists
  • Display clear error messages
  • Ensure the application keeps running

Functional Output: Invalid inputs and exceptions are caught with user feedback