-
Language - Python is used
-
Database Technologies - For this demo we have used Mongo DB as the primary database
-
Message Queue - AWS SQS ( Simple Queueing Service ) is used due to easy of setup and usage.
-
Backend Server - Python Flask is used to build the server to communicate with the dashboard.
-
Event Driven Processing - We have used AWS Lambda for handling events to SQS queue.
We have shown the High Level Design of the System
-
We use MCF API for implemeting things like placing of orders/updating listings and SLA checks
-
For Realtime notifications we use the MCF Notifications API, we subscribe to events using AWS Lambda Functions and perform realtime updates from these functions
-
We use the inbound API to perform demand forecasting, when inventory gets too low, we trigger the ML demand predictions workflow to preemtively have inventory
-
We push order data to a queue for multiple consumers like Demand Prediction and Analytics
-
We provide a custom analytics dashboard providing information like order value / count in a set date range
pip3 install -r requirements.txt
python3 main.pyCreate a .env file and add the following fields
- ACCESS_KEY= Access key for AWS account
- SECRET_KEY= Secret key for AWS account
- LISTINGS_ITEM_STATUS_CHANGE_QUEUE_URL = SQS Queue Url to publish listing items status change events
- LISTINGS_ITEM_MFN_QUANTITY_CHANGE_QUEUE_URL = SQS Queue Url to publish listing item status change url
- FULFILLMENT_ORDER_STATUS_QUEUE_URL = SQS Queue Url to publish order change events
- ORDER_QUEUE_URL = SQS Queue url to publish order placed events
- MONGO_URI = Mongo Uri Connection String
- MONGO_DB_NAME = Name for Mongo Database
- LISTING_COLLECTION_NAME = Mongo collection for listing data
- ORDER_COLLECTION_NAME = Mongo collection for order data
- TOGETHER_API_KEY = Together AI API key for chatbot usage.