- Notifications
You must be signed in to change notification settings - Fork0
Reconnecting tech businesses with their audience
License
hima890/TechStore-Platform
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
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) andCustomers. 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.gitcd TechStore-Platform
Create and activate a virtual environment:
python3 -m venv venvsource 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=developmentSECRET_KEY=your_secret_keySQLALCHEMY_DATABASE_URI=sqlite:///your_database.dbJWT_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 theLICENSE file for details.