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. Data Persistence Layer Console interface (CLI) 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). GitHub Code
Budget Application – Console Financial System
A C++ console desktop application designed to reliably monitor financial balances, record income and expenses, and generate periodic reports. Budget Application is a stable engineering tool dedicated to daily household budget management. The application allows users to fully manage cash flow, categorize financial transactions, and instantly check their balance by selected settlement period. 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 Data processing: Type conversion algorithms (e.g., parsing strings into floating-point numbers) and proprietary logic for chronological transaction sorting. The biggest challenge in this project was designing reliable calculation logic and error-free operation of dates and amounts in the console environment. Key elements included programming a mechanism for validating entered amounts (resistant to user errors, such as entering letters instead of numbers) and correctly parsing date formats for subsequent sorting and filtering when generating reports. The application architecture was divided into independent modules, simplifying code maintenance and eliminating technical debt. // Income and Expense Management Ability to add financial transactions with the specified amount, date, and detailed description (category). // Dynamic Balancing Automatic and immediate recalculation of the total account balance after each transaction. // Periodic Filtering and Reporting Display the current month’s balance. Display the previous month’s balance. Generate reports from a custom, user-defined date range. User Structure Management Automatic Synchronization Secure registration and login system with separate budget files for each account. Every financial transaction is immediately saved in text files, preventing data loss in the event of a sudden program shutdown. GitHub Code