Metro Network Monitor is a software solution aimed at optimizing passenger flow across metro systems by suggesting less crowded routes to commuters. This project leverages modern C++ features, including automatic memory management, asynchronous operations, lambdas, templates and more, along with libraries such as Boost.Asio and JSON for Modern C++. The network monitor operates a STOMP server that offers a quiet route service to any STOMP clients making itinerary requests.
- Objective: Develop an itinerary recommendation system that monitors and analyzes real-time metro network traffic to suggest quieter routes.
- Data Sources: Utilizes real-time data from electronic card taps and a JSON-based network layout.
- Technical Aspects: Functions as both client and server, using STOMP over WebSockets for messaging, and stores data in JSON format.
- GCC compiler
- CMake and Make for build generation
- Conan package manager
- Git for version control
- Clone the repository
git clone <repository-url>
- Create cmake build directory
mkdir build && cd build
- Install dependencies with Conan
pip3 install conan==1.53.0
conan install .. --build=missing
- Configure and build the project with CMake
cmake ..
cmake --build . --parallel $(nproc)