https://github.com/cyber-security-tech/ecommerce-web-app
Full-stack Flask eCommerce app with Stripe payments, wishlist system, admin panel, product reviews, and responsive UI. Built for portfolio demonstration and real-world web development practice.
https://github.com/cyber-security-tech/ecommerce-web-app
bootstrap cart ecommerce flask flask-login flask-sqlalchemy flask-wtf fullstack portfolio python sqlite stripe webapp wishlist
Last synced: 2 months ago
JSON representation
Full-stack Flask eCommerce app with Stripe payments, wishlist system, admin panel, product reviews, and responsive UI. Built for portfolio demonstration and real-world web development practice.
- Host: GitHub
- URL: https://github.com/cyber-security-tech/ecommerce-web-app
- Owner: Cyber-Security-Tech
- Created: 2025-04-12T06:10:31.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2025-04-19T03:23:30.000Z (2 months ago)
- Last Synced: 2025-04-27T09:58:05.644Z (2 months ago)
- Topics: bootstrap, cart, ecommerce, flask, flask-login, flask-sqlalchemy, flask-wtf, fullstack, portfolio, python, sqlite, stripe, webapp, wishlist
- Language: HTML
- Homepage:
- Size: 454 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ๐๏ธ Flask E-Commerce Web App โ ShopNow
A professional full-stack e-commerce platform built with Flask, designed for learning and portfolio use. Features include Stripe checkout, user authentication, cart management, wishlist, admin panel, and order history.
---
## ๐งพ Overview
**ShopNow** is a full-featured online shopping platform built using Flask. It supports browsing products, managing a cart and wishlist, secure checkout via Stripe, and includes a role-protected admin panel for managing inventory. Built as a portfolio project to demonstrate end-to-end web app development.
---
## ๐ธ Screenshots
### Homepage
### Product Detail
### Cart
### Stripe Checkout
### Checkout Success
### Order History
### Wishlist
---
## โจ Features
- ๐ User registration, login, logout
- ๐ค Profile editing (address and preferences)
- ๐๏ธ Product catalog with search, filter, and sort
- ๐ Add to cart, update quantity, remove items
- ๐ณ Stripe Checkout integration
- ๐ฆ Order history with timestamp and totals
- โค๏ธ Wishlist with add/remove
- ๐ฌ Product reviews with rating
- ๐ ๏ธ Admin panel to add, edit, and delete products
- ๐ Role-based route protection---
## ๐ ๏ธ Tech Stack
- **Backend**: Flask, Flask-SQLAlchemy, Flask-WTF, Flask-Login, Flask-Migrate
- **Frontend**: Jinja2 Templates, Bootstrap 5, HTML/CSS
- **Payments**: Stripe API (Test Mode)
- **Database**: SQLite (via SQLAlchemy)
- **Auth**: Session-based using Flask-Login
- **Environment**: Python-dotenv---
## ๐ What I Learned
- Structuring Flask apps with blueprints and application factory
- Building secure user authentication flows
- Integrating Stripe Checkout API with Flask
- Managing cart, orders, and wishlist logic in a real-world app
- Building admin CRUD panels with form validation
- Writing modular, maintainable, and production-style Python---
## ๐ Project Structure
```
ecommerce_web_app/
โ
โโโ app/
โ โโโ __init__.py
โ โโโ models.py
โ โโโ routes.py
โ โโโ forms.py
โ โโโ context_processors.py
โ โโโ templates/
โ โโโ static/
โ
โโโ media/
โ โโโ screenshots/
โ
โโโ .env.example
โโโ config.py
โโโ run.py
โโโ requirements.txt
โโโ README.md
```---
## ๐ How to Run Locally
1. **Clone the repo**
```bash
git clone https://github.com/your-username/ecommerce-web-app.git
cd ecommerce-web-app
```2. **Create a virtual environment**
```bash
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
```3. **Install dependencies**
```bash
pip install -r requirements.txt
```4. **Create your `.env` file**
Rename `.env.example` to `.env` and fill in your values.5. **Run the app**
```bash
python run.py
```---
## ๐ Environment Variables
Your `.env` file should look like this:
```env
SECRET_KEY=your_secret_key_here
DATABASE_URL=sqlite:///instance/ecommerce.dbSTRIPE_PUBLIC_KEY=your_test_public_key_here
STRIPE_SECRET_KEY=your_test_secret_key_here
```You can use [Stripe's test keys](https://stripe.com/docs/testing#international-cards) to simulate payments.
---
## ๐ฎ Future Improvements
- โ๏ธ Email confirmation and password reset
- ๐ Admin analytics dashboard (sales, orders, etc.)
- ๐ Product image uploads with Cloudinary or local storage
- ๐งพ PDF invoice export on order confirmation
- ๐ AJAX search or live filtering---