Skip to content

STORE-CLI is a C++ command-line application for managing a virtual store. It uses JSON for data storage and features a modular design for handling products, categories, users, and transactions. Simple yet powerful, it’s built to bring e-commerce functionality to the terminal.

License

Notifications You must be signed in to change notification settings

CallMeJaja/STORE-CLI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

wakatime

STORE-CLI: Your Command-Line E-Commerce Application

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.

Features

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)

Architecture

STORE-CLI follows a multi-tier architecture, separating concerns into different components:

  • Entities: Represent core data structures like Product, Category, User, and Transaction.
  • 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.

Getting Started

  1. Clone the repository:
git clone https://github.com/CallMeJaja/STORE-CLI && cd STORE-CLI
  1. Create a build directory:
mkdir build
cd build
  1. Generate the build files:
cmake .. -G "MinGW Makefiles"
  1. Compile the project:
cmake --build .
  1. Run the executable:
cd .. && .\bin\store-cli.exe

or

cd .. && .\run.bat

Data Storage

Currently uses JSON files for data persistence. This will be replaced with a database in a future version.

Future Development

  • 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.

Contributing

Contributions are welcome! Please fork the repository and create a pull request with your changes.

License

This project is licensed under the MIT License.

Contact

For any questions or suggestions, please open an issue or contact the project maintainer:

[email protected]

Or contact me directly on WhatsApp: [https://s.id/CallMeJajaWA]

About

STORE-CLI is a C++ command-line application for managing a virtual store. It uses JSON for data storage and features a modular design for handling products, categories, users, and transactions. Simple yet powerful, it’s built to bring e-commerce functionality to the terminal.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages