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

PythonThe tech stack includes JavaScript, TypeScript, and Python as languages.The tech stack includes React and React Native as frameworks.The tech stack includes AWS SDK and DynamoDB as libraries.The tech stack includes AWS SAM, API Gateway, Cognito, and CloudWatch as tools.
View as

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

  1. 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
  2. 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
  3. 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.py

    def test_capacity_logic():
        # Test logic for capacity evaluation
        assert evaluate_capacity() == expected_result
  4. 04

    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
  5. 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
  6. 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
Architecture
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 El

Diagram 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