STORE-CLI is a command-line application built with C++ that provides a virtual store management system. It utilizes JSON files for data storage, enabling seamless handling of products, categories, users, and transactions. Designed with a modular architecture, the project separates business logic, data access, and user interface for better maintainability. STORE-CLI is actively being developed to include advanced management features, performance optimization, and enhanced security, making it a straightforward yet powerful solution for e-commerce in a terminal-based environment.
For Users:
- Browse products by category.
- View product details (name, price, description, stock).
- Securely purchase products.
- Top-up account balance.
- View transaction history.
- Edit profile.
For Administrators:
- Dashboard with key statistics (total users, active users, products, categories, transactions).
- Product management (add, update, delete, restock).
- Category management (add, update, delete).
- User management (view, toggle access).
- Store management (name, owner name, description, phone number, view)
STORE-CLI follows a multi-tier architecture, separating concerns into different components:
- Entities: Represent core data structures like
Product
,Category
,User
, andTransaction
. - Repositories: Handle data persistence using JSON files. A
BaseRepository
provides common functionality. - Services: Implement business logic related to products, categories, users, shopping, and authentication.
- Menus: Provide the user interface for both shoppers and administrators.
- Utils: Helper functions for input validation and formatting.
- Clone the repository:
git clone https://github.com/CallMeJaja/STORE-CLI && cd STORE-CLI
- Create a build directory:
mkdir build
cd build
- Generate the build files:
cmake .. -G "MinGW Makefiles"
- Compile the project:
cmake --build .
- Run the executable:
cd .. && .\bin\store-cli.exe
or
cd .. && .\run.bat
Currently uses JSON files for data persistence. This will be replaced with a database in a future version.
- Implement Session Hadnling: Add a secure session management system for persistent login and user-specific states.
- Implement a Database: Migrate data storage to a relational database (e.g., PostgreSQL, MySQL) or NoSQL database (e.g., MongoDB).
- Expand Functionality: Add administrator features, product browsing, shopping cart functionality, and order processing.
- Error Handling: Enhance error handling and reporting for greater robustness.
- Testing: Implement unit and integration tests.
Contributions are welcome! Please fork the repository and create a pull request with your changes.
This project is licensed under the MIT License.
For any questions or suggestions, please open an issue or contact the project maintainer:
Or contact me directly on WhatsApp: [https://s.id/CallMeJajaWA]