Skip to content

HardMax71/modular-store-flask

Repository files navigation

Modular Store Flask Logo

Modular Store

A comprehensive, feature-rich e-commerce platform built with Flask

codecov WAVE accessibility checker Checked with mypy

License: MIT GitHub last commit Live Demo

Demo | Report Bug | Request Feature

Important

The names, trademarks, service marks, logos, and other data displayed on the demo website and in this repository are the intellectual property of their respective owners. The utilization of these names, trademarks, service marks, logos, or other proprietary materials does not indicate any affiliation with, endorsement by, or sponsorship by the respective trademark owners. All references to such proprietary materials are provided solely for illustrative purposes and do not imply any claim of ownership or confer any legal rights. The repository owner expressly disclaims any legal liability or responsibility for any misuse, misinterpretation, or misrepresentation of these proprietary materials.

About The Project

Modular Store Flask is a state-of-the-art e-commerce solution designed to provide a flexible and scalable platform for online stores. Built with Flask, it offers a wide range of features to enhance both user experience and store management.

Key Features

  • πŸ›’ Robust Shopping Cart System: Seamless shopping experience with real-time updates.
  • πŸ” Advanced Product Search & Filtering: Help customers find exactly what they're looking for.
  • πŸ‘€ User Authentication & Profiles: Secure login and personalized user experiences.
  • πŸ’³ Multiple Payment Options: Support for various payment methods to accommodate all customers.
  • πŸ“Š Admin Dashboard: Comprehensive tools for managing products, orders, and customers.
  • 🌐 Multi-language Support: Reach a global audience with localized content.
  • πŸ“± Responsive Design: Perfect shopping experience across all devices.
  • πŸ”’ Security Features: Implement best practices to keep your store and customers safe.
Getting Started

Prerequisites

  • Python 3.8+
  • pip
  • Virtual environment (recommended)

Installation

  1. Clone the repository:

    git clone https://github.com/HardMax71/modular-store-flask.git
    cd modular-store-flask
    
  2. Create and activate a virtual environment:

    python -m venv venv
    source venv/bin/activate  # On Windows, use `venv\Scripts\activate`
    
  3. Install the required packages:

    pip install -r requirements.txt
    
  4. Run the application:

    python modular_store_backend/app.py
    

Visit http://localhost:5000 in your browser to see the application running.

Current state of things
Feature Category Feature Idea Status
Product Catalog * Display products with images, prices, and other relevant information
* Implement product categories and subcategories for better organization
* Allow users to search for products based on keywords, categories, or tags
* Implement product filtering and sorting options
* Display related products or product recommendations
βœ”οΈ
Product Details * Create a detailed product page with all relevant information
* Display product variants (e.g., size, color) and allow users to select them
* Show product reviews and ratings from other users
* Implement a product rating system for users to rate products
* Allow users to add products to their wishlist
βœ”οΈ
Shopping Cart * Allow users to add products to their shopping cart
* Display the total price and number of items in the cart
* Provide options to update quantities or remove items from the cart
* Implement a mini-cart or quick view of the cart contents
* Allow users to apply discount codes or promotional offers
βœ”οΈ
Checkout Process * Implement a multi-step checkout process (e.g., shipping address, billing information, order summary)
* Allow users to select a shipping address or add a new one
* Provide options for different shipping methods and calculate shipping costs
* Integrate with a payment gateway for secure online payments
* Display order confirmation and send email receipts
βœ”οΈ
Order Management * Implement an order tracking system for users to view their order status
* Allow users to view their order history and details
* Provide options for users to cancel or modify orders (if applicable)
* Send email notifications for order updates and shipping information
βœ”οΈ
User Reviews and Ratings * Allow users to write reviews and rate products they have purchased
* Display user reviews and ratings on product pages
* Implement a moderation system for reviewing and approving user-generated content
* Provide options for users to report inappropriate reviews or ratings
βœ”οΈ
Wishlist Functionality * Allow users to add products to their wishlist
* Provide options to manage wishlist items (remove, add to cart)
* Send email notifications or reminders for wishlist items on sale or back in stock
βœ”οΈ
Discounts and Promotions * Implement a discount code system for promotional offers
* Apply discounts automatically during the checkout process
* Display promotional banners or popups for ongoing sales or special offers
* Send email notifications for personalized discounts or limited-time offers
βœ”οΈ
Notifications and Alerts * Implement a notification system for users (e.g., order updates, product back in stock)
* Allow users to manage their notification preferences
* Send email alerts for important events or updates
βœ”οΈ
Product Inventory Management * Track product inventory levels and update them in real-time
* Implement low stock alerts or notifications for admin users
* Provide options to mark products as out of stock or discontinued
βœ”οΈ
Analytics and Reporting * Implement analytics tracking for user behavior and sales data
* Generate reports for sales, revenue, and product performance
* Provide insights and metrics for marketing and business decisions
βœ”οΈ
Search and Autocomplete * Implement a search functionality for users to find products easily
* Provide autocomplete suggestions based on user input
* Optimize search results based on relevance and popularity
βœ”οΈ
Product Comparison * Allow users to compare multiple products side by side
* Display key features, specifications, and prices for easy comparison
* Provide options to add compared products to the cart or wishlist
βœ”οΈ
Social Sharing and Integration * Implement social sharing buttons for products and pages
* Allow users to login or register using their social media accounts
* Integrate with social media platforms for product promotion and user engagement
βœ”οΈ
Customer Support and Live Chat * Implement a customer support ticketing system
* Provide live chat functionality for real-time assistance
* Offer self-service options like FAQs or knowledge base articles
βœ”οΈ
Live chat - via Chatra
Mobile Optimization and Design * Ensure the web store is fully responsive and mobile-friendly
* Optimize images and assets for faster loading on mobile devices
* Implement mobile-specific features like swipe gestures or mobile payments
βœ”οΈ
Internationalization * Support multiple languages and currencies for a global audience
* Implement geolocation to detect user's location and adapt the store accordingly
* Provide options for users to switch languages or currencies
βœ”οΈ
[2 langs supported, using user settings
to detect best possible lang]
Personalization and Recs * Implement personalized product recommendations based on user behavior
* Display recently viewed or related products for each user
* Send personalized email campaigns or newsletters based on user preferences
βœ”οΈ
Security and Privacy * Implement secure user authentication and authorization
* Protect user data and transactions with encryption and secure protocols
* Comply with relevant privacy regulations (e.g., GDPR, CCPA)
βœ”οΈ
Performance Optimization * Optimize website speed and performance for better user experience
* Implement caching mechanisms for faster page loading
* Minimize the use of third-party scripts or plugins that may slow down the site
* Regularly monitor and optimize database queries for improved performance
βœ”οΈ
Accessibility * Ensure the web store is accessible to users with disabilities
* Follow web accessibility guidelines (e.g., WCAG) for inclusive design
* Provide alternative text for images and proper labeling for form elements
* Test the store for compatibility with assistive technologies
❓
Checker for WCAG compliance added, to do - be compliant
Testing and Quality Assurance * Implement a comprehensive testing strategy for the web store
* Conduct functional testing, usability testing, and performance testing
* Perform cross-browser and cross-device testing for compatibility
* Establish a quality assurance process to identify and fix bugs or issues
βœ”οΈ
Unit & integration testing - done, QA via Github actions - done, Browser testing - not planned for now
Backup and Disaster Recovery * Implement regular data backups to prevent data loss
* Develop a disaster recovery plan for unexpected events or system failures
βœ”οΈ

