Mykhailo Pavlov
Back to Projects

FMFI Schedule Manager

Released
Released Dec 2024
C++17CMakeGoogleTestCLIData Structures
Summary

A CLI that keeps your timetable conflict-free by detecting overlapping classes before you sign up for them.

The Problem

Choosing courses at FMFI usually involves a messy spreadsheet and a lot of guessing. I wanted to build something that prevents you from signing up for two classes at the same time.

The Solution

Built a C++17 CLI tool that checks for time conflicts before adding courses. Used CMake for the build system and GoogleTest for unit testing.

Key features:

  • Collision detection, scans your schedule for overlaps before adding a course
  • Role-based access, supports Admin and User roles
  • File I/O, import and export courses via text files

Key takeaways:

  • Managed memory safely using RAII principles
  • Structured code with separate manager classes to keep business logic clean
  • Wrote unit tests for date validation and edge cases like events spanning midnight