Sigma Store - eCommerce System (ECS)
The eCommerce System (ECS) is a terminal-based application designed to manage product listings, customer orders, and product statistics. It provides two distinct interfaces: one for customers to place orders and another for admins to manage the products and view statistics. The system also stores product and order data in an SQLite database for easy access and management.
-
User Authentication and Authorization
- Authentication Display: Secure Login and Registration System using SQLite.
- Password Storage: Passwords are encrypted using Caesar Cipher for secure storage.
-
Customer Interface
- Product Browsing: View available products with details like name, price, and description.
- Dynamic Cart Management: Add items to a cart, view total cost, and complete the order process. Each user's cart is managed with a linked list, storing products and their quantities.
- Order History: View their order history and rate a product out of five.
-
Admin Interface:
- Product Management: Add, edit, modify or remove products from the inventory.
- Order Management: View, update, and delete orders as necessary.
-
Data Storage with Structs
- C Structs: Core application entities like users, products, and orders are represented using C structs, providing an organized way to store and manipulate data.
-
Data Persistence
- SQLite: All user data, product details, and order histories are stored and retrieved from a SQLite database.
- C: Core programming language for implementing functionalities.
- SQLite: Database for persistent data storage.
- ncurses: Library for creating a text-based user interface.
- Makefile: For simplifying the build process.
Before running the application, ensure the following dependencies are installed:
For database operations, SQLite3 is required. Install it using the following commands:
sudo apt-get install libsqlite3-devsudo apt install sqlite3The application uses ncurses for the text-based user interface. Follow these steps to install ncurses:
-
Download the Stable Release Source from this link.
-
Extract and build ncurses: (Replace
<version>with the version you downloaded)tar zxvf ncurses<version>.tar.gz # Unzip and untar the archive cd ncurses<version> # Navigate to the extracted directory ./configure # Configure the build for your environment make # Build the package sudo -i # Switch to root user
-
Navigate to the extracted ncurses folder as root and install:
make install
- Clone the repository:
git clone https://github.com/Invito101/sigma-store.git
- Move into the sigma-store directory:
cd sigma-store - Make the build script executable:
chmod +x build_clean_run.sh
- Compile and run the project using the provided build script:
./build_clean_run.sh
Once the project is installed and the dependencies are configured, you can use the application as follows:
-
Start the Application
- Run the build script:
./build_clean_run.sh
- This will clean old builds, compile the project, and launch the application.
- Run the build script:
-
Registration and Login
- When the application starts, you will be prompted to register or log in with your email address:
- If your email ends with
@sigmastore.in, the system will recognize you as an admin and grant you admin access immediately. - If your email does not end with
@sigmastore.in, the system will register you as a customer and provide access to customer features only.
- If your email ends with
- When the application starts, you will be prompted to register or log in with your email address:
-
Customer Features
- As a customer, you can:
- Browse available products.
- Add products to your cart.
- View your cart.
- Place orders securely.
- As a customer, you can:
-
Admin Features
- As an admin, you can:
- Manage the product inventory (add, edit, or remove products).
- View and manage customer orders.
- Access additional administrative tools and statistics.
- As an admin, you can:
| Interface | Contributors |
|---|---|
| Admin | H Sanjay, K Sai Amith, Sumanth Y M |
| Customer | Akshay K M, Anurag Rao U, S Arjun Sai |
| Contributor | Contribution Details |
|---|---|
| Akshay K M | Signup, Encryption of Passwords, Ordering/Cart, Wallet, User Interface Assistance |
| Anurag Rao U | Database, Shell Script, Backend |
| H Sanjay | Delete Product, View Products Category Wise, Complete Order, Makefile, User Interface |
| K Sai Amith | Modify Product, View Product by Name, Order History, User Interface |
| S Arjun Sai | Login, Customer Home Page, Product Filters, View Products, User Interface Hero |
| Sumanth Y M | Admin Home Page, Create Product, View All Products, View Bestselling Products, View Top Rated Products, User Interface |
This project is licensed under the MIT License. See the LICENSE file for more details.