# caro-d54/medscan-ai_backend architecture

> Architecture diagram of the GitHub repository caro-d54/medscan-ai_backend, 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/caro-d54/medscan-ai_backend
- Repository: https://github.com/caro-d54/medscan-ai_backend

## Overview

MedScan AI is a Spring Boot application for serving medicament records and simple web views. The main data workflow is a client request to the medicament API, which reads or saves records through a Spring Data repository backed by PostgreSQL. The README also documents mobile-client CORS and Hibernate schema management; their detailed wiring is not visible in the sampled source, and the tree contains no service layer despite the README’s architecture description.

Main entry points: [`src/main/java/com/medscan/app_med/controller/MedicamentController.java`](https://github.com/caro-d54/medscan-ai_backend/blob/main/src/main/java/com/medscan/app_med/controller/MedicamentController.java) (Medicament API), [`src/main/java/com/medscan/app_med/controller/HomeController.java`](https://github.com/caro-d54/medscan-ai_backend/blob/main/src/main/java/com/medscan/app_med/controller/HomeController.java) (Home routes), [`src/main/java/com/medscan/app_med/AppMedApplication.java`](https://github.com/caro-d54/medscan-ai_backend/blob/main/src/main/java/com/medscan/app_med/AppMedApplication.java) (Spring Boot app), [`src/main/java/com/medscan/app_med/repository/MedicamentRepo.java`](https://github.com/caro-d54/medscan-ai_backend/blob/main/src/main/java/com/medscan/app_med/repository/MedicamentRepo.java) (Medicament repository)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web and API"]
  node_med_api["Medicament API"]
  node_home_routes["Home routes"]
end

subgraph group_data["Medicament data"]
  node_repo["Medicament repository"]
  node_medicament["Medicament entity<br/>[Medicament.java]"]
end

subgraph group_runtime["Application and views"]
  node_app["Spring Boot app"]
  node_config["Application config<br/>[application.yaml]"]
  node_home_view["Home view<br/>[home.html]"]
  node_user_view["User view<br/>[user.html]"]
end

node_client(("API client"))
node_mobile(("Mobile client"))
node_postgres[("PostgreSQL")]

node_client -->|"requests records"| node_med_api
node_mobile -.->|"CORS requests"| node_med_api
node_med_api -->|"queries and saves"| node_repo
node_repo -->|"reads and writes"| node_postgres
node_medicament -->|"maps table"| node_postgres
node_home_routes -->|"returns view"| node_home_view
node_home_routes -->|"returns view"| node_user_view
node_app -->|"starts Spring app"| node_med_api
node_app -->|"starts Spring app"| node_home_routes

click node_med_api "https://github.com/caro-d54/medscan-ai_backend/blob/main/src/main/java/com/medscan/app_med/controller/MedicamentController.java"
click node_home_routes "https://github.com/caro-d54/medscan-ai_backend/blob/main/src/main/java/com/medscan/app_med/controller/HomeController.java"
click node_app "https://github.com/caro-d54/medscan-ai_backend/blob/main/src/main/java/com/medscan/app_med/AppMedApplication.java"
click node_config "https://github.com/caro-d54/medscan-ai_backend/blob/main/src/main/resources/application.yaml"
click node_home_view "https://github.com/caro-d54/medscan-ai_backend/blob/main/src/main/resources/templates/home.html"
click node_user_view "https://github.com/caro-d54/medscan-ai_backend/blob/main/src/main/resources/templates/user.html"
click node_repo "https://github.com/caro-d54/medscan-ai_backend/blob/main/src/main/java/com/medscan/app_med/repository/MedicamentRepo.java"
click node_medicament "https://github.com/caro-d54/medscan-ai_backend/blob/main/src/main/java/com/medscan/app_med/model/Medicament.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_med_api,node_home_routes,node_client,node_mobile toneBlue
class node_repo,node_medicament,node_postgres toneAmber
class node_app,node_config,node_home_view,node_user_view toneMint
```

## Components

### Web and API

- [Medicament API](https://github.com/caro-d54/medscan-ai_backend/blob/main/src/main/java/com/medscan/app_med/controller/MedicamentController.java): `src/main/java/com/medscan/app_med/controller/MedicamentController.java`
- [Home routes](https://github.com/caro-d54/medscan-ai_backend/blob/main/src/main/java/com/medscan/app_med/controller/HomeController.java): `src/main/java/com/medscan/app_med/controller/HomeController.java`

### Medicament data

- [Medicament repository](https://github.com/caro-d54/medscan-ai_backend/blob/main/src/main/java/com/medscan/app_med/repository/MedicamentRepo.java): `src/main/java/com/medscan/app_med/repository/MedicamentRepo.java`
- [Medicament entity](https://github.com/caro-d54/medscan-ai_backend/blob/main/src/main/java/com/medscan/app_med/model/Medicament.java): `src/main/java/com/medscan/app_med/model/Medicament.java`

### Application and views

- [Spring Boot app](https://github.com/caro-d54/medscan-ai_backend/blob/main/src/main/java/com/medscan/app_med/AppMedApplication.java): `src/main/java/com/medscan/app_med/AppMedApplication.java`
- [Application config](https://github.com/caro-d54/medscan-ai_backend/blob/main/src/main/resources/application.yaml): `src/main/resources/application.yaml`
- [Home view](https://github.com/caro-d54/medscan-ai_backend/blob/main/src/main/resources/templates/home.html): `src/main/resources/templates/home.html`
- [User view](https://github.com/caro-d54/medscan-ai_backend/blob/main/src/main/resources/templates/user.html): `src/main/resources/templates/user.html`

### Other components

- **API client**
- **Mobile client**
- **PostgreSQL**

## Connections

- API client → Medicament API: requests records
- Mobile client → Medicament API: CORS requests
- Medicament API → Medicament repository: queries and saves
- Medicament repository → PostgreSQL: reads and writes
- Medicament entity → PostgreSQL: maps table
- Home routes → Home view: returns view
- Home routes → User view: returns view
- Spring Boot app → Medicament API: starts Spring app
- Spring Boot app → Home routes: starts Spring app
