Giter Club home page Giter Club logo

app-generator / rocket-ecommerce Goto Github PK

View Code? Open in Web Editor NEW
5.0 2.0 3.0 18.85 MB

Rocket eCommerce - Simple eCommerce made with Django | AppSeed

Home Page: https://appseed.us/product/rocket-ecommerce/django/

License: Other

Dockerfile 0.18% Python 15.71% Shell 0.06% JavaScript 2.88% CSS 1.44% HTML 79.72%
django-ecom django-ecommerce django-stripe django-stripe-sample django-tailwind stripe-django stripe-starter stripe-tailwind django-flowbite django-stripe-starter

rocket-ecommerce's Introduction

Rocket Icon

DjangoTailwindCSSStripeAnalyticsDockerCI/CDLifetime UpdatesUnlimited Projects

Once authenticated, the ADMIN (superuser) can import the products from Stripe and customize each one locally by adding properties like Images, Tags, Discount, .. etc.

The product comes with Docker and CI/CD Support



Rocket eCommerce - Django Starter styled with Tailwind and Flowbite.

Affordable, actively supported eComemrce solution that requires minimal configuration - Buy License


👉 Supercharge your eCommerce App instantly, launch faster, make $

Login users, process payments and send emails at lightspeed. Spend your time building your startup, not integrating APIs. Rocket eCommerce provides you with the boilerplate code you need to launch, FAST.

👉 Rocket your startup in days, not weeks

The Django boilerplate has all you need to build your SaaS, Analytics tool, or any other type of Web App. From idea to production in 5 minutes.

👉 48+ hours of headaches

  • 1 hrs to set up the project
  • 2 hrs integrate tooling
  • 2 hrs to handle Stripe
  • 1 hrs for Docker
  • ∞ hrs overthinking...
  • Free Support via Email & Discord

Features

Status Item info
Stack Django, Tailwind, React
Payments Stripe
Categories YES
Tags YES
Checkout YES
Discounts Page YES
Products Import Stripe
Products Local Customization YES
Analitycs Weekly, Monthly, Year Sales
Transactions Tracking YES
Docker YES
CI/CD Render
Active versioning and support AppSeed
AWS, DO, Azure Deploy Assistance DeployPRO

Manual Build

👉 Download code (public access)

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

👉 Create .env from env.sample

The most important, are the Stripe Keys STRIPE_SECRET_KEY, STRIPE_PUBLISHABLE_KEY that will connect your Stripe account with the APP.

DEBUG=True

SECRET_KEY=<STRONG_KEY_HERE>

DEMO_MODE=True

STRIPE_SECRET_KEY=<YOUR_KEY_HERE>
STRIPE_PUBLISHABLE_KEY=<YOUR_KEY_HERE>

EMAIL_HOST=smtp.gmail.com
EMAIL_PORT=587
EMAIL_USE_TLS=True
EMAIL_HOST_USER=
EMAIL_HOST_PASSWORD=

👉 Install Django modules via VENV

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

👉 Install Tailwind/Flowbite (separate terminal)

$ npm install
$ npm run dev        

👉 Migrate DB

$ python manage.py makemigrations
$ python manage.py migrate

👉 Seed DB

$ python manage.py seed_tags

👉 Create Superuser & Start the APP

$ python manage.py createsuperuser # create the admin
$ python manage.py runserver       # start the project

Start With Docker

👉 Download code (public access)

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

👉 Start with Docker Compose

$ docker-compose up --build 

Visit the app in the browser localhost:5085.


Use MySql

By default, the starter uses SQLite for persistence. In order to use MySql, here are the steps:

  • Start the MySql Server
  • Create a new DataBase
  • Create a new user with full privileges over the database
  • Install the MySql Python Driver (used by Django to connect)
    • $ pip install mysqlclient
  • Edit the .env with the SQL Driver Information & DB Credentials
DB_ENGINE=mysql
DB_HOST=localhost
DB_NAME=<DB_NAME_HERE>
DB_USERNAME=<DB_USER_HERE>
DB_PASS=<DB_PASS_HERE>
DB_PORT=3306

Once the above settings are done, run the migration & create tables:

$ python manage.py makemigrations
$ python manage.py migrate

Production Build

For issues, contact support (eMail & Discord)

To use the starter in production mode, here are the steps:

  • Set DEBUG=False in .env
  • Execute collectstatic command
    • $ python manage.py collectstatic --no-input

As a model, feel free to take a look at build.sh, the file executed by the CI/CD flow for Render.


Deploy on Render

At this point, the product should be LIVE.


Codebase

< PROJECT ROOT >
   |
   |-- core/                 # Project Settings 
   |    |-- settings.py 
   |    |-- wsgi.py     
   |    |-- urls.py     
   |
   |-- home/                 # Presentation app 
   |    |-- views.py         # serve the HOMEpage  
   |    |-- urls.py     
   |    |-- models.py
   |
   |-- apps/                 # Utility Apps 
   |    |-- common/          # defines models & helpers
   |    |    |-- models.py   
   |    |    |-- util.py 
   |    |-- users            # Handles Authentication 
   |    |-- api              # DRF managed API
   |    |-- charts           # Showcase Different Charts
   |    |-- tables           # Implements DataTables
   |    |-- tasks            # Celery, async processing
   |
   |-- templates/            # UI templates 
   |-- static/               # Tailwind/Flowbite 
   |    |-- src/             # 
   |         |-- input.css   # CSS Styling
   |
   |-- Dockerfile            # Docker
   |-- docker-compose.yml    # Docker 
   |
   |-- render.yml            # CI/CD for Render
   |-- build.sh              # CI/CD for Render 
   |
   |-- manage.py             # Django Entry-Point
   |-- requirements.txt      # dependencies
   |-- .env                  # ENV File
   |
   |-- *************************************************      

