Skip to content

Omarkhaled711/infinite-goods

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Infinite Goods

Infinite Goods is an e-commerce platform aimed at providing a seamless shopping experience for users interested in purchasing a variety of products online. The platform allows users to browse through a wide range of categories, add products to their cart, and securely complete transactions. It also includes features such as user authentication, product search, applying coupons, and a lot more.

Table of Contents

Features

  • User Authentication: Secure user authentication system allowing customers to create accounts, activate their email through a validating link, login, and manage their profiles.

    • Registering Process:

      Register.mp4
    • Login Process:

      Login.mp4
  • Searching For Products: Easy-to-use interface for Searching for products based on product name and description

    Search.mp4
  • Cart Functionality: Seamless shopping cart experience enabling users to add, remove, and modify items before proceeding to checkout.

    • Add To Cart:

      Add_to_Cart.mp4
    • Increment, Decrement, and Remove from cart:

      Cart_Functionalities.mp4
  • Coupon Application: Capability to apply discount coupons during checkout, enhancing customer satisfaction and encouraging repeat purchases.

    Apply_Coupon.mp4
  • Place Order Process: Smooth and intuitive placing order process

    Place_Order.mp4
  • Payment Integration with PayPal: Integration with PayPal for secure and convenient online payments, ensuring trust and reliability for customers.

    Pay_With_Paypal.mp4
  • Submit Reviews : Let the people konow what you think of the products you bought, and whether you recommend it or not.

    Submit_A_Review.mp4
  • Order Management: Receiving an email when order is completed, and getting updated about the status of your order.

    Click to view screenshot

    Order_Confirmation_Mail

  • Admin Dashboard: Granting superuser access to monitor and manage data according to administrative preferences.

    Click to view screenshot

    admin_dashBoard

And More... We are Continuously evolving features to improve the overall shopping experience and meet the diverse needs of our customers.

REST API

We provide a RESTful API to interact with various resources. Below are the available endpoints for now:

Product Endpoints

  • GET /shop/api/v1/products/
    • Description: Retrieve a list of all products available in the shop.
    • Parameters: None
  • GET /shop/api/v1/products/{product_id}/
    • Description: Retrieve details of a specific product by its ID.
    • Parameters:
      • {product_id}: Unique identifier of the product.

Category Endpoints

  • GET /category/api/v1/categories/:
    • Description: Retrieve a list of all categories.
    • Parameters: None

Cart Items Endpoint

  • GET /cart/api/v1/cart/items/
    • Description: Retrieve the items currently in the user's shopping cart.
    • Authentication: Supports both Session Authentication and Token Authentication.
    • Parameters: None

Order Endpoints

  • GET /orders/api/v1/orders/

    • Description: Retrieve a list of all orders placed by the current user.
    • Authentication: Supports both Session Authentication and Token Authentication.
    • Method: GET
    • Parameters: None
  • POST /orders/api/v1/orders/

    • Description: Place a new order.
    • Authentication: Supports both Session Authentication and Token Authentication.
    • Method: POST
    • Parameters: Order details (e.g., products, quantities)
  • GET /orders/api/v1/orders/{order_id}/

    • Description: Retrieve details of a specific order by its ID.
    • Authentication: Supports both Session Authentication and Token Authentication.
    • Method: GET
    • Parameters:
      • {order_id}: Unique identifier of the order.

Requirements

Ensure you have the packages inside requirements.txt installed.

You can install these dependencies using pip:

pip install -r requirements.txt

Make sure to run this command in your project directory to install all the required packages before running the app.

Installation

  1. Clone the repository: git clone 'https://github.com/Omarkhaled711/infinite-goods.git'

  2. Navigate to the project directory: cd infinite-goods

  3. Install dependencies: pip install -r requirements.txt

Configuration

Before running the app, ensure to configure the necessary environment variables found in infiniteGoods/settings.py.

For instance, you'll need to set up the following environment variables:

  • DJANGO_EMAIL: Set this variable to the email address you wish to use for sending various emails such as verification mails, order received successfully mails, etc.

  • DJANGO_PASS: Set this variable to the corresponding password for the email account specified in DJANGO_EMAIL.

Make sure to configure these environment variables correctly to enable essential email functionalities within the app.

Usage

  • To simply run the Django app:

    1. python3 manage.py runserver
    2. Open your web browser and navigate to http://127.0.0.1:8000
  • To create a superuser:

    • python3 manage.py createsuperuser
  • If you edited one of the models, or created a new model:

    1. python.py manage.py makemigrations
    2. python manage.py migrate

Contributing

  • Fork the repository

  • Make your changes

  • Submit a pull request

License

This project is licensed under the MIT License - see the LICENSE file for details.