This Full Stack Django application is a multi-seller marketplace, where users can log in and sell their products, in addition to viewing their own purchases / sales statistics and leaving ratings for the products they have purchased.
Tech-stack: python / JavaScript / SQL / tailwindCSS / html
Project Areas: Django authentication models / Advanced MVT architecture / inter-model relationships between Django models / Django database modelling and utilising data in UI integration / JavaScript for DOM manipulation / cart and checkout implementation with stripe API / dynamic UI displays using chartJS
-
Clone the repository:
gh repo clone wells1989/Djando-multi-seller-marketplace
-
Install dependencies:
pip install -r requirements.txt
-
Apply database migrations:
python manage.py migrate
-
Run the development Server:
cd mysite python manage.py runserver
Access the app at http://localhost:8000 in your web browser.
- Description: Allows users to register or log in to the platform.
- Description: Displays a dynamic homepage with featured products and links via the Navbar to the other areas if the User is logged in / authenticated
- Description: Provides a form for users to create and list new products for sale.
- Description: Product Details page which allows you to add or remove items from your cart
- Description: cart View provides overview of Cart (Items / quantity / total price) before checking out
- Description: On Checkout, accessing the stripe API for payment
- Description: Users can view / edit / delete their items, as well as seeing the sales / revenue and average rating for each
- NOTE: superusers can access everyone's items
- Description: Users can retrieve sales data for their products, seeing the total sales or sales by time period, in table or chart form
- NOTE: superusers can see entire sales across users
- Description: Users can view the orders they have made, as well as the amount they paid and can also leave a 1-5 star rating for the products
- The Focus of this project was to provide a wide view of functionality, including user authentication, model instance manipulation via Django forms / views with ORM and UI statistics obtained from SQL databases.
- The App is designed to be used by both regular users and superusers, with superusers having more permissions on editing / deleting products, as well as being able to view the entire sales across the site.
- The Stripe Authentication was used with a dummy payment_intent due to an internal Stripe error when developing the product
- A future feature could be adding a comments section to the product reviews. This would require a separate Review Model, which could then be linked to a product whilst having it's own comments and review field.
- A User profile section onthe main site would allow users to customise and alter their Profile information in the event of changing email addresses etc.
- The login feature could have incorporated a change password reset in case the user forgot their password.