# Retailer System
## Overview
The Retailer System is a robust online marketplace where retailers can showcase their products, and users can browse and make purchases securely from the comfort of their devices. The application is designed with a stringent regulatory process, ensuring that both retailers and products are thoroughly reviewed and verified by administrators before becoming accessible to users.
## Key Features
- **Secure Authentication:** Implemented JWT token-based authentication for secure user validation, providing authorized API access.
- **Google Cloud Integration:** Utilized Google Cloud Platform (GCP) services, including Buckets and BigQuery, for dynamic data storage, flexible querying, and real-time updates.
- **Microservices Efficiency:** Integrated Axios for streamlined microservices operations, ensuring efficient communication between components.
- **Real-time Data Processing:** Leveraged KafkaJs as a Pub/Sub system for handling real-time streaming data, distinguishing Producers and Consumers.
- **Order Fulfillment Process:** Enabled users to select items, create orders, and process payments, ensuring a seamless order flow.
- **User and Retailer Registration Workflow:** Designed secure sign-up processes for users and retailers, pending admin approval. Admins reviewed and either accepted or rejected applications.
- **Retailer Item Submission Workflow:** Allowed retailers to submit products for approval, storing them in a relay table for admin review. Admins approved or dismissed items based on their criteria.
- **Metrics and Monitoring Integration:** Integrated Prometheus for real-time metric recording, providing essential data for application analysis. Dockerized the application and connected it with Prometheus and Grafana for enhanced monitoring.
## Installation
1. Clone the repository:
git clone https://github.com/username/Retailer-System.git
2. Install dependencies:
cd Retailer-System npm install
3. Configure environment variables:
- Create a `.env` file and set necessary environment variables.
4. Start the application:
npm start
## Usage
- Visit the application in your web browser at `http://localhost:3000`.
- Follow the on-screen instructions to register, browse products, and make purchases.
## Contributing
Contributions are welcome! Please follow the [contributing guidelines](CONTRIBUTING.md) for more details.
## License
This project is licensed under the [MIT License](LICENSE).
---
**Disclaimer:** This project is for educational purposes and does not represent a real-world application. It is not intended for production use.