This project implements a turnstile management system for a ski resort. The system manages ski lift access using SkiPass tickets, each identified by a unique ID and associated with owner information (full name, age, and gender) at the time of sale.
For time-based and ride-limited tickets, the system provides a balance management interface, including top-up functionality (which extends validity time or increases the number of rides and returns change) and balance inquiry.
All tickets except service tickets are linked to a storage locker cell. The system allows opening and closing the locker and retrieving the locker number associated with a ticket.
Unlimited and service tickets support owner reassignment. For all ticket types, the system provides functionality to check access permission for a given turnstile and to perform a pass through a specified turnstile.
Building for your current system architecture:
cmake -S . -B build -G Ninja
cmake --build buildStartup:
./build/skisysMemory check:
./valgrind/run.sh
vim valgrind/memcheck.log