371expenses is a C++ application developed to manage and query personal expenses. The program allows users to create, update, delete, and query categories, items, tags, and dates associated with their expenses. Data is stored and manipulated in a JSON file, and users interact with the application through command-line arguments. The project follows a Behaviour-Driven Development (BDD) approach, using Catch2 for unit testing to ensure the program meets the required specifications. It supports functionality such as creating categories, summing item amounts, and updating descriptions, all while maintaining compliance with the provided test suites. By building this application, students gain hands-on experience with real-world software development practices, including using third-party libraries, reading documentation, and adhering to coding specifications.