Skip to content

Aaron-pweb/PJ-Store-Flask

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PJ Store 🛒

Python Version Flask Version License: MIT

PJ Store is a comprehensive, full-stack e-commerce platform built with Python and Flask. It provides a robust, multi-role ecosystem for customers, sellers, and administrators, featuring product management, secure payments with Stripe, and an integrated support system. Alt text

🌟 Features

👥 User Roles & Management

  • Super Admin: Full platform control, including managing admins and global settings.
  • Admin: Manage users, approve sellers, and oversee product listings.
  • Seller: Dedicated dashboard for managing products, variants, inventory, and orders.
  • Support: Specialized interface for handling customer support tickets.
  • Customer: Browsing products, managing a shopping cart, and tracking orders.

🛍️ E-commerce Core

  • Product Management: Dynamic catalog with support for product variants (e.g., size, color, material) and price overrides.
  • Shopping Cart: Real-time cart management for authenticated users.
  • Secure Checkout: Full integration with Stripe API for processing payments safely.
  • Address Book: Users can save and manage multiple shipping addresses with a default selection.

🛠️ Technical Highlights

  • Responsive Design: Built with Bootstrap 5 for a seamless experience across desktop and mobile.
  • Security: Implements CSRF protection, secure password hashing, and role-based access control (RBAC).
  • Database: Powered by SQLAlchemy with support for SQLite (development) and PostgreSQL (production).
  • Automation: Includes a dedicated CLI script for initial Super Admin setup.

🚀 Tech Stack


⚙️ Installation & Setup

1. Clone the Repository

git clone https://github.com/yourusername/PJ-Store-Flask.git
cd PJ-Store-Flask

2. Create a Virtual Environment

python3 -m venv venv
source venv/bin/bin/activate  # On Windows: venv\Scripts\activate

3. Install Dependencies

pip install -r requirements.txt

4. Environment Configuration

Create a .env file in the root directory and add the following:

APP_SECRET_KEY=your_secret_key_here
STRIPE_PUBLIC_KEY=your_stripe_public_key
STRIPE_SECRET_KEY=your_stripe_secret_key
DATABASE_URL=sqlite:///site.db  # Or your PostgreSQL URL

5. Initialize the Database & Super Admin

Run the following command to create your first administrative account:

python create_super_admin.py

6. Run the Application

python run.py

The application will be available at http://127.0.0.1:5000.


📂 Project Structure

PJ-Store-Flask/
├── app/
│   ├── auth/           # Authentication, User Models, & Dashboards
│   ├── main/           # Core landing pages and routes
│   ├── products/       # Product catalog, variants, and seller management
│   ├── orders/         # Shopping cart and order processing
│   ├── payments/       # Stripe integration and payment logic
│   ├── support/        # Ticket-based support system
│   ├── static/         # CSS, JS, and product images
│   └── templates/      # Jinja2 HTML templates
├── instance/           # Local database (SQLite)
├── create_super_admin.py # CLI for admin setup
├── run.py              # Application entry point
└── requirements.txt    # Project dependencies

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

About

Multi-role e-commerce platform built with Flask, featuring Stripe, Tele-birr payment integration, dedicated dashboards for Sellers and Admins, product variant management, and an integrated support ticket system.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors