Skip to content

phildehovre/ci-django-shop

Repository files navigation

Online Shop

Table of Contents

  1. Project Overview
  2. Features
  3. Tech Stack
  4. Installation
  5. Usage
  6. Configuration
  7. Testing
  8. Contributing
  9. License
  10. Contact

Project Overview

Context:

This project was created within the context of the Code Institute Full-Stack Bootcamp, February 2024 intake.

Technical constraints:

The computer this project was developed on did not allow for the installation of node or npm. Developing using only vanilla JS is always an interesting constraint as it is easy to rely too much on contemporary front-end frameworks.

The project:

This is an online shop built with Django, allowing users to browse products, add items to their cart, and complete purchases. It has a limited admin functionality that allows certain users to add and or edit products.

Development:

I drew inspiration for the design from a widely recognized and highly popular online shopping platform. The objective of my implementation is to provide a comprehensive overview of the various facets involved in running an online shop. This high-level perspective aims to cover the essential components and functionalities without delving into the minutiae of each detail. Implementing every single aspect with full fidelity would be a significantly more time-consuming endeavor than the duration of this bootcamp permits.

Database implementation:

Database diagram

Project management:

By leveraging GitHub's robust tools for tracking progress and collaboration, our development team engaged in continuous interaction with users, gathering essential feedback at every stage. This feedback was instrumental in crafting detailed user stories, which were then meticulously divided into manageable tasks and organized into sprints.

Agile project view

agile-screenshot

Features

User registration and authentication

loginscreenshot

Product browsing and searching

amIresponsive

Shopping cart functionality

basket

Order and checkout process

checkout

Mock payment integration

mock_payment

  • Order history
  • Admin panel for managing products, orders, and users

Tech Stack

  • Backend: Django, Django REST framework
  • Frontend: HTML, CSS, JavaScript
  • Database: SQLite (for development), PostgreSQL (for production)
  • Other: Docker (for containerization), AWS S3 (for serving static files), Gunicorn (as WSGI HTTP Server)

Installation

Prerequisites

  • Python 3.x
  • pip (Python package installer)
  • Docker (optional, for containerization)

Setting Up Locally

  1. Clone the repository:

    git clone https://github.com/phildehovre/ci-django-shop.git
    cd ci-django-shop
  2. Create and activate a virtual environment:

    python3 -m venv venv
    source venv/bin/activate  # On Windows use `venv\Scripts\activate`
  3. Install dependencies:

    pip install -r requirements.txt
  4. Set up the database:

    python manage.py migrate
  5. Create a superuser:

    python manage.py createsuperuser
  6. Run the development server:

    python manage.py runserver

Usage

Configuration

  • Database Configuration: Update the DATABASES setting in settings.py to configure your database.

Testing

No tests were implemented for this project.

Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature/your-feature-name).
  3. Make your changes.
  4. Commit your changes (git commit -m 'Add some feature').
  5. Push to the branch (git push origin feature/your-feature-name).
  6. Open a pull request.

License

Copyright 2024 Philippe De Hovre, all rights reserved.

Contact

For any inquiries or issues, please contact [email protected].

About

An online shopping platform. Similar to Temu, Amazon.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published