License

EULA License



Rocket eCommerce - eCommerce Starter powered by Django and Tailwind/Flowbite.

rocket-ecommerce's People

Contributors

app-generator avatar hasib-helios avatar mahfujul-helios avatar mominur-helios avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

rocket-ecommerce's Issues

Local Products - TAGS

The tags [ all products ] need to be loaded via a console seeder.

  • seeder_tags

The input is loaded from media/seeder/tags.json

once loaded, the tags should be visible on the product edit page.

TY!

HOMEpage

We need a design for this, for now will show only text :

HOMEpage

Admin Settings - > MENU

The settings link for ADMIN needs to be collapsable with the following items:

  • General
    • Site Name
    • Copyright [ used in footer -> left ]
  • Stripe -> for stripe keys
  • Social Media
    • for footer links [ right ]
    • if the social link is present, the link is displayed
  • Legal
    • Privacy Policy -> HTML Content
      • the content is displayed on route /privacy
    • Terms & Conditions -> HTML Content
      • the content is displayed on route /terms

ADMIN Product EDIT

The images need to be rendered, if exist.

The product needs to a MAIN image [ can't be cleared ]

image

DEMO Mode

The project needs to have a flag in ENV:

DEMO_MODE, default false

If the DEMO_MODE is set to True in the .env the Stripe Keys can't be updated by the ADMIN using the UI.

Like this, we can be sure the Stripe Keys are frozen in the LIVE DEMO.

ADMIN - Products management

Here are the improvements:

  • integrate datatable -> with search
  • we should be able to delete the local product but also the stripe product
  • if the stripe price is updated, this should be reflected when the products are pulled again from Stripe

The DT delete will delete both products [ stripe & local ]

image


Delete in the EDIT page, delete ONLY the local product

image

Product - Props

The product should support dynamic props:

This should be added to the edit page using a table editable [ create / update / remove ] anytime

  • Prop / Value

image

Product - Video Link

The Product model needs to have a new property: url_video

Unused for now, but soon we will integrate this new field in the design.

Added Discounts Page

The product needs to have a discount field.

The field Promo will be renamed into Discount integer default NULL.

If the product has a discount, 10, it will be listed on the discounts page. where the card will show:

  • Discount
  • Price -> pulled from Stripe
  • Full Price = Price + Discount [ strike text ]

@hasib-helios please take a look.

TY!

Dynamic Footer

The footer needs to be generated as suggested below:

  • Left: Site Name: Rocket eCommerce if not specified in Settings
  • Categories: First 2 categories with items
  • Links: for Discounts & Search
  • Legal:
    • Privacy
    • terms

image

Product Page

Route: /products
Visibility: private

The current product page needs to become a data table with columns:

The button Get Stripe products on top.

  • Stripe Name, Price, Create Local, Edit

image

Product Requirements & SPECS

The starter needs to do the following:

  • Connect with Stripe

  • Pull all active products

  • the stripe products are mapped to the local products to have more props like:

    • main image
    • 5 sample images
    • Title
    • short information: text, 100 chars
    • full information: HTML, large size
    • tags: shoes, clothes
    • stock [ number of items ]
    • featured [ boolean ]
    • promo [ boolean ] if the product is under active promotion
  • HOMEpage is manually coded

  • Categories are automatically generated from tags:

    • category/shoes
      • featured product on top
      • a line with 3 cards -> ordinary products (not featured or promo)
      • a promo product
      • a line with 3 cards -> ordinary products (not featured or promo)
  • Product page

    • product information is used
    • the user can purchase the item
  • Shopping cart

    • the user can manage the shopping cart
    • add / remove items
    • proceed with the purchase

@mominur-helios please take a look at this and let me know your thoughts about it.

The stack needs to be:

  • Django
  • Tailwind
  • React [ if needed ]

TY!

USER Sidebar

The sidebar for the common USERS needs to have this order:

  • Home
  • Profile
  • My Purchases

image

Discounted Product CARD

The values on the card:

  • Price: the one set in Stripe
  • Full price: computed based on Stripe price and Discount

Both need to have XX.YY number format [ only two digits ]

image

Permissions

Admin

  • See all transactions
  • Update Stripe Keys
  • See all users

Users

  • Can access and update the profile
  • Need authentication before purchase
  • See their transactions

Admin Sidebar

The sidebar for ADMIN needs to have this order:

  • Home
  • Profile
  • Products
  • Transactions (all purchase)
  • Users

All the above items need to be rendered in the dashboard layout (with the sidebar).

image

Product - Slug (New Field)

Each product needs to have a new field, SLUG, generated by the backend at creation.

For instance, if the product name is OVERSIZED BAGGY PANTS the generated slug is:

oversized-baggy-pants

Slug can be edited in product edit page.

ADMIN Dashboard Page - Charts [ POSTPONED ]

Route: /dashboard
Visibility: private

  • Top Left: chart with sales [ week, month, year ]
  • Top Right: latest purchased products
  • Bottom: datatable with latest 10 transactions

image

Transactions Page

Route: /products
Visibility: private

Fully powered dataTable, much like the one from the dashboard [ but will full records ]

image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.