AADI
AADI is a sophisticated software project designed to streamline food service operations through innovative features like geofencing and real-time kitchen capacity evaluation. By leveraging a microservices architecture and modern technologies, the project enhances order orchestration and dispatch efficiency, ultimately improving customer satisfaction.
Architecture
The architecture of AADI is built on a microservices framework, allowing for independent service deployment and scalability. This design ensures that each component, such as order management and user services, can operate efficiently and reliably, contributing to overall system resilience.
Stack
The technology stack of AADI includes mature frameworks and tools that enhance development efficiency and system performance. By using React and React Native for the frontend, along with Python for the backend, the project benefits from a robust ecosystem that supports rapid feature development and deployment.
Deep dive
AADI addresses the complexities of food service logistics through its layered architecture and microservices approach. The project incorporates features like geofencing and capacity-aware order orchestration, which require sophisticated backend logic and real-time data processing, ensuring timely and efficient service delivery.
AADI employs a microservices architecture with a layered pattern, integrating multiple services for orders, users, restaurants, and POS systems. The project utilizes AWS Lambda for backend services, ensuring scalability and reliability while separating frontend applications into distinct packages for better maintainability.
Architecture
AADI's architecture is structured as a microservice with a layered pattern, facilitating clear separation of concerns. It incorporates multiple services that handle orders, users, restaurants, and POS integration, utilizing AWS Lambda for backend processing. This approach allows for dynamic scaling and efficient resource management while maintaining distinct packages for frontend applications.
Stack
AADI leverages a diverse tech stack including JavaScript, TypeScript, and Python, with frameworks like React and React Native for the frontend. The backend utilizes AWS SDK and DynamoDB, while infrastructure management is handled through AWS SAM, API Gateway, Cognito, and CloudWatch. This combination allows for seamless integration and efficient handling of real-time data.
Deep dive
In AADI, the implementation of AWS Lambda for backend services allows for event-driven execution, which is crucial for handling real-time order processing and kitchen capacity evaluations. The separation of frontend applications into distinct packages enhances modularity, making it easier to manage and deploy updates across the customer web app, admin portal, and mobile app. The project also integrates advanced features like just-in-time dispatch, which optimizes food preparation workflows based on real-time data.
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 food dispatch.
- ✓Uses geofencing for order orchestration
02 Microservice Architecture
The project employs a layered microservice architecture using AWS Lambda for backend services, with separate services for orders, users, and restaurants. A shared utility layer is also deployed as a Lambda Layer.
- ✓Utilizes AWS Lambda for backend services
03 Insightful Test File
The file `services/orders/tests/test_capacity.py` demonstrates the developer's focus on ensuring the kitchen's capacity logic is robust and reliable under various conditions. It reflects a commitment to quality and thorough testing.
- ✓Contains tests for capacity logic
services/orders/tests/test_capacity.pydef test_capacity_logic(): # Test logic for kitchen capacity assert check_capacity() == expected_capacity04 Well-Tested Codebase
The project uses pytest for testing, with tests located in various directories including `services/orders/tests` and `packages/customer-web/src`. CI workflows are set up for testing.
- !Tests with pytest
05 CI/CD Workflows
The project includes CI/CD workflows for deployment and testing, with a specific workflow for mobile applications. It appears to be deployed using AWS services.
- ✓Has a deploy workflow configured
06 Try It Out
To explore the project, you can clone the repository using the command below.
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.
Verified facts
- The project uses JavaScript as a programming language.from code
Evidence
Frontend: React, React Native, TypeScript
Source:
README - The project uses TypeScript as a programming language.from code
Evidence
Frontend: React, React Native, TypeScript
Source:
README - The project uses Python as a programming language.from code
Evidence
Backend: Python 3.11, AWS Lambda, DynamoDB
Source:
README - The project uses React as a framework.from code
Evidence
Frontend: React, React Native, TypeScript
Source:
README - The project uses React Native as a framework.from code
Evidence
Frontend: React, React Native, TypeScript
Source:
README - The project uses AWS SDK as a library.from code
Evidence
Backend: Python 3.11, AWS Lambda, DynamoDB
Source:
README - The project uses DynamoDB as a library.from code
Evidence
Backend: Python 3.11, AWS Lambda, DynamoDB
Source:
README - The project uses AWS SAM as a tool.from code
Evidence
Infrastructure: AWS SAM, API Gateway, Cognito, S3, CloudFront, CloudWatch
Source:
README