# tranbaotri2412-star/taco architecture

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

- Interactive diagram: https://gitdiagram.com/tranbaotri2412-star/taco
- Repository: https://github.com/tranbaotri2412-star/taco

## Overview

This appears to be a Spring-based taco-ordering demo, with web controllers, taco and ingredient domain models, and JDBC-backed repositories. The likely user journey is to view the home page, design a taco, and submit an order. The tree also shows templates for those pages. No README or source excerpts were provided, so relationships below are tentative and marked dashed; implementation details and database configuration cannot be verified.

Main entry points: [`src/main/java/guru/spring/demo/Controller/DesignTacoController.java`](https://github.com/tranbaotri2412-star/taco/blob/main/src/main/java/guru/spring/demo/Controller/DesignTacoController.java) (Taco designer), [`src/main/java/guru/spring/demo/Controller/OrderController.java`](https://github.com/tranbaotri2412-star/taco/blob/main/src/main/java/guru/spring/demo/Controller/OrderController.java) (Order controller), [`src/main/java/guru/spring/demo/Model/Taco.java`](https://github.com/tranbaotri2412-star/taco/blob/main/src/main/java/guru/spring/demo/Model/Taco.java) (Taco), [`src/main/java/guru/spring/demo/Controller/HomeController.java`](https://github.com/tranbaotri2412-star/taco/blob/main/src/main/java/guru/spring/demo/Controller/HomeController.java) (Home controller)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web experience"]
  node_app["Spring application"]
  node_home["Home controller"]
  node_design["Taco designer"]
  node_order["Order controller"]
  node_homeview["Home page<br/>[home.html]"]
  node_designview["Design page<br/>[design.html]"]
  node_orderview["Order page<br/>[TacoOrder.html]"]
end

subgraph group_domain["Taco domain"]
  node_ingredient["Ingredient<br/>[Ingredient.java]"]
  node_ingredientref["Ingredient reference<br/>[IngredientRef.java]"]
  node_converter["Ingredient converter"]
  node_taco["Taco<br/>[Taco.java]"]
  node_tacoorder["Taco order<br/>[TacoOrder.java]"]
end

subgraph group_persistence["Persistence"]
  node_ingredientrepo["Ingredient repository"]
  node_jdbcingredient["JDBC ingredients"]
  node_orderrepo["Order repository"]
  node_jdbcorder["JDBC orders"]
end

node_user(("User"))

node_user -.->|"requests page"| node_home
node_home -.->|"renders"| node_homeview
node_user -.->|"designs taco"| node_design
node_design -.->|"renders"| node_designview
node_design -.->|"loads ingredients"| node_ingredientrepo
node_design -.->|"builds taco"| node_taco
node_design -.->|"converts ingredient IDs"| node_converter
node_converter -.->|"resolves ingredient"| node_ingredient
node_ingredientrepo -.->|"implemented by"| node_jdbcingredient
node_user -.->|"submits order"| node_order
node_order -.->|"renders"| node_orderview
node_order -.->|"saves order"| node_orderrepo
node_order -.->|"creates order"| node_tacoorder
node_orderrepo -.->|"implemented by"| node_jdbcorder
node_tacoorder -.->|"contains taco"| node_taco
node_taco -.->|"references ingredients"| node_ingredientref

click node_app "https://github.com/tranbaotri2412-star/taco/blob/main/src/main/java/guru/spring/demo/DemoApplication.java"
click node_home "https://github.com/tranbaotri2412-star/taco/blob/main/src/main/java/guru/spring/demo/Controller/HomeController.java"
click node_design "https://github.com/tranbaotri2412-star/taco/blob/main/src/main/java/guru/spring/demo/Controller/DesignTacoController.java"
click node_order "https://github.com/tranbaotri2412-star/taco/blob/main/src/main/java/guru/spring/demo/Controller/OrderController.java"
click node_homeview "https://github.com/tranbaotri2412-star/taco/blob/main/src/main/resources/templates/home.html"
click node_designview "https://github.com/tranbaotri2412-star/taco/blob/main/src/main/resources/templates/design.html"
click node_orderview "https://github.com/tranbaotri2412-star/taco/blob/main/src/main/resources/templates/TacoOrder.html"
click node_ingredient "https://github.com/tranbaotri2412-star/taco/blob/main/src/main/java/guru/spring/demo/Model/Ingredient.java"
click node_ingredientref "https://github.com/tranbaotri2412-star/taco/blob/main/src/main/java/guru/spring/demo/Model/IngredientRef.java"
click node_converter "https://github.com/tranbaotri2412-star/taco/blob/main/src/main/java/guru/spring/demo/Model/IngredientByIdConverter.java"
click node_taco "https://github.com/tranbaotri2412-star/taco/blob/main/src/main/java/guru/spring/demo/Model/Taco.java"
click node_tacoorder "https://github.com/tranbaotri2412-star/taco/blob/main/src/main/java/guru/spring/demo/Model/TacoOrder.java"
click node_ingredientrepo "https://github.com/tranbaotri2412-star/taco/blob/main/src/main/java/guru/spring/demo/Repository/IngredientRepository.java"
click node_jdbcingredient "https://github.com/tranbaotri2412-star/taco/blob/main/src/main/java/guru/spring/demo/Repository/JdbcIngredientRepository.java"
click node_orderrepo "https://github.com/tranbaotri2412-star/taco/blob/main/src/main/java/guru/spring/demo/Repository/OrderRepository.java"
click node_jdbcorder "https://github.com/tranbaotri2412-star/taco/blob/main/src/main/java/guru/spring/demo/Repository/JdbcOrderRepository.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_app,node_home,node_design,node_order,node_homeview,node_designview,node_orderview,node_user toneBlue
class node_ingredient,node_ingredientref,node_converter,node_taco,node_tacoorder toneAmber
class node_ingredientrepo,node_jdbcingredient,node_orderrepo,node_jdbcorder toneMint
```

## Components

### Web experience

- [Spring application](https://github.com/tranbaotri2412-star/taco/blob/main/src/main/java/guru/spring/demo/DemoApplication.java): `src/main/java/guru/spring/demo/DemoApplication.java`
- [Home controller](https://github.com/tranbaotri2412-star/taco/blob/main/src/main/java/guru/spring/demo/Controller/HomeController.java): `src/main/java/guru/spring/demo/Controller/HomeController.java`
- [Taco designer](https://github.com/tranbaotri2412-star/taco/blob/main/src/main/java/guru/spring/demo/Controller/DesignTacoController.java): `src/main/java/guru/spring/demo/Controller/DesignTacoController.java`
- [Order controller](https://github.com/tranbaotri2412-star/taco/blob/main/src/main/java/guru/spring/demo/Controller/OrderController.java): `src/main/java/guru/spring/demo/Controller/OrderController.java`
- [Home page](https://github.com/tranbaotri2412-star/taco/blob/main/src/main/resources/templates/home.html): `src/main/resources/templates/home.html`
- [Design page](https://github.com/tranbaotri2412-star/taco/blob/main/src/main/resources/templates/design.html): `src/main/resources/templates/design.html`
- [Order page](https://github.com/tranbaotri2412-star/taco/blob/main/src/main/resources/templates/TacoOrder.html): `src/main/resources/templates/TacoOrder.html`

### Taco domain

- [Ingredient](https://github.com/tranbaotri2412-star/taco/blob/main/src/main/java/guru/spring/demo/Model/Ingredient.java): `src/main/java/guru/spring/demo/Model/Ingredient.java`
- [Ingredient reference](https://github.com/tranbaotri2412-star/taco/blob/main/src/main/java/guru/spring/demo/Model/IngredientRef.java): `src/main/java/guru/spring/demo/Model/IngredientRef.java`
- [Ingredient converter](https://github.com/tranbaotri2412-star/taco/blob/main/src/main/java/guru/spring/demo/Model/IngredientByIdConverter.java): `src/main/java/guru/spring/demo/Model/IngredientByIdConverter.java`
- [Taco](https://github.com/tranbaotri2412-star/taco/blob/main/src/main/java/guru/spring/demo/Model/Taco.java): `src/main/java/guru/spring/demo/Model/Taco.java`
- [Taco order](https://github.com/tranbaotri2412-star/taco/blob/main/src/main/java/guru/spring/demo/Model/TacoOrder.java): `src/main/java/guru/spring/demo/Model/TacoOrder.java`

### Persistence

- [Ingredient repository](https://github.com/tranbaotri2412-star/taco/blob/main/src/main/java/guru/spring/demo/Repository/IngredientRepository.java): `src/main/java/guru/spring/demo/Repository/IngredientRepository.java`
- [JDBC ingredients](https://github.com/tranbaotri2412-star/taco/blob/main/src/main/java/guru/spring/demo/Repository/JdbcIngredientRepository.java): `src/main/java/guru/spring/demo/Repository/JdbcIngredientRepository.java`
- [Order repository](https://github.com/tranbaotri2412-star/taco/blob/main/src/main/java/guru/spring/demo/Repository/OrderRepository.java): `src/main/java/guru/spring/demo/Repository/OrderRepository.java`
- [JDBC orders](https://github.com/tranbaotri2412-star/taco/blob/main/src/main/java/guru/spring/demo/Repository/JdbcOrderRepository.java): `src/main/java/guru/spring/demo/Repository/JdbcOrderRepository.java`

### Other components

- **User**

## Connections

- User → Home controller: requests page
- Home controller → Home page: renders
- User → Taco designer: designs taco
- Taco designer → Design page: renders
- Taco designer → Ingredient repository: loads ingredients
- Taco designer → Taco: builds taco
- Taco designer → Ingredient converter: converts ingredient IDs
- Ingredient converter → Ingredient: resolves ingredient
- Ingredient repository → JDBC ingredients: implemented by
- User → Order controller: submits order
- Order controller → Order page: renders
- Order controller → Order repository: saves order
- Order controller → Taco order: creates order
- Order repository → JDBC orders: implemented by
- Taco order → Taco: contains taco
- Taco → Ingredient reference: references ingredients
