This project is a comprehensive Supermarket Management System developed as a mini-project for the Web Technologies and Applications (IT254) course. It's designed to manage various aspects of a supermarket, including inventory, customer interactions, and order processing.
- Supermarket Management: Manage categories, brands, vendors, products, and inventories
- Customer Experience: Browse products, add to cart, view order history, and place new orders
- Inventory Management: Track stock levels, update product quantities, and monitor low-stock items
- User Authentication: Secure sign-up and login functionality using Firebase Authentication
- Backend: Flask (Python web framework)
- Frontend: React.js with TailwindCSS
- Database: MySQL
- Authentication: Firebase
The application follows a client-server architecture:
- Frontend: React.js with TailwindCSS, communicating with the backend via HTTP requests
- Backend: Flask application handling data processing and database interactions
- Database: MySQL storing data related to products, inventory, orders, and users
- Python 3.7+
- Node.js and npm
- MySQL
- Clone the repository: git clone https://github.com/your-repo/supermarket-web-app.git cd supermarket-web-app Copy
- Set up a virtual environment: python -m venv venv source venv/bin/activate # On Windows use venv\Scripts\activate Copy
- Install Python dependencies: pip install -r requirements.txt Copy
- Set up the MySQL database:
- Create a new MySQL database
- Update the database configuration in
app.py
with your credentials
- Initialize the database: flask db upgrade
- Navigate to the frontend directory: cd frontend Copy
- Install Node.js dependencies: npm install Copy
- Set up Firebase:
- Create a new Firebase project
- Add a web app to your Firebase project
- Copy the Firebase configuration to
src/firebase-config.js
- Start the Flask backend: cd /path/to/supermarket-web-app source venv/bin/activate # On Windows use venv\Scripts\activate flask run Copy
- In a new terminal, start the React frontend: cd /path/to/supermarket-web-app/frontend npm start
- Access the application at
http://localhost:3000
- Handles routes for various operations (categories, brands, vendors, products, cart, orders)
- Communicates with MySQL database using flask_mysqldb
- Implements modular approach for code organization and maintainability
- Key components: Header, ProductDisplay, Cart, Orders, OrderDetailsModal
- Uses fetch API for backend communication
- Implements responsive design for various screen sizes
- Utilizes Firebase Authentication
- Implements sign-up and login functionality
- Uses react-firebase-hooks/auth for managing authentication state
- Advanced inventory management features (stock alerts, automatic reordering)
- Integration with shipping providers for order fulfillment and tracking
- Secure payment gateway integration
- Performance optimizations (caching, query optimization, asynchronous processing)
- Enhanced Firebase integration (Realtime Database or Cloud Firestore)
- Abhay Aniruddha (221IT001)
- Abhay Lejith (221IT002)
- Sudeep YM (221IT068)
Department of Information Technology National Institute of Technology Karnataka, Surathkal, Mangalore - 575025