# maruthisarathchandra/pakodi architecture

> Architecture diagram of the GitHub repository maruthisarathchandra/pakodi, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/maruthisarathchandra/pakodi
- Repository: https://github.com/maruthisarathchandra/pakodi

## Overview

Pakodi is a restaurant food-ordering application. Its main customer workflow is login, browse restaurants and menu/nutrition details, add items to a basket, and check out into placed orders; customers can also view past orders. Sampled services show the basket-to-order transfer and persistence operations. The README is empty, and controller implementations for menu, restaurant, and checkout were not sampled, so those links follow the named modules in the tree; uncertain wiring is omitted.

Main entry points: [`src/main/java/com/Api/Pakodi/Service/ordersService/CheckOutService.java`](https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Service/ordersService/CheckOutService.java) (Checkout service), [`src/main/java/com/Api/Pakodi/Service/ordersService/PakodiBasketService.java`](https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Service/ordersService/PakodiBasketService.java) (Basket service), [`src/main/java/com/Api/Pakodi/Service/ordersService/BasketItemsService.java`](https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Service/ordersService/BasketItemsService.java) (Basket items service), [`src/main/java/com/Api/Pakodi/Controller/ordersController/BasketController.java`](https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Controller/ordersController/BasketController.java) (Basket controller)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Customer access"]
  node_login_controller["Login controller"]
  node_login_service["Login service<br/>[LoginService.java]"]
  node_home_controller["Home controller"]
  node_home_service["Past orders service<br/>[HomeService.java]"]
end

subgraph group_catalog["Restaurant catalog"]
  node_restaurant_controller["Restaurant controller"]
  node_restaurant_service["Restaurant service"]
  node_menu_controller["Menu controller"]
  node_menu_service["Menu service<br/>[MenuService.java]"]
  node_nutrients_controller["Nutrition controller"]
  node_nutrients_service["Nutrition service"]
end

subgraph group_ordering["Basket and orders"]
  node_orders_items_service["Order items service"]
  node_basket_controller["Basket controller"]
  node_basket_service["Basket service"]
  node_basket_items_service["Basket items service"]
  node_checkout_controller["Checkout controller"]
  node_checkout_service["Checkout service"]
end

subgraph group_persistence["Persistence"]
  node_login_repo["Login repository<br/>[LoginRepo.java]"]
  node_orders_items_repo["Order items repository"]
  node_restaurant_repo["Restaurant repository"]
  node_menu_repo["Menu repository<br/>[MenuRepo.java]"]
  node_nutrients_repo["Nutrition repository"]
  node_basket_repo["Basket repository"]
  node_basket_items_repo["Basket items repository"]
  node_orders_repo["Orders repository"]
  node_database[("Application database")]
end

node_customer(("Customer"))

node_customer -->|"submits login"| node_login_controller
node_login_controller -->|"calls"| node_login_service
node_login_service -->|"authenticates via"| node_login_repo
node_customer -->|"requests pages"| node_home_controller
node_home_controller -->|"requests past orders"| node_home_service
node_home_service -->|"delegates lookup"| node_orders_items_service
node_orders_items_service -->|"reads past orders"| node_orders_items_repo
node_customer -->|"browses"| node_restaurant_controller
node_restaurant_controller -->|"requests restaurants"| node_restaurant_service
node_restaurant_service -->|"reads restaurants"| node_restaurant_repo
node_customer -->|"browses menu"| node_menu_controller
node_menu_controller -->|"requests menu"| node_menu_service
node_menu_service -->|"reads menu"| node_menu_repo
node_customer -->|"requests nutrition"| node_nutrients_controller
node_nutrients_controller -->|"requests details"| node_nutrients_service
node_nutrients_service -->|"queries nutrients"| node_nutrients_repo
node_customer -->|"manages basket"| node_basket_controller
node_basket_controller -->|"adds or deletes items"| node_basket_service
node_basket_controller -->|"reads basket"| node_basket_items_service
node_basket_service -->|"loads menu item"| node_menu_repo
node_basket_service -->|"reads and writes basket"| node_basket_repo
node_basket_service -->|"updates item rows"| node_basket_items_service
node_basket_items_service -->|"reads and writes items"| node_basket_items_repo
node_customer -->|"checks out"| node_checkout_controller
node_checkout_controller -->|"starts checkout"| node_checkout_service
node_checkout_service -->|"loads and clears basket"| node_basket_service
node_checkout_service -->|"loads and clears items"| node_basket_items_service
node_checkout_service -->|"saves orders"| node_orders_repo
node_checkout_service -->|"saves order items"| node_orders_items_repo
node_login_repo -->|"persists account data"| node_database
node_restaurant_repo -->|"reads"| node_database
node_menu_repo -->|"reads"| node_database
node_nutrients_repo -->|"reads"| node_database
node_basket_repo -->|"reads and writes"| node_database
node_basket_items_repo -->|"reads and writes"| node_database
node_orders_repo -->|"writes"| node_database
node_orders_items_repo -->|"reads and writes"| node_database

