# tuyetnga09/spring-boot-advanced-projects architecture

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

- Interactive diagram: https://gitdiagram.com/tuyetnga09/spring-boot-advanced-projects
- Repository: https://github.com/tuyetnga09/spring-boot-advanced-projects

## Overview

This repository is a collection of independent Spring Boot tutorials, not one integrated application. Its principal user-facing patterns are request-driven CRUD and account flows; other examples demonstrate scheduled data ingestion, external API lookup, file storage, messaging, and framework integrations. The tree and README establish the breadth of the portfolio, while sampled source confirms only a few internal call paths; uncertain wiring in unsampled examples is intentionally omitted.

Main entry points: [`Springboot-Employee-Search/src/main/java/spring/project/configure/EmployeeController.java`](https://github.com/tuyetnga09/spring-boot-advanced-projects/blob/main/Springboot-Employee-Search/src/main/java/spring/project/configure/EmployeeController.java) (Employee API), [`Springboot-Employee-Search/src/main/java/spring/project/service/EmployeeService.java`](https://github.com/tuyetnga09/spring-boot-advanced-projects/blob/main/Springboot-Employee-Search/src/main/java/spring/project/service/EmployeeService.java) (Employee service), [`Springboot-Employee-Search/src/main/java/spring/project/repository/EmployeeRepository.java`](https://github.com/tuyetnga09/spring-boot-advanced-projects/blob/main/Springboot-Employee-Search/src/main/java/spring/project/repository/EmployeeRepository.java) (Employee repository), [`Springboot-Annotation-LookService/src/main/java/spring/annotation/service/GitHubLookupService.java`](https://github.com/tuyetnga09/spring-boot-advanced-projects/blob/main/Springboot-Annotation-LookService/src/main/java/spring/annotation/service/GitHubLookupService.java) (Async lookup)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web_data["Web and data"]
  node_employee_controller["Employee API"]
  node_employee_service["Employee service"]
  node_employee_repository["Employee repository"]
  node_employee_entity["Employee model<br/>[Employee.java]"]
  node_mongo_crud["Mongo CRUD"]
  node_mongo_store[("Mongo repositories<br/>[MongoDB.java]")]
  node_todo_app["Todo API"]
  node_todo_store[("Todo repository")]
end

subgraph group_accounts["Accounts and security"]
  node_registration_controller["Registration web"]
  node_registration_service["User service"]
  node_user_repository[("User repository")]
  node_security_demo["Security examples"]
end

subgraph group_integrations["External integrations"]
  node_github_lookup["Async lookup"]
  node_github_api["GitHub API"]
  node_covid_ingest["COVID data ingest"]
  node_csv_source["CSV data source"]
  node_s3_service["S3 profile uploads"]
  node_s3[("Amazon S3")]
  node_local_files["Local file storage"]
  node_messaging_demo["ActiveMQ example<br/>[Sender.java]"]
end

subgraph group_frameworks["Framework examples"]
  node_framework_samples["Framework samples"]
  node_swagger_sample["Swagger API example"]
  node_load_balance["Load balancing"]
end

node_developer(("API user"))
node_github_user(("GitHub user"))

node_developer -->|"sends requests"| node_employee_controller
node_employee_controller -->|"calls"| node_employee_service
node_employee_service -->|"queries"| node_employee_repository
node_employee_repository -->|"maps"| node_employee_entity
node_github_user -->|"requests lookup"| node_github_lookup
node_github_lookup -->|"fetches user"| node_github_api
node_covid_ingest -->|"fetches CSV"| node_csv_source
node_s3_service -->|"uploads object"| node_s3

click node_employee_controller "https://github.com/tuyetnga09/spring-boot-advanced-projects/blob/main/Springboot-Employee-Search/src/main/java/spring/project/configure/EmployeeController.java"
click node_employee_service "https://github.com/tuyetnga09/spring-boot-advanced-projects/blob/main/Springboot-Employee-Search/src/main/java/spring/project/service/EmployeeService.java"
click node_employee_repository "https://github.com/tuyetnga09/spring-boot-advanced-projects/blob/main/Springboot-Employee-Search/src/main/java/spring/project/repository/EmployeeRepository.java"
click node_employee_entity "https://github.com/tuyetnga09/spring-boot-advanced-projects/blob/main/Springboot-Employee-Search/src/main/java/spring/project/configure/Employee.java"
click node_mongo_crud "https://github.com/tuyetnga09/spring-boot-advanced-projects/blob/main/SpringBoot-MongoDB-NoSQL-CRUD/src/main/java/com/urunov/mongodb/controller/EmployeeController.java"
click node_mongo_store "https://github.com/tuyetnga09/spring-boot-advanced-projects/blob/main/SpringBoot-MongoDB-NoSQL-CRUD/src/main/java/com/urunov/mongodb/repository/MongoDB.java"
click node_todo_app "https://github.com/tuyetnga09/spring-boot-advanced-projects/blob/main/SpringBoot-Todo-Project/src/main/java/spring/project/controller/ToDoController.java"
click node_todo_store "https://github.com/tuyetnga09/spring-boot-advanced-projects/blob/main/SpringBoot-Todo-Project/src/main/java/spring/project/repository/ToDoRepository.java"
click node_registration_controller "https://github.com/tuyetnga09/spring-boot-advanced-projects/blob/main/Springboot-Registration-Page/src/main/java/aspera/registration/web/UserRegistrationController.java"
click node_registration_service "https://github.com/tuyetnga09/spring-boot-advanced-projects/blob/main/Springboot-Registration-Page/src/main/java/aspera/registration/service/UserServiceImpl.java"
click node_user_repository "https://github.com/tuyetnga09/spring-boot-advanced-projects/blob/main/Springboot-Registration-Page/src/main/java/aspera/registration/repository/UserRepository.java"
click node_security_demo "https://github.com/tuyetnga09/spring-boot-advanced-projects/blob/main/springboot-thymeleaf-security-demo/src/main/java/net/alanbinu/springbootsecurity/security/CustomUserDetailsService.java"
click node_github_lookup "https://github.com/tuyetnga09/spring-boot-advanced-projects/blob/main/Springboot-Annotation-LookService/src/main/java/spring/annotation/service/GitHubLookupService.java"
click node_covid_ingest "https://github.com/tuyetnga09/spring-boot-advanced-projects/blob/main/spring%20covid-19/src/main/java/io/alanbinu/coronavirustracker/services/CoronaVirusDataService.java"
click node_s3_service "https://github.com/tuyetnga09/spring-boot-advanced-projects/blob/main/Project-4.SpringBoot-AWS-S3/backend/src/main/java/com/urunov/profile/UserProfileService.java"
click node_local_files "https://github.com/tuyetnga09/spring-boot-advanced-projects/blob/main/springboot-upload-download-file-rest-api-example/src/main/java/net/alanbinu/springboot/fileuploaddownload/service/FileStorageService.java"
click node_messaging_demo "https://github.com/tuyetnga09/spring-boot-advanced-projects/blob/main/Springboot-ActiveMQ-Sample/src/main/java/com/urunov/activemq/jms/Sender.java"
click node_framework_samples "https://github.com/tuyetnga09/spring-boot-advanced-projects/blob/main/Spring%20Boot%20Configuration/SpringBootConfSource/SpringXML/src/main/java/spring/config/service/MessageProcessImpl.java"
click node_swagger_sample "https://github.com/tuyetnga09/spring-boot-advanced-projects/blob/main/SpringBoot-Swagger2-Enabling/src/main/java/spring/swagger/SwaggerAPIController.java"
click node_load_balance "https://github.com/tuyetnga09/spring-boot-advanced-projects/blob/main/spring-cloud-loadbalance/user-app/src/main/java/com/alanbinu/spring/load/balance/api/RibbonConfiguration.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_employee_controller,node_employee_service,node_employee_repository,node_employee_entity,node_mongo_crud,node_mongo_store,node_todo_app,node_todo_store,node_developer,node_github_user toneBlue
class node_registration_controller,node_registration_service,node_user_repository,node_security_demo toneAmber
class node_github_lookup,node_github_api,node_covid_ingest,node_csv_source,node_s3_service,node_s3,node_local_files,node_messaging_demo toneMint
class node_framework_samples,node_swagger_sample,node_load_balance toneRose
```

## Components

### Web and data

- [Employee API](https://github.com/tuyetnga09/spring-boot-advanced-projects/blob/main/Springboot-Employee-Search/src/main/java/spring/project/configure/EmployeeController.java): `Springboot-Employee-Search/src/main/java/spring/project/configure/EmployeeController.java`
- [Employee service](https://github.com/tuyetnga09/spring-boot-advanced-projects/blob/main/Springboot-Employee-Search/src/main/java/spring/project/service/EmployeeService.java): `Springboot-Employee-Search/src/main/java/spring/project/service/EmployeeService.java`
- [Employee repository](https://github.com/tuyetnga09/spring-boot-advanced-projects/blob/main/Springboot-Employee-Search/src/main/java/spring/project/repository/EmployeeRepository.java): `Springboot-Employee-Search/src/main/java/spring/project/repository/EmployeeRepository.java`
- [Employee model](https://github.com/tuyetnga09/spring-boot-advanced-projects/blob/main/Springboot-Employee-Search/src/main/java/spring/project/configure/Employee.java): `Springboot-Employee-Search/src/main/java/spring/project/configure/Employee.java`
- [Mongo CRUD](https://github.com/tuyetnga09/spring-boot-advanced-projects/blob/main/SpringBoot-MongoDB-NoSQL-CRUD/src/main/java/com/urunov/mongodb/controller/EmployeeController.java): `SpringBoot-MongoDB-NoSQL-CRUD/src/main/java/com/urunov/mongodb/controller/EmployeeController.java`
- [Mongo repositories](https://github.com/tuyetnga09/spring-boot-advanced-projects/blob/main/SpringBoot-MongoDB-NoSQL-CRUD/src/main/java/com/urunov/mongodb/repository/MongoDB.java): `SpringBoot-MongoDB-NoSQL-CRUD/src/main/java/com/urunov/mongodb/repository/MongoDB.java`
- [Todo API](https://github.com/tuyetnga09/spring-boot-advanced-projects/blob/main/SpringBoot-Todo-Project/src/main/java/spring/project/controller/ToDoController.java): `SpringBoot-Todo-Project/src/main/java/spring/project/controller/ToDoController.java`
- [Todo repository](https://github.com/tuyetnga09/spring-boot-advanced-projects/blob/main/SpringBoot-Todo-Project/src/main/java/spring/project/repository/ToDoRepository.java): `SpringBoot-Todo-Project/src/main/java/spring/project/repository/ToDoRepository.java`

### Accounts and security

- [Registration web](https://github.com/tuyetnga09/spring-boot-advanced-projects/blob/main/Springboot-Registration-Page/src/main/java/aspera/registration/web/UserRegistrationController.java): `Springboot-Registration-Page/src/main/java/aspera/registration/web/UserRegistrationController.java`
- [User service](https://github.com/tuyetnga09/spring-boot-advanced-projects/blob/main/Springboot-Registration-Page/src/main/java/aspera/registration/service/UserServiceImpl.java): `Springboot-Registration-Page/src/main/java/aspera/registration/service/UserServiceImpl.java`
- [User repository](https://github.com/tuyetnga09/spring-boot-advanced-projects/blob/main/Springboot-Registration-Page/src/main/java/aspera/registration/repository/UserRepository.java): `Springboot-Registration-Page/src/main/java/aspera/registration/repository/UserRepository.java`
- [Security examples](https://github.com/tuyetnga09/spring-boot-advanced-projects/blob/main/springboot-thymeleaf-security-demo/src/main/java/net/alanbinu/springbootsecurity/security/CustomUserDetailsService.java): `springboot-thymeleaf-security-demo/src/main/java/net/alanbinu/springbootsecurity/security/CustomUserDetailsService.java`

### External integrations

- [Async lookup](https://github.com/tuyetnga09/spring-boot-advanced-projects/blob/main/Springboot-Annotation-LookService/src/main/java/spring/annotation/service/GitHubLookupService.java): `Springboot-Annotation-LookService/src/main/java/spring/annotation/service/GitHubLookupService.java`
- **GitHub API**
- [COVID data ingest](https://github.com/tuyetnga09/spring-boot-advanced-projects/blob/main/spring%20covid-19/src/main/java/io/alanbinu/coronavirustracker/services/CoronaVirusDataService.java): `spring covid-19/src/main/java/io/alanbinu/coronavirustracker/services/CoronaVirusDataService.java`
- **CSV data source**
- [S3 profile uploads](https://github.com/tuyetnga09/spring-boot-advanced-projects/blob/main/Project-4.SpringBoot-AWS-S3/backend/src/main/java/com/urunov/profile/UserProfileService.java): `Project-4.SpringBoot-AWS-S3/backend/src/main/java/com/urunov/profile/UserProfileService.java`
- **Amazon S3**
- [Local file storage](https://github.com/tuyetnga09/spring-boot-advanced-projects/blob/main/springboot-upload-download-file-rest-api-example/src/main/java/net/alanbinu/springboot/fileuploaddownload/service/FileStorageService.java): `springboot-upload-download-file-rest-api-example/src/main/java/net/alanbinu/springboot/fileuploaddownload/service/FileStorageService.java`
- [ActiveMQ example](https://github.com/tuyetnga09/spring-boot-advanced-projects/blob/main/Springboot-ActiveMQ-Sample/src/main/java/com/urunov/activemq/jms/Sender.java): `Springboot-ActiveMQ-Sample/src/main/java/com/urunov/activemq/jms/Sender.java`

### Framework examples

- [Framework samples](https://github.com/tuyetnga09/spring-boot-advanced-projects/blob/main/Spring%20Boot%20Configuration/SpringBootConfSource/SpringXML/src/main/java/spring/config/service/MessageProcessImpl.java): `Spring Boot Configuration/SpringBootConfSource/SpringXML/src/main/java/spring/config/service/MessageProcessImpl.java`
- [Swagger API example](https://github.com/tuyetnga09/spring-boot-advanced-projects/blob/main/SpringBoot-Swagger2-Enabling/src/main/java/spring/swagger/SwaggerAPIController.java): `SpringBoot-Swagger2-Enabling/src/main/java/spring/swagger/SwaggerAPIController.java`
- [Load balancing](https://github.com/tuyetnga09/spring-boot-advanced-projects/blob/main/spring-cloud-loadbalance/user-app/src/main/java/com/alanbinu/spring/load/balance/api/RibbonConfiguration.java): `spring-cloud-loadbalance/user-app/src/main/java/com/alanbinu/spring/load/balance/api/RibbonConfiguration.java`

### Other components

- **API user**
- **GitHub user**

## Connections

- API user → Employee API: sends requests
- Employee API → Employee service: calls
- Employee service → Employee repository: queries
- Employee repository → Employee model: maps
- GitHub user → Async lookup: requests lookup
- Async lookup → GitHub API: fetches user
- COVID data ingest → CSV data source: fetches CSV
- S3 profile uploads → Amazon S3: uploads object
