{"id":27720583,"url":"https://github.com/cyber-security-tech/ecommerce-web-app","last_synced_at":"2026-04-13T13:01:46.271Z","repository":{"id":287512396,"uuid":"964972736","full_name":"Cyber-Security-Tech/ecommerce-web-app","owner":"Cyber-Security-Tech","description":"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.","archived":false,"fork":false,"pushed_at":"2025-04-19T03:23:30.000Z","size":465,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-23T01:42:23.059Z","etag":null,"topics":["bootstrap","cart","ecommerce","flask","flask-login","flask-sqlalchemy","flask-wtf","fullstack","portfolio","python","sqlite","stripe","webapp","wishlist"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Cyber-Security-Tech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-12T06:10:31.000Z","updated_at":"2025-04-19T03:26:00.000Z","dependencies_parsed_at":"2025-04-12T07:29:52.702Z","dependency_job_id":"d08c6df2-a94f-49b1-a73d-b9b1c4cc13dc","html_url":"https://github.com/Cyber-Security-Tech/ecommerce-web-app","commit_stats":null,"previous_names":["cyber-security-tech/ecommerce-web-app"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Cyber-Security-Tech/ecommerce-web-app","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cyber-Security-Tech%2Fecommerce-web-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cyber-Security-Tech%2Fecommerce-web-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cyber-Security-Tech%2Fecommerce-web-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cyber-Security-Tech%2Fecommerce-web-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Cyber-Security-Tech","download_url":"https://codeload.github.com/Cyber-Security-Tech/ecommerce-web-app/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Cyber-Security-Tech%2Fecommerce-web-app/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31753551,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T09:16:15.125Z","status":"ssl_error","status_checked_at":"2026-04-13T09:16:05.023Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bootstrap","cart","ecommerce","flask","flask-login","flask-sqlalchemy","flask-wtf","fullstack","portfolio","python","sqlite","stripe","webapp","wishlist"],"created_at":"2025-04-27T09:58:09.052Z","updated_at":"2026-04-13T13:01:46.250Z","avatar_url":"https://github.com/Cyber-Security-Tech.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🛍️ Flask E-Commerce Web App – ShopNow\n\nA 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.\n\n---\n\n## 🧾 Overview\n\n**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.\n\n---\n\n## 📸 Screenshots\n\n### Homepage  \n![Homepage](media/screenshots/homepage.png)\n\n### Product Detail  \n![Product Detail](media/screenshots/product_detail.png)\n\n### Cart  \n![Cart](media/screenshots/cart.png)\n\n### Stripe Checkout  \n![Stripe Checkout](media/screenshots/stripe_checkout.png)\n\n### Checkout Success  \n![Checkout Success](media/screenshots/checkout_success.png)\n\n### Order History  \n![Orders](media/screenshots/orders.png)\n\n### Wishlist  \n![Wishlist](media/screenshots/wishlist.png)\n\n---\n\n## ✨ Features\n\n- 🔐 User registration, login, logout\n- 👤 Profile editing (address and preferences)\n- 🛍️ Product catalog with search, filter, and sort\n- 🛒 Add to cart, update quantity, remove items\n- 💳 Stripe Checkout integration\n- 📦 Order history with timestamp and totals\n- ❤️ Wishlist with add/remove\n- 💬 Product reviews with rating\n- 🛠️ Admin panel to add, edit, and delete products\n- 🔒 Role-based route protection\n\n---\n\n## 🛠️ Tech Stack\n\n- **Backend**: Flask, Flask-SQLAlchemy, Flask-WTF, Flask-Login, Flask-Migrate\n- **Frontend**: Jinja2 Templates, Bootstrap 5, HTML/CSS\n- **Payments**: Stripe API (Test Mode)\n- **Database**: SQLite (via SQLAlchemy)\n- **Auth**: Session-based using Flask-Login\n- **Environment**: Python-dotenv\n\n---\n\n## 📚 What I Learned\n\n- Structuring Flask apps with blueprints and application factory\n- Building secure user authentication flows\n- Integrating Stripe Checkout API with Flask\n- Managing cart, orders, and wishlist logic in a real-world app\n- Building admin CRUD panels with form validation\n- Writing modular, maintainable, and production-style Python\n\n---\n\n## 📁 Project Structure\n\n```\necommerce_web_app/\n│\n├── app/\n│   ├── __init__.py\n│   ├── models.py\n│   ├── routes.py\n│   ├── forms.py\n│   ├── context_processors.py\n│   ├── templates/\n│   └── static/\n│\n├── media/\n│   └── screenshots/\n│\n├── .env.example\n├── config.py\n├── run.py\n├── requirements.txt\n└── README.md\n```\n\n---\n\n## 🚀 How to Run Locally\n\n1. **Clone the repo**  \n```bash\ngit clone https://github.com/your-username/ecommerce-web-app.git\ncd ecommerce-web-app\n```\n\n2. **Create a virtual environment**  \n```bash\npython -m venv venv\nsource venv/bin/activate  # On Windows: venv\\Scripts\\activate\n```\n\n3. **Install dependencies**  \n```bash\npip install -r requirements.txt\n```\n\n4. **Create your `.env` file**  \nRename `.env.example` to `.env` and fill in your values.\n\n5. **Run the app**  \n```bash\npython run.py\n```\n\n---\n\n## 🔑 Environment Variables\n\nYour `.env` file should look like this:\n\n```env\nSECRET_KEY=your_secret_key_here\nDATABASE_URL=sqlite:///instance/ecommerce.db\n\nSTRIPE_PUBLIC_KEY=your_test_public_key_here\nSTRIPE_SECRET_KEY=your_test_secret_key_here\n```\n\nYou can use [Stripe's test keys](https://stripe.com/docs/testing#international-cards) to simulate payments.\n\n---\n\n## 🔮 Future Improvements\n\n- ✉️ Email confirmation and password reset\n- 📊 Admin analytics dashboard (sales, orders, etc.)\n- 🌄 Product image uploads with Cloudinary or local storage\n- 🧾 PDF invoice export on order confirmation\n- 🔍 AJAX search or live filtering\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcyber-security-tech%2Fecommerce-web-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcyber-security-tech%2Fecommerce-web-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcyber-security-tech%2Fecommerce-web-app/lists"}