A console desktop application in C++ implemented in the full object-oriented programming (OOP) paradigm for secure and structured contact data management.
The main challenge was to strictly adhere to SOLID principles and avoid anti-patterns (such as Spaghetti Code or God Object). The application was designed modularly, separating the presentation layer (console interface) from the data processing logic and input/output (I/O) operations. A key element was ensuring consistent recipient IDs when deleting and editing records in relation to flat files (txt) and optimally utilizing containers from the Standard Template Library (STL).
- C++ (Standard C++11 / C++14)
- (OOP – Object-Oriented Programming)
- C++ STL (Standard Template Library) – intensive use of containers (e.g. std::vector), algorithms and std::string objects
The project aimed to create a scalable system for recording users and their contact addresses. Instead of simple structured code, the entire application was divided into independent, interoperable classes responsible for specific layers of business logic (user management, contact operations, file management).
//User Authorization System
Secure registration of new accounts and a login module with password validation.
// Complete CRUD module for contacts
Adding: Quickly enter new recipients with automatic assignment of a unique ID. Search: Advanced filtering of contacts by first or last name. Editing: Ability to modify any contact field (phone number, email address, address, etc.). Deleting: Securely delete entries from the database.
// Full Data Isolation (Multi-User)
After logging in, each user has access only to their own private recipient database.
Automatically saves and reads data from text files each time the program is launched and closed, or after an operation.
Clear, text-based user menu with input error handling (resistant to entering invalid characters).