click node_login_controller "https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Controller/actorsController/LoginController.java"
click node_login_service "https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Service/actorsService/LoginService.java"
click node_login_repo "https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Repository/LoginRepo.java"
click node_home_controller "https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Controller/HomeController.java"
click node_home_service "https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Service/homeService/HomeService.java"
click node_orders_items_service "https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Service/ordersService/OrdersItemsService.java"
click node_orders_items_repo "https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Repository/ordersRepo/OrdersItemsRepo.java"
click node_restaurant_controller "https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Controller/itemsController/RestaurantController.java"
click node_restaurant_service "https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Service/itemsService/RestaurantService.java"
click node_restaurant_repo "https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Repository/itemsRepo/RestaurantRepo.java"
click node_menu_controller "https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Controller/itemsController/MenuController.java"
click node_menu_service "https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Service/itemsService/MenuService.java"
click node_menu_repo "https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Repository/itemsRepo/MenuRepo.java"
click node_nutrients_controller "https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Controller/itemsController/NutrientsQuantityController.java"
click node_nutrients_service "https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Service/itemsService/NutrientsQuantityService.java"
click node_nutrients_repo "https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Repository/itemsRepo/NutrientsQuantityRepo.java"
click node_basket_controller "https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Controller/ordersController/BasketController.java"
click node_basket_service "https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Service/ordersService/PakodiBasketService.java"
click node_basket_items_service "https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Service/ordersService/BasketItemsService.java"
click node_checkout_controller "https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Controller/ordersController/CheckOutController.java"
click node_checkout_service "https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Service/ordersService/CheckOutService.java"
click node_basket_repo "https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Repository/ordersRepo/PakodiBasketRepo.java"
click node_basket_items_repo "https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Repository/ordersRepo/BasketItemsRepo.java"
click node_orders_repo "https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Repository/ordersRepo/PakodiOrdersRepo.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_login_controller,node_login_service,node_home_controller,node_home_service toneBlue
class node_restaurant_controller,node_restaurant_service,node_menu_controller,node_menu_service,node_nutrients_controller,node_nutrients_service toneAmber
class node_orders_items_service,node_basket_controller,node_basket_service,node_basket_items_service,node_checkout_controller,node_checkout_service toneMint
class node_login_repo,node_orders_items_repo,node_restaurant_repo,node_menu_repo,node_nutrients_repo,node_basket_repo,node_basket_items_repo,node_orders_repo,node_database toneRose
class node_customer toneIndigo
```

## Components

### Customer access

- [Login controller](https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Controller/actorsController/LoginController.java): `src/main/java/com/Api/Pakodi/Controller/actorsController/LoginController.java`
- [Login service](https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Service/actorsService/LoginService.java): `src/main/java/com/Api/Pakodi/Service/actorsService/LoginService.java`
- [Home controller](https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Controller/HomeController.java): `src/main/java/com/Api/Pakodi/Controller/HomeController.java`
- [Past orders service](https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Service/homeService/HomeService.java): `src/main/java/com/Api/Pakodi/Service/homeService/HomeService.java`

### Restaurant catalog

- [Restaurant controller](https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Controller/itemsController/RestaurantController.java): `src/main/java/com/Api/Pakodi/Controller/itemsController/RestaurantController.java`
- [Restaurant service](https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Service/itemsService/RestaurantService.java): `src/main/java/com/Api/Pakodi/Service/itemsService/RestaurantService.java`
- [Menu controller](https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Controller/itemsController/MenuController.java): `src/main/java/com/Api/Pakodi/Controller/itemsController/MenuController.java`
- [Menu service](https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Service/itemsService/MenuService.java): `src/main/java/com/Api/Pakodi/Service/itemsService/MenuService.java`
- [Nutrition controller](https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Controller/itemsController/NutrientsQuantityController.java): `src/main/java/com/Api/Pakodi/Controller/itemsController/NutrientsQuantityController.java`
- [Nutrition service](https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Service/itemsService/NutrientsQuantityService.java): `src/main/java/com/Api/Pakodi/Service/itemsService/NutrientsQuantityService.java`

### Basket and orders

- [Order items service](https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Service/ordersService/OrdersItemsService.java): `src/main/java/com/Api/Pakodi/Service/ordersService/OrdersItemsService.java`
- [Basket controller](https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Controller/ordersController/BasketController.java): `src/main/java/com/Api/Pakodi/Controller/ordersController/BasketController.java`
- [Basket service](https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Service/ordersService/PakodiBasketService.java): `src/main/java/com/Api/Pakodi/Service/ordersService/PakodiBasketService.java`
- [Basket items service](https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Service/ordersService/BasketItemsService.java): `src/main/java/com/Api/Pakodi/Service/ordersService/BasketItemsService.java`
- [Checkout controller](https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Controller/ordersController/CheckOutController.java): `src/main/java/com/Api/Pakodi/Controller/ordersController/CheckOutController.java`
- [Checkout service](https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Service/ordersService/CheckOutService.java): `src/main/java/com/Api/Pakodi/Service/ordersService/CheckOutService.java`

### Persistence

- [Login repository](https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Repository/LoginRepo.java): `src/main/java/com/Api/Pakodi/Repository/LoginRepo.java`
- [Order items repository](https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Repository/ordersRepo/OrdersItemsRepo.java): `src/main/java/com/Api/Pakodi/Repository/ordersRepo/OrdersItemsRepo.java`
- [Restaurant repository](https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Repository/itemsRepo/RestaurantRepo.java): `src/main/java/com/Api/Pakodi/Repository/itemsRepo/RestaurantRepo.java`
- [Menu repository](https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Repository/itemsRepo/MenuRepo.java): `src/main/java/com/Api/Pakodi/Repository/itemsRepo/MenuRepo.java`
- [Nutrition repository](https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Repository/itemsRepo/NutrientsQuantityRepo.java): `src/main/java/com/Api/Pakodi/Repository/itemsRepo/NutrientsQuantityRepo.java`
- [Basket repository](https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Repository/ordersRepo/PakodiBasketRepo.java): `src/main/java/com/Api/Pakodi/Repository/ordersRepo/PakodiBasketRepo.java`
- [Basket items repository](https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Repository/ordersRepo/BasketItemsRepo.java): `src/main/java/com/Api/Pakodi/Repository/ordersRepo/BasketItemsRepo.java`
- [Orders repository](https://github.com/maruthisarathchandra/pakodi/blob/master/src/main/java/com/Api/Pakodi/Repository/ordersRepo/PakodiOrdersRepo.java): `src/main/java/com/Api/Pakodi/Repository/ordersRepo/PakodiOrdersRepo.java`
- **Application database**

### Other components

- **Customer**

## Connections

- Customer → Login controller: submits login
- Login controller → Login service: calls
- Login service → Login repository: authenticates via
- Customer → Home controller: requests pages
- Home controller → Past orders service: requests past orders
- Past orders service → Order items service: delegates lookup
- Order items service → Order items repository: reads past orders
- Customer → Restaurant controller: browses
- Restaurant controller → Restaurant service: requests restaurants
- Restaurant service → Restaurant repository: reads restaurants
- Customer → Menu controller: browses menu
- Menu controller → Menu service: requests menu
- Menu service → Menu repository: reads menu
- Customer → Nutrition controller: requests nutrition
- Nutrition controller → Nutrition service: requests details
- Nutrition service → Nutrition repository: queries nutrients
- Customer → Basket controller: manages basket
- Basket controller → Basket service: adds or deletes items
- Basket controller → Basket items service: reads basket
- Basket service → Menu repository: loads menu item
- Basket service → Basket repository: reads and writes basket
- Basket service → Basket items service: updates item rows
- Basket items service → Basket items repository: reads and writes items
- Customer → Checkout controller: checks out
- Checkout controller → Checkout service: starts checkout
- Checkout service → Basket service: loads and clears basket
- Checkout service → Basket items service: loads and clears items
- Checkout service → Orders repository: saves orders
- Checkout service → Order items repository: saves order items
- Login repository → Application database: persists account data
- Restaurant repository → Application database: reads
- Menu repository → Application database: reads
- Nutrition repository → Application database: reads
- Basket repository → Application database: reads and writes
- Basket items repository → Application database: reads and writes
- Orders repository → Application database: writes
- Order items repository → Application database: reads and writes
