TechStore Platform is a web-based application built to help tech gadget store owners manage their businesses online by reconnecting them with their customers. The platform is designed to provide seamless management of stores, products, and orders in an organized and user-friendly way. It allows providers (store owners) to manage their inventories, while customers can browse stores and place orders directly on the platform.
- Store Management: Providers can create, update, and delete stores with details such as name, location, contact information, and images.
- Product Management: Providers can manage product inventories, including adding, updating, and deleting products, each associated with a store.
- Order Management: Customers can browse products and place orders from any store.
- Search Functionality: Customers can search for products based on category or store name.
- User Authentication: Both providers and customers must be authenticated using JWT (JSON Web Tokens) for secure access.
- Rate Limiting: Protects the platform from abuse by limiting the number of requests per user.
- Image Management: Handles file uploads for store and product images.
- Flask Swagger Integration: Provides automatic API documentation for ease of use.
- Backend: Flask (Python)
- Database: SQLAlchemy for ORM, with support for PostgreSQL or SQLite
- Authentication: JWT (JSON Web Token) for secure user authentication
- Rate Limiting: Flask-Limiter for request rate limiting
- Image Upload: Custom utilities for managing product and store images
- API Documentation: Swagger (via Flasgger) for auto-generated API documentation
- Containerization: Docker and Docker Compose for development and deployment
- Testing: Pytest for unit testing
TechStore Platform consists of two main user roles: Providers (store owners) and Customers. Providers can manage their stores and product inventories, while customers can search for products and place orders.
- Register and manage stores
- Add, update, and delete products in their stores
- Upload and manage product images
- View and manage customer orders
- Search for products by category or store name
- Browse stores and view product details
- Place orders from stores
- View order status and history
- Python 3.8+
- PostgreSQL or SQLite for database management
- Docker (optional, for containerization)
-
Clone the repository:
git clone https://github.com/yourusername/TechStore-Platform.git cd TechStore-Platform
-
Create and activate a virtual environment:
python3 -m venv venv source venv/bin/activate
-
Install dependencies:
pip install -r requirements.txt
-
Set up environment variables: Create a
.env
file in the root directory and add:FLASK_ENV=development SECRET_KEY=your_secret_key SQLALCHEMY_DATABASE_URI=sqlite:///your_database.db JWT_SECRET_KEY=your_jwt_secret
-
Initialize the database:
flask db upgrade
-
Run the application:
flask run
-
Access the app: Navigate to
http://127.0.0.1:5000
in your browser.
-
Build and run the container:
docker-compose up --build
-
Access the application: Once the container is running, the application will be available at
http://localhost:5000
.
If you want to contribute to TechStore Platform, please follow these steps:
- Fork the repository.
- Create a new branch for your feature or bugfix.
- Commit your changes.
- Push your branch and create a pull request.
- Ibrahim hanafi - Github
- Ruba Salih - Github
- Mohamed Alamen - Github
This project is licensed under the MIT License. See the LICENSE file for details.