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.
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.
- 🛒 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
- Python 3.8+
- pip
- Virtual environment (recommended)
-
Clone the repository:
git clone https://github.com/HardMax71/modular-store-flask.git cd modular-store-flask
-
Create and activate a virtual environment:
python -m venv venv source venv/bin/activate # On Windows, use `venv\Scripts\activate`
-
Install the required packages:
pip install -r requirements.txt
-
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 |
✔️ |
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.
Simplified database schema for the application:
This project is licensed under the MIT License - see the LICENSE.md file for details.