Appointments manager

Context

This project was the final project for the course entitled "Data Structures and Algorithms" during the first semester of 2021 (second year).

Description and goals

The goal of this project was to show understanding of different data structures, sorting algorithms and advanced concepts.

The project was about finding an appointment of a certain duration for some employees from their calendars and availabilities.

The main features of the console application were:

  1. Search an employee
  2. Add a new employee
  3. Remove an employee
  4. Add a new meeting
  5. Cancel a meeting
  6. Delete all meetings before a certain date
  7. Suggest best time to meet

Tech Stack

Concepts used and developped

Implementation

Main

The program's main function features a do while loop with a switch block. This block evaluates the user's input to select one of the modes shown in the goals section. This was before OOP and even in the beginning of my coding career, so I would change how I do things if I ever came back to this project.

Employees

Employee data is saved in a file in the same directory as the running programme. It is read and updated when save is requested. When placed into memory, employees are saved in a linked list of a custom struct.

Meetings

N.B. The meetings list, or the employees' calendars are also a linked list

Meetings suggestion

This feature is the most important feature in this project.

The algorithm goes as following: