/ecommerce-fastapi-stripe

FastAPI Stripe Sample - Soft UI Design (Free Sample) | AppSeed

Primary LanguageHTMLMIT LicenseMIT

FastAPI & Stripe Mini eCommerce

Open-source mini eCommerce project that loads the products from JSON files saved in the templates directory (no database required) and uses a decent UI for page styling - Powered by FastAPI & Stripe.

Roadmap & Features

Status Item info
FastAPI For backend logic
Stripe Payment processor
Soft UI Design (Free Version) by Creative-Tim
JSON Products definition - see sample
Automatic Products Discovery Source DIR: templates\products
Deployment Docker
CI/CD Render Deployment Platform

✨ Video Presentation

This video explains how to use the product


fastapi-stripe-ecommerce.mp4

✨ Quick Start in Docker

👉 Step 1 - Download the code from the GH repository (using GIT)

$ git clone https://github.com/app-generator/ecommerce-fastapi-stripe.git
$ cd ecommerce-fastapi-stripe

👉 Step 2 - Start the APP in Docker

$ docker-compose up --build 

Visit http://localhost:5085 in your browser. The app should be up & running.


FastAPI & Stripe mini eCommerce - Open-Source Starter provided by AppSeed.


✨ Manual Build

The process is basically the usual set up for any Python app: environment set up, dependencies install, and bootstrap.


👉 Step 1 - Download the code from the GH repository (using GIT)

$ git clone https://github.com/app-generator/ecommerce-fastapi-stripe.git
$ cd ecommerce-fastapi-stripe

👉 Step 2 - Rename env.sample to .env and provide the Stripe Secrets

  • Edit STRIPE_SECRET_KEY - provided by Stripe Platform
  • Edit STRIPE_PUBLISHABLE_KEY - provided by Stripe Platform

👉 Step 3 - Install dependencies

$ virtualenv env
$ source env/bin/activate
$ pip install -r requirements.txt

👉 Step 4 - Start the App

$ uvicorn src.app:app --reload

Visit http://localhost:8000 in your browser. For another port, use --port 8099 directive.


✨ Create a new Product

  • Go to src/templates/products directory
  • Create a new JSON file with data:
    • name: Used in product page & Cards
    • price: Used for payment
    • currency: Used for payment
    • info: used in cards
    • short_description: used in product page
    • full_description: used in product page
  • Create Media Files
    • Go to src/static/products
    • Create a directory using the same name as for JSON file
      • Create card.jpg: 500x335px
      • Create cover.jpg: 2100x1400px
  • Start or refresh the app
    • The new product should be listed in the products/ page
    • Product page is available at address:
      • http://localhost:8000/products/<SLUG>/ where the SLUG is the name of the JSON file

Sample product page generated for Air ZOOM Pegasus, assets loaded from here


✨ Credits & Links



FastAPI & Stripe Mini eCommerce - Free sample provided by AppSeed.