# greyjy/star-takeout-learning architecture

> Architecture diagram of the GitHub repository greyjy/star-takeout-learning, 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/greyjy/star-takeout-learning
- Repository: https://github.com/greyjy/star-takeout-learning
- Video tour (about a minute): https://gitdiagram.com/greyjy/star-takeout-learning/video

## Overview

星味外卖 is a teaching takeout-management application. Its documented current workflow is an administrator using the web console to log in and manage employees, categories, and dishes, with paging, search, editing, and status changes; the console also presents a business overview and maintains login state. The backend is documented with H2 and MySQL options and Swagger documentation. No source excerpts were provided, so the graph is limited to README-supported capabilities and broad relationships; it does not assert unverified controller-to-service or service-to-mapper calls.

Main entry points: [`backend/src/main/resources/static/index.html`](https://github.com/greyjy/star-takeout-learning/blob/master/backend/src/main/resources/static/index.html) (Management console), [`backend/src/main/java/com/example/takeout/controller/EmployeeController.java`](https://github.com/greyjy/star-takeout-learning/blob/master/backend/src/main/java/com/example/takeout/controller/EmployeeController.java) (Employee management), [`backend/src/main/java/com/example/takeout/controller/CategoryController.java`](https://github.com/greyjy/star-takeout-learning/blob/master/backend/src/main/java/com/example/takeout/controller/CategoryController.java) (Category management), [`backend/src/main/java/com/example/takeout/controller/DishController.java`](https://github.com/greyjy/star-takeout-learning/blob/master/backend/src/main/java/com/example/takeout/controller/DishController.java) (Dish management)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_admin["Admin console"]
  node_console["Management console<br/>[index.html]"]
  node_console_assets["Console assets"]
  node_overview["Business overview"]
end

subgraph group_api["Backend API"]
  node_auth_api["Administrator login"]
  node_auth_service["Authentication<br/>[AuthService.java]"]
  node_employee_api["Employee management"]
  node_employee_service["Employee operations"]
  node_category_api["Category management"]
  node_category_service["Category operations"]
  node_dish_api["Dish management"]
  node_dish_service["Dish operations<br/>[DishService.java]"]
  node_jwt["JWT security"]
end

subgraph group_data["Persistence"]
  node_database[("H2 / MySQL")]
end

subgraph group_support["API support"]
  node_swagger["Swagger docs<br/>[OpenApiConfig.java]"]
end

node_administrator(("Administrator"))

node_administrator -->|"uses"| node_console
node_console -->|"logs in"| node_auth_api
node_console -->|"manages employees"| node_employee_api
node_console -->|"manages categories"| node_category_api
node_console -->|"manages dishes"| node_dish_api
node_console -->|"shows overview"| node_overview
node_console -->|"uses assets"| node_console_assets
node_console -->|"retains login state"| node_auth_api
node_auth_api -->|"JWT login"| node_jwt
node_employee_api -.->|"supports management"| node_employee_service
node_category_api -.->|"supports management"| node_category_service
node_dish_api -.->|"supports management"| node_dish_service
node_employee_api -.->|"persists data"| node_database
node_category_api -.->|"persists data"| node_database
node_dish_api -.->|"persists data"| node_database
node_console -->|"accesses API docs"| node_swagger

click node_console "https://github.com/greyjy/star-takeout-learning/blob/master/backend/src/main/resources/static/index.html"
click node_console_assets "https://github.com/greyjy/star-takeout-learning/tree/master/backend/src/main/resources/static/assets"
click node_auth_api "https://github.com/greyjy/star-takeout-learning/blob/master/backend/src/main/java/com/example/takeout/controller/AuthController.java"
click node_auth_service "https://github.com/greyjy/star-takeout-learning/blob/master/backend/src/main/java/com/example/takeout/service/AuthService.java"
click node_employee_api "https://github.com/greyjy/star-takeout-learning/blob/master/backend/src/main/java/com/example/takeout/controller/EmployeeController.java"
click node_employee_service "https://github.com/greyjy/star-takeout-learning/blob/master/backend/src/main/java/com/example/takeout/service/EmployeeService.java"
click node_category_api "https://github.com/greyjy/star-takeout-learning/blob/master/backend/src/main/java/com/example/takeout/controller/CategoryController.java"
click node_category_service "https://github.com/greyjy/star-takeout-learning/blob/master/backend/src/main/java/com/example/takeout/service/CategoryService.java"
click node_dish_api "https://github.com/greyjy/star-takeout-learning/blob/master/backend/src/main/java/com/example/takeout/controller/DishController.java"
click node_dish_service "https://github.com/greyjy/star-takeout-learning/blob/master/backend/src/main/java/com/example/takeout/service/DishService.java"
click node_jwt "https://github.com/greyjy/star-takeout-learning/tree/master/backend/src/main/java/com/example/takeout/security"
click node_database "https://github.com/greyjy/star-takeout-learning/tree/master/backend/src/main/resources"
click node_swagger "https://github.com/greyjy/star-takeout-learning/blob/master/backend/src/main/java/com/example/takeout/config/OpenApiConfig.java"
click node_overview "https://github.com/greyjy/star-takeout-learning/tree/master/backend/src/main/resources/static/assets"

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_console,node_console_assets,node_overview toneBlue
class node_auth_api,node_auth_service,node_employee_api,node_employee_service,node_category_api,node_category_service,node_dish_api,node_dish_service,node_jwt toneAmber
class node_database toneMint
class node_swagger toneRose
class node_administrator toneIndigo
```

## Components

### Admin console

- [Management console](https://github.com/greyjy/star-takeout-learning/blob/master/backend/src/main/resources/static/index.html): `backend/src/main/resources/static/index.html`
- [Console assets](https://github.com/greyjy/star-takeout-learning/tree/master/backend/src/main/resources/static/assets): `backend/src/main/resources/static/assets`
- [Business overview](https://github.com/greyjy/star-takeout-learning/tree/master/backend/src/main/resources/static/assets): `backend/src/main/resources/static/assets`

### Backend API

- [Administrator login](https://github.com/greyjy/star-takeout-learning/blob/master/backend/src/main/java/com/example/takeout/controller/AuthController.java): `backend/src/main/java/com/example/takeout/controller/AuthController.java`
- [Authentication](https://github.com/greyjy/star-takeout-learning/blob/master/backend/src/main/java/com/example/takeout/service/AuthService.java): `backend/src/main/java/com/example/takeout/service/AuthService.java`
- [Employee management](https://github.com/greyjy/star-takeout-learning/blob/master/backend/src/main/java/com/example/takeout/controller/EmployeeController.java): `backend/src/main/java/com/example/takeout/controller/EmployeeController.java`
- [Employee operations](https://github.com/greyjy/star-takeout-learning/blob/master/backend/src/main/java/com/example/takeout/service/EmployeeService.java): `backend/src/main/java/com/example/takeout/service/EmployeeService.java`
- [Category management](https://github.com/greyjy/star-takeout-learning/blob/master/backend/src/main/java/com/example/takeout/controller/CategoryController.java): `backend/src/main/java/com/example/takeout/controller/CategoryController.java`
- [Category operations](https://github.com/greyjy/star-takeout-learning/blob/master/backend/src/main/java/com/example/takeout/service/CategoryService.java): `backend/src/main/java/com/example/takeout/service/CategoryService.java`
- [Dish management](https://github.com/greyjy/star-takeout-learning/blob/master/backend/src/main/java/com/example/takeout/controller/DishController.java): `backend/src/main/java/com/example/takeout/controller/DishController.java`
- [Dish operations](https://github.com/greyjy/star-takeout-learning/blob/master/backend/src/main/java/com/example/takeout/service/DishService.java): `backend/src/main/java/com/example/takeout/service/DishService.java`
- [JWT security](https://github.com/greyjy/star-takeout-learning/tree/master/backend/src/main/java/com/example/takeout/security): `backend/src/main/java/com/example/takeout/security`

### Persistence

- [H2 / MySQL](https://github.com/greyjy/star-takeout-learning/tree/master/backend/src/main/resources): `backend/src/main/resources`

### API support

- [Swagger docs](https://github.com/greyjy/star-takeout-learning/blob/master/backend/src/main/java/com/example/takeout/config/OpenApiConfig.java): `backend/src/main/java/com/example/takeout/config/OpenApiConfig.java`

### Other components

- **Administrator**

## Connections

- Administrator → Management console: uses (evidence: `README.md`)
- Management console → Administrator login: logs in (evidence: `README.md`)
- Management console → Employee management: manages employees (evidence: `README.md`)
- Management console → Category management: manages categories (evidence: `README.md`)
- Management console → Dish management: manages dishes (evidence: `README.md`)
- Management console → Business overview: shows overview (evidence: `README.md`)
- Management console → Console assets: uses assets (evidence: `README.md`)
- Management console → Administrator login: retains login state (evidence: `README.md`)
- Administrator login → JWT security: JWT login (evidence: `README.md`)
- Employee management → Employee operations: supports management
- Category management → Category operations: supports management
- Dish management → Dish operations: supports management
- Employee management → H2 / MySQL: persists data
- Category management → H2 / MySQL: persists data
- Dish management → H2 / MySQL: persists data
- Management console → Swagger docs: accesses API docs (evidence: `README.md`)
