Skip to content

Latest commit

 

History

History
244 lines (164 loc) · 14.2 KB

File metadata and controls

244 lines (164 loc) · 14.2 KB

E-commerce platform🛒

Table of Content

Introduction

The e-commerce industry has transformed the way we buy and sell products and services. Customers can now shop online, browse through numerous products, and purchase them from the comfort of their homes. We will explore developing an e-commerce platform using the Django framework, which is a versatile Python web framework that follows the Model-View-Controller (MVC) architectural pattern. Django simplifies the development process by providing built-in features and tools, and we will leverage these features to create a user-friendly and responsive e-commerce website.

Our platform will have a straightforward design that focuses on ease of use and functionality. It will consist of several key components, including Category, Product, Order, and OrderItem models that will allow us to organize products into different categories, manage customer orders, and track order items. Customers will have an intuitive and responsive user interface to ensure a seamless shopping experience. They will be able to view product listings, search for specific items, add products to their shopping cart, and make modifications before proceeding to the checkout process. The platform will also collect shipping and billing details for smooth order fulfillment.

Administrators will have a comprehensive dashboard that will display vital information such as product listings, categories, orders, and total sales. They will have the ability to create, modify, and remove categories and products, as well as view and modify order statuses. This level of control ensures efficient management of the e-commerce platform and enables administrators to provide excellent customer service.

It's essential to note that our e-commerce platform may not be optimized for large-scale applications and may have security and performance considerations that need to be addressed for real-world deployment. Nonetheless, this project will provide a solid foundation for understanding the development of e-commerce platforms using Django and serve as a starting point for future enhancements and improvements.

In brief, our e-commerce platform using Django will showcase the power and flexibility of this popular web framework. By leveraging Django's features and following best practices, we aim to create a user-friendly and responsive e-commerce website that allows customers to browse, search, and purchase products effortlessly while providing administrators with the necessary tools to manage and monitor the platform effectively.

Project Structure

< PROJECT ROOT >
   |
   |-- core/                               # Implements app configuration
   |    |-- settings.py                    # Defines Global Settings
   |    |-- wsgi.py                        # Start the app in production
   |    |-- urls.py                        # Define URLs served by all apps/nodes
   |
   |-- apps/
   |    |
   |    |-- home/                          # A simple app that serve HTML files
   |    |    |-- views.py                  # Serve HTML pages for authenticated users
   |    |    |-- urls.py                   # Define user routes  
   |    |    |-- forms.py                  # Define some forms (product, category, cart and order) 
   |    |    |-- admin.py                  # The configuration for the Django admin interface for the app
   |    |
   |    |-- authentication/                # Handles auth routes (login and register)
   |    |    |-- urls.py                   # Define authentication routes  
   |    |    |-- views.py                  # Handles login and registration  
   |    |    |-- forms.py                  # Define auth forms (login and register) 
   |    |
   |    |-- static/
   |    |    |-- <css, JS, images>         # CSS files, Javascripts files
   |    |
   |    |-- templates/                     # Templates used to render pages
   |         |-- includes/                 # HTML chunks and components
   |         |    |-- navigation.html      # Top menu component of admin
   |         |    |-- navigation2.html     # Top menu component of customer
   |         |    |-- navigation3.html     # Top menu component of landing page
   |         |    |-- sidebar.html         # Sidebar component
   |         |    |-- footer.html          # App Footer
   |         |    |-- scripts.html         # Scripts common to all pages
   |         |
   |         |-- layouts/                   # Master pages
   |         |    |-- base-fullscreen.html  # Used by Authentication pages
   |         |    |-- base.html             # Used by common pages
   |         |    |-- base2.html            # Used by common pages
   |         |
   |         |-- accounts/                  # Authentication pages
   |         |    |-- login.html            # Login page
   |         |    |-- register.html         # Register page
   |         |
   |         |-- home/                      # UI Kit Pages
   |              |-- index.html            # Index page
   |              |-- 404-page.html         # 404 page
   |              |-- *.html                # All other pages
   |
   |-- requirements.txt                     # Development modules - SQLite storage
   |
   |-- .env                                 # Inject Configuration via Environment
   |-- manage.py                            # Start the app - Django default start script
   |
   |-- ************************************************************************

