EASYSTORE is a modern C++ console project that simulates a small smart store management system.
- Product catalog management
- Inventory tracking
- Low-stock alerts with observer pattern
- Cart system using non-owning raw pointers
- Smart-pointer-based architecture
- Undo support for stock operations with command pattern
- Checkout with multiple discount strategies
This project intentionally uses several advanced C++ design ideas:
std::shared_ptrfor shared ownership of products in the inventorystd::unique_ptrfor commands and discount strategiesstd::weak_ptrfor observers- raw pointers as non-owning references inside the cart
- polymorphism for product types and discount strategies
- command history with undo
EASYSTORE/
├── CMakeLists.txt
├── .gitignore
├── README.md
├── include/
└── src/