AADI
AADI is a microservice-based application designed to enhance kitchen orchestration and order management through innovative features like GPS-powered dispatch and geofencing. The project leverages a modern tech stack, ensuring scalability and efficiency in operations.
Architecture
The architecture of AADI is designed for scalability and reliability, utilizing a microservice approach. This allows the system to efficiently manage various components like orders and users, ensuring a robust infrastructure capable of handling high demand.
Stack
The technology choices for AADI reflect a commitment to using mature and widely adopted tools. By leveraging AWS services and modern frameworks like React and React Native, the project ensures a seamless user experience and operational efficiency.
Deep dive
The project addresses the challenge of efficient order dispatch through geofencing and capacity logic, ensuring timely service. AADI's architecture allows for modular development, making it easier to manage and scale individual components.
AADI employs a microservice architecture with an event-driven pattern, utilizing AWS Lambda for backend services. The project consists of multiple microservices dedicated to orders, users, and restaurants, addressing complex business logic such as geofencing and capacity management.
Architecture
AADI's architecture is microservice-based and event-driven, featuring multiple services for orders, users, and restaurants. The use of AWS Lambda facilitates serverless computing, while geofencing and capacity logic enhance order dispatch efficiency, ensuring timely service delivery.
Stack
AADI utilizes a tech stack that includes JavaScript, TypeScript, and Python, with frameworks such as React and React Native for frontend development. The backend is powered by AWS Lambda, DynamoDB, and the AWS SDK, enabling efficient data management and service integration.
Deep dive
AADI's implementation of geofencing and capacity-aware order management presents unique challenges in real-time data processing and service orchestration. By utilizing AWS Lambda and an event-driven architecture, the project effectively handles high volumes of orders while maintaining responsiveness and reliability.
Guided tour
01 GPS-Powered Order Orchestration Platform
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 order dispatching.
- !Uses GPS for order orchestration
- ✓Employs geofencing technology
02 Microservice Architecture
The project is structured as a layered microservice architecture, utilizing AWS Lambda for backend services and DynamoDB for data storage. Each service, such as orders and users, operates independently while sharing utilities through a Lambda Layer.
- ✓Utilizes AWS Lambda for backend services
- ✓Follows a microservice architecture
03 README.md: Project Overview
The README.md provides a comprehensive overview of the Arrive platform, detailing its purpose, features, and architecture. This file reflects the developer's emphasis on clear documentation and user guidance.
- !Contains project overview and architecture
- ✓Provides detailed testing structure
README.md# Arrive Platform > GPS-Powered Just-in-Time Kitchen Orchestration **Built with ❤️ via AI pair programming.** --- ## 🧭 Overview Arrive is a capacity-aware order orchestration platform. It flips the traditional takeout and curbside model on its head by delaying kitchen dispatch until the customer is physically approaching the restaurant, ensuring food is always freshly prepared exactly when they arrive.04 Well-Tested Codebase
The project employs a variety of testing frameworks, including pytest for Python and Jest for JavaScript/TypeScript. Tests are organized in dedicated directories for each service and include unit and integration tests.
- ✓Includes unit and integration tests
- !Uses pytest for Python testing
05 CI/CD Workflows for Deployment
The project includes CI/CD workflows defined in GitHub Actions, facilitating automated testing and deployment. The deployment target is not explicitly stated but is managed through scripts and AWS services.
- ✓Configured CI/CD workflows
- ✓Automated testing in CI
06 Clone the Repository
To explore the project, you can clone the repository using the command below. There is no live demo available at this time.
- !Repository available for cloning
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