Project Structure

The project follows a modular structure, with each module typically containing:

  • __init__.py: Initializes the module and registers routes and views (in a blueprint).
  • views.py: Contains the route definitions and view functions.
  • utils.py: Contains utility functions specific to the module.
modular-store-flask/
β”‚
β”œβ”€β”€ modular_store_backend/     # Backend package
β”‚   β”œβ”€β”€ forms/                 # Form definitions
β”‚   β”œβ”€β”€ instance/              # Folder for database instance
β”‚   β”œβ”€β”€ modules/               # Application modules
β”‚   β”œβ”€β”€ tests/                 # Backend tests
β”‚   β”œβ”€β”€ app.py                 # Application factory
β”‚   └── config.yaml            # Configuration settings
β”‚
β”œβ”€β”€ modular_store_frontend/    # Frontend package
β”‚   β”œβ”€β”€ static/                # Static files
β”‚   β”‚   β”œβ”€β”€ css/               # CSS files
β”‚   β”‚   β”œβ”€β”€ img/               # Image files
β”‚   β”‚   β”œβ”€β”€ js/                # JavaScript files
β”‚   β”‚   └── robots.txt         # Robots file for search engines
β”‚   β”‚
β”‚   └── templates/             # HTML templates
β”‚       β”œβ”€β”€ admin/             # Admin-related templates
β”‚       β”œβ”€β”€ auth/              # Authentication templates
β”‚       β”œβ”€β”€ cart/              # Shopping cart templates
β”‚       β”œβ”€β”€ tickets/           # Support ticket templates
β”‚       β”œβ”€β”€ website_parts/     # Reusable website components
β”‚       β”œβ”€β”€ add_address.html
β”‚       β”œβ”€β”€ base.html
β”‚       β”œβ”€β”€ ...
β”‚       └── recommendations.html
β”‚
β”œβ”€β”€ translations/              # Internationalization files
β”œβ”€β”€ ...
└── README.md                  # Project documentation

This structure represents the main components of the Modular Store Flask project:

  • modular_store_backend/: The main package containing the application code.
  • modular_store_backend/app.py: The application factory.
  • modular_store_backend/config.yaml: Contains configuration settings for different environments.
  • modular_store_backend/modules/: Houses the different functional modules of the application.
  • modular_store_backend/static/: Contains all static files like CSS, JavaScript, and images.
  • modular_store_backend/templates/: Holds all the HTML templates used in the application.
  • modular_store_backend/translations/: Contains files for internationalization support.
  • tests/: Contains all the unit and integration tests for the project.

Each module in the modules/ directory typically contains its own views, forms, and utility functions, promoting a modular and maintainable code structure.

Database Schema

Simplified database schema for the application:

Database Schema

Click to view full database schema

Full Database Schema

License

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