Skip to content

E-commerce bakery with Django REST API, ReactJS, Celery and Stripe. Users are authenicated with JWT and annoymous users are session users. Carts and purchase history are persistent.

Notifications You must be signed in to change notification settings

SeaBebop/La-Patisserie-Du-Coeur

Repository files navigation

La Patisserie Du Coeur

La Patisserie Du Coeur is an e-commerce bakery website that allows users to conveniently order bakery goods online. The website is built using Django REST API on the backend and ReactJS, Docker, and TailwindCSS on the frontend. image

GCE Deployed Demo

Table of Contents

Features

Image
  • User-friendly Interface: Users can easily browse through a variety of bakery goods and conveniently add them to their cart.
  • Inventory Management: Celery task and beat efficiently manage the product inventory, ensuring accurate stock levels.
  • Persistent Sessions: Anonymous users are registered with a persistent session, enabling them to access their cart and purchase history across sessions.
  • User Accounts: Registered users can enjoy the benefits of having an account, including JWT cookie authentication for secure login and the ability to persistently log in.
  • Cart Transfer: Anonymous users can seamlessly transfer their old session carts to their newly created accounts.
  • Payment Processing: Purchases are securely processed using a test mode version of Stripe webhook.

(Back to Top)







Setup

Clone the repository:

git clone https://github.com/<your-username>/La-Patisserie-Du-Coeur.git

Build and Run Docker Container:

docker compose  -f "docker-compose-dev.yml" up -d --build rabbitmq celery-worker celery-beat db frontend web nginx

Alternative only FrontEnd Setup:

cd frontend && npm start

(Back to Top)

Setting Up Emails (Optional):

image

  • Create a SendGrid Account: Visit SendGrid's website to create your own account.
  • Generate API Key: Generate a full access API key from your SendGrid account settings.
  • Update Environment Variables: Update DOCKER_DEFAULT_FROM_EMAIL with your email and DOCKER_EMAIL_HOST_PASSWORD with your API key in env_backend_dev.env. (Back to Top)

Setting Up Stripe Test Payments (Optional):

image

  • Create a Stripe Account: Sign up for a Stripe account on their website.
  • Locate Secret Key: Find your secret key in your Stripe account settings and copy it to DOCKER_STRIPE in env_backend_dev.
  • Configure Webhooks: Follow the instructions provided at Stripe Dashboard and adjust step 2 to $ stripe listen --forward-to localhost/api/v1/checkout/webhook/stripe/.
  • Retrieve Endpoint Secret: After following the CLI instructions, you will receive a whsec_... key. Copy this to DOCKER_ENDPOINT_SK in env_backend_dev.env. (Back to Top)

Dependencies

  • Docker 20.10.5
  • Python 3.8
  • Django 3.2
  • Django REST Framework 3.12
  • ReactJS 17.0 (Back to Top)

About

E-commerce bakery with Django REST API, ReactJS, Celery and Stripe. Users are authenicated with JWT and annoymous users are session users. Carts and purchase history are persistent.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published