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.
-
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.
-
Admin Dashboard: Granting superuser access to monitor and manage data according to administrative preferences.
And More... We are Continuously evolving features to improve the overall shopping experience and meet the diverse needs of our customers.
We provide a RESTful API to interact with various resources. Below are the available endpoints for now:
- 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.
- GET /category/api/v1/categories/:
- Description: Retrieve a list of all categories.
- Parameters: None
- 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
-
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.
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.
-
Clone the repository:
git clone 'https://github.com/Omarkhaled711/infinite-goods.git'
-
Navigate to the project directory:
cd infinite-goods
-
Install dependencies:
pip install -r requirements.txt
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.
-
To simply run the Django app:
python3 manage.py runserver
- 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:
python.py manage.py makemigrations
python manage.py migrate
-
Fork the repository
-
Make your changes
-
Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.