AADI
AADI is a microservice-based project designed to enhance order management through innovative features such as geofencing and capacity awareness. The project leverages a robust tech stack, including JavaScript, TypeScript, and Python, to deliver a seamless experience across customer and admin portals.
Tech Stack
Architecture
The architecture of AADI is designed to be scalable and reliable, employing a microservice approach that allows for independent service management. This layered architecture ensures that different components, such as order processing and user management, can evolve without impacting the overall system.
Technical Narrative
The technology choices for AADI reflect a commitment to using mature and widely adopted tools. By integrating AWS services like DynamoDB and API Gateway, the project ensures robust performance and security, while the use of React and React Native allows for a rich user experience across web and mobile platforms.
Why This Project Matters
AADI stands out as a project that combines innovative technology with practical solutions for order management. Its focus on real-time capabilities and operational efficiency showcases strong leadership in tech-driven business solutions.
Deep Dive
AADI's development process involved addressing challenges related to real-time order dispatch and capacity management. By implementing geofencing technology, the project ensures timely deliveries, while the admin portal provides operational oversight, enhancing overall efficiency.
Architecture
AADI's architecture is structured as a microservice with a layered pattern, facilitating clear separation of concerns. The directory structure includes dedicated services for orders, users, restaurants, and POS integration, while AWS Lambda is utilized for backend processing, enhancing scalability and maintainability.
Technical Narrative
AADI's tech stack includes JavaScript, TypeScript, and Python, with frameworks such as React and React Native driving the frontend. The backend is powered by AWS services, including DynamoDB for data storage and AWS SAM for infrastructure management, ensuring efficient deployment and scalability.
Why This Project Matters
AADI represents a significant technical achievement, employing a microservice architecture to tackle complex order management challenges. The project showcases deep problem-solving skills and innovative use of modern technologies to deliver impactful features.
Deep Dive
In AADI, the implementation of geofencing for real-time order dispatch posed significant challenges in terms of accuracy and responsiveness. The layered architecture facilitated the integration of various services, allowing for effective capacity-aware order management. Additionally, the use of AWS Lambda for backend services enabled seamless scaling and efficient resource utilization.
Guided tour
01 GPS-Powered Order Orchestration
Arrive is a capacity-aware order orchestration platform that ensures food is freshly prepared as customers approach the restaurant. It leverages geofencing and real-time kitchen capacity evaluation to optimize dispatch timing.
- ✓Uses GPS for order dispatch
02 Microservice Architecture
The project employs a layered microservice architecture using AWS Lambda for backend services, with separate services for orders, users, and restaurants. It also includes a shared utilities layer for common functionalities.
- ✓Utilizes AWS Lambda for backend
03 Capacity Engine Logic
The file `services/orders/tests/test_capacity.py` contains tests for the capacity engine logic that evaluates kitchen capacity and manages order states based on real-time conditions.
- ✓Tests capacity management logic
- ✓Contains test cases for orders
services/orders/tests/test_capacity.pydef test_capacity_logic(): # Test logic for capacity evaluation assert evaluate_capacity() == expected_result04 Well-Tested Codebase
The project employs a variety of tests across different services, including unit tests and integration tests, primarily using Python's pytest framework. Test files are located in the `tests` and `services/*/tests` directories.
- !Tests implemented with pytest
- ✓Contains multiple test files
05 CI/CD Workflows in Place
The project includes CI/CD workflows defined in GitHub Actions, with a focus on deployment and continuous integration. The workflows are located in the `.github/workflows` directory.
- ✓Has a CI workflow defined
- ✓Includes a deploy workflow
06 Try It Out
To explore the project, you can clone the repository using the command below. There is no live demo available at this time.
- !Clone the repository
git clone https://github.com/shashankcm95/AADI
graph TD
subgraph Clients
C[Customer App<br/>React Native / iOS]
A[Admin Portal<br/>React]
W[Customer Web<br/>React]
end
subgraph AWS Cloud
API[API Gateway]
COG[Cognito Auth]
subgraph Microservices
O[Orders Service<br/>Python Lambda]
U[Users Service<br/>Python Lambda]
R[Restaurants Service<br/>Python Lambda]
POS[POS Integration<br/>Python Lambda]
S[Shared Layer<br/>Utilities]
end
subgraph Data Stores
DDB[(DynamoDB Tables)]
end
subgraph Location Services
LOC[AWS Location Service<br/>Geofencing]
EB[EventBridge]
end
end
C -->|Trigger Geofence| LOC
LOC -->|Event| EB
EB -->|Dispatch ElDiagram source rendered with mermaid.js.
Key facts
- The tech stack includes JavaScript, TypeScript, and Python as languages.from code
Evidence
Frontend: React, React Native, TypeScript; Backend: Python 3.11
Source:
README - The tech stack includes React and React Native as frameworks.from code
Evidence
Frontend: React, React Native
Source:
README - The tech stack includes AWS SDK and DynamoDB as libraries.from code
Evidence
Backend: AWS Lambda, DynamoDB
Source:
README - The tech stack includes AWS SAM, API Gateway, Cognito, and CloudWatch as tools.from code
Evidence
Infrastructure: AWS SAM, API Gateway, Cognito, S3, CloudFront, CloudWatch
Source:
README - The architecture type is microservice.from code
Evidence
Architecture type: microservice
Source:
README - The architecture pattern is layered.from code
Evidence
Architecture pattern: layered
Source:
README - The project includes a geofencing feature for real-time order dispatch.from code
Evidence
Geofencing for real-time order dispatch.
Source:
README - The project includes capacity-aware order management.from code
Evidence
Capacity-aware order management.
Source:
README