Design Choices

This e-commerce website is a user-friendly platform that enables users to explore a wide range of products, add them to their cart, and effortlessly complete their checkout process by placing an order. The application is built on top of the reliable Django framework and has a simple yet efficient design.

The primary data models utilized in this application are Category, Product, Order, and OrderItem. Category and Product are used to systematically organize the products in the database, while Order and OrderItem are responsible for managing the checkout process.

The application's interface is designed to be smooth and hassle-free, catering to users' convenience. The UI is crafted using HTML templates, CSS, and JavaScript and has a responsive design that allows for easy navigation and quick access to the desired products.

Assumptions

  • The system assumes that products are priced uniformly, irrespective of the quantity or any other factors. It does not allow sellers to offer discounts or promotions on different quantities.
  • The system assumes there is only one seller in the system.
  • The system assumes that all products are available for purchase at all times, and there is no option to indicate if a product is out of stock or temporarily unavailable.

Limitations

  • The implementation may not be optimized for large-scale applications, as it has not been tested with high volumes datasets.
  • The implementation may have security vulnerabilities, such as SQL injection attacks, if not used and configured properly.
  • The implementation assumes that the database schema is already created and will not handle schema changes automatically. Manual intervention may be required to handle schema changes.
  • The implementation may have performance issues if the database is not properly indexed.
  • The implementation does not integrate with the payment gateway.

System Interface

Public Access

  1. Home Page

Upon accessing the website, users will be directed to the home page where they can view the list of available products. In order to make a purchase, it is necessary to log in first.
image

  1. Search a Product

To locate a specific product, simply enter the name of the item you desire in the search bar and the results will appear shortly thereafter. image

  1. User Registration

New users can register on the site by simply clicking the register link.
image

  1. Sign In

Once registered, the user will be prompted to proceed to the login page. image

Customers

  1. Product

Customers who have signed in can easily find and view desired products.

  • View

image

  • Search

image

  1. Add Products to the Cart

To make a purchase, the customer can add the desired item to their cart. If they need to make any changes, they have the option to remove or update the items in the cart.

  • Add products to cart

image

  • View/Update/Delete products in the cart

image

  1. Order

To complete the order, customers need to provide their shipping and billing details.

  • Add details

image

  • View details

image

image

Admin

  1. Dashboard

When logging in as an administrator, the interface will appear differently. The dashboard will display the overall products, categories, orders, and total sales for the admin to view. image

  1. Category

The administrator can create, modify, remove, view, and search product categories that have been made.

  • Add

image

  • View

image

  • Update

image

  • Delete

image

  • Search

image

  1. Products

The administrator can perform various tasks such as creating, viewing, updating, deleting, and searching for new or previously listed products to sell in the store.

  • Add

image

  • View

image

image

  • Update

image

  • Delete

image

  • Search

image

  1. Orders

The Orders section will show all created orders. The administrators have the ability to view and modify the status of the order, indicating whether it has been shipped or delivered.

  • View

image

image

  • Update

image

  • Search

image

Conclusion

In conclusion, the e-commerce website is a user-friendly platform built on the Django framework to ensure a smooth and hassle-free checkout process. The primary data models used include Category, Product, Order, and OrderItem, which help to organize products and manage the checkout process. The UI is easy to navigate and responsive, using HTML templates, CSS, and JavaScript. It is important to note that proper indexing of the database is crucial to prevent potential security vulnerabilities and performance issues. Additionally, it is assumed that products are priced uniformly, there is only one seller, and all products are available for purchase at any time. Overall, this website is a great option for online shopping.

Quick Start

How to Run the Project