shanirub / ecommerce

An E-commerce System Inspired by the Super Mario Universe
MIT License
2 stars 0 forks source link

KoopaKart

An E-commerce System Inspired by the Super Mario Universe

Description

KoopaKart is a full-fledged e-commerce solution designed for customers to handle their orders and for staff to maintain products and user accounts. To make the mundane task of buying everyday items like bread and milk more engaging, this project places its operations in the whimsical Super Mario universe. In this world, products are represented as stars and mushrooms, while users take on the roles of brave plumbers and their helpful toads.

This project was created for educational purposes. My main priorities include:

  1. Best Practices: Adhering to conventions and using industry-standard packages.
  2. Learning New Technologies: Prioritizing learning over quick solutions. While this e-commerce system could have been built more simply, my goal is to explore and understand new technologies.
  3. Clarity and Accessibility: Although I am the sole developer, I aim to document everything clearly to ensure that anyone can understand my ideas and implementations.

Start Page

For a detailed list of the technologies and packages used in this project, please refer to the Technologies Used section.

Table of Contents

Installation

To set up the project locally, follow these steps:

  1. Clone the Repository

    git clone https://github.com/yourusername/KoopaKart.git
    cd KoopaKart
  2. Install Poetry If you haven't installed Poetry yet, you can do so by running:

    pip install --upgrade pip
    pip install poetry
  3. Install Dependencies Use Poetry to install the project's dependencies:

    poetry install
  4. Set Up Your Environment Variables Create a .env file in the root directory of the project and add your environment variables based on the following example:

    DB_NAME=your_db_name
    DB_USER=your_db_user
    DB_PASSWORD=your_db_password
    DB_HOST=your_db_host
    DB_PORT=your_db_port
    DATABASE_URL=your_database_url

    (See GUIDE_POSTGRE.md for step by step instructions)

  5. Run Migrations and Start the Development Server Run the following commands to apply migrations and start the server:

    poetry shell
    python manage.py migrate
    python manage.py runserver

Now, you should be able to access the application at http://127.0.0.1:8000/.

Deployment

This project is deployed on Render, a cloud platform that allows you to host applications with ease. I used Render to gain hands-on experience with deploying a Django application in the cloud.

You can access the live version of KoopaKart at the following URL: KoopaKart Live

Feel free to explore the project and experience the functionality firsthand. Screenshots and additional details will be added soon!

Usage

Coming soon

Features

Planned Features

  1. Mock payment integration with PayPal.
  2. Integration of Google authentication for simplified registration and login.
  3. Usage of Redis for caching customer orders.

Technologies Used

This project is primarily developed in Python, utilizing the Django framework to create a robust web application, with PostgreSQL as the database management system. The complete list of packages used can be found in the pyproject.toml file managed by Poetry.

Key packages include:

Screenshots / Demo

Coming soon

Testing

To run the tests locally, first ensure you have installed the necessary dependencies and start a Poetry shell. Then, use the following command:

   poetry shell
   python manage.py test

Contributing

I welcome suggestions and ideas for improvement. However, please note that all coding contributions are currently handled by me. If you have any feedback or feature requests, feel free to reach out!

Disclaimer

"While Nintendo holds a special place in my heart and I've spent countless hours enjoying their delightful games and consoles, I want to clarify that I have no official affiliation with the company. References to their fantastic art are purely for educational purposes and not intended to imply any connection with this amazing brand."

License

This project is licensed under the MIT License. See the LICENSE file in the project root for more details. The licenses for the individual packages used in this project can be found in their respective repositories.

Acknowledgments

Contact Information

You can reach me at shani.rubovitch@gmail.com or through the GitHub issue tracker for any questions or feedback.