# sahayabarbaralpricy/bone-fracture-detection architecture

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

- Interactive diagram: https://gitdiagram.com/sahayabarbaralpricy/bone-fracture-detection
- Repository: https://github.com/sahayabarbaralpricy/bone-fracture-detection

## Overview

This Flask application supports user accounts and a logged-in X-ray workflow: upload an image with patient details, run fracture classification, save the result, and display it. Users can then review history, edit profiles, and download reports. The graph includes the app setup, query layer, image preprocessing, and model. Report generation is referenced by the sampled report route, but its implementation is absent from the supplied tree, so that subsystem’s path is unknown; upload-route internals were not excerpted.

Main entry points: [`app.py`](https://github.com/sahayabarbaralpricy/bone-fracture-detection/blob/main/app.py) (Flask app), [`templates`](https://github.com/sahayabarbaralpricy/bone-fracture-detection/tree/main/templates) (Page templates), [`database/queries.py`](https://github.com/sahayabarbaralpricy/bone-fracture-detection/blob/main/database/queries.py) (Database queries), [`routes/prediction.py`](https://github.com/sahayabarbaralpricy/bone-fracture-detection/blob/main/routes/prediction.py) (Prediction handler)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web application"]
  node_app["Flask app<br/>[app.py]"]
  node_config["App configuration<br/>[config.py]"]
  node_views["Page templates"]
end

subgraph group_clinical["X-ray assessment"]
  node_upload["X-ray upload<br/>[upload.py]"]
  node_prediction["Prediction handler<br/>[prediction.py]"]
  node_preprocess["Image preprocessing<br/>[preprocess.py]"]
  node_classifier["Fracture classifier<br/>[predict.py]"]
  node_model_file["Trained model"]
  node_image_store[("Uploaded images")]
end

subgraph group_data["Persistence"]
  node_queries["Database queries<br/>[queries.py]"]
  node_mysql[("MySQL database<br/>[db.py]")]
end

subgraph group_account["User and records"]
  node_auth["Login and registration<br/>[auth.py]"]
  node_dashboard["Dashboard<br/>[dashboard.py]"]
  node_history["Prediction history<br/>[history.py]"]
  node_profile["User profile<br/>[profile.py]"]
  node_report["Report download<br/>[report.py]"]
  node_pdf_generator["PDF generation"]
end

node_user(("Website user"))

node_user -->|"uses"| node_app
node_app -->|"loads"| node_config
node_app -->|"initializes"| node_mysql
node_app -->|"registers"| node_auth
node_app -->|"registers"| node_dashboard
node_app -->|"registers"| node_upload
node_app -->|"registers"| node_prediction
node_app -->|"registers"| node_history
node_app -->|"registers"| node_profile
node_app -->|"registers"| node_report
node_auth -->|"reads and writes"| node_queries
node_auth -->|"renders"| node_views
node_dashboard -->|"renders"| node_views
node_upload -.->|"renders"| node_views
node_prediction -->|"saves image"| node_image_store
node_prediction -->|"requests classification"| node_classifier
node_prediction -->|"saves result"| node_queries
node_prediction -->|"renders result"| node_views
node_classifier -->|"preprocesses image"| node_preprocess
node_classifier -->|"loads model"| node_model_file
node_history -->|"reads history"| node_queries
node_history -->|"renders"| node_views
node_profile -->|"reads and updates"| node_queries
node_profile -->|"renders"| node_views
node_report -->|"reads records"| node_queries
node_report -->|"generates PDF"| node_pdf_generator
node_report -->|"renders reports"| node_views
node_queries -->|"queries and updates"| node_mysql

click node_app "https://github.com/sahayabarbaralpricy/bone-fracture-detection/blob/main/app.py"
click node_config "https://github.com/sahayabarbaralpricy/bone-fracture-detection/blob/main/config.py"
click node_views "https://github.com/sahayabarbaralpricy/bone-fracture-detection/tree/main/templates"
click node_auth "https://github.com/sahayabarbaralpricy/bone-fracture-detection/blob/main/routes/auth.py"
click node_dashboard "https://github.com/sahayabarbaralpricy/bone-fracture-detection/blob/main/routes/dashboard.py"
click node_upload "https://github.com/sahayabarbaralpricy/bone-fracture-detection/blob/main/routes/upload.py"
click node_prediction "https://github.com/sahayabarbaralpricy/bone-fracture-detection/blob/main/routes/prediction.py"
click node_preprocess "https://github.com/sahayabarbaralpricy/bone-fracture-detection/blob/main/model/preprocess.py"
click node_classifier "https://github.com/sahayabarbaralpricy/bone-fracture-detection/blob/main/model/predict.py"
click node_model_file "https://github.com/sahayabarbaralpricy/bone-fracture-detection/blob/main/model/bone_fracture_model.h5"
click node_history "https://github.com/sahayabarbaralpricy/bone-fracture-detection/blob/main/routes/history.py"
click node_profile "https://github.com/sahayabarbaralpricy/bone-fracture-detection/blob/main/routes/profile.py"
click node_report "https://github.com/sahayabarbaralpricy/bone-fracture-detection/blob/main/routes/report.py"
click node_queries "https://github.com/sahayabarbaralpricy/bone-fracture-detection/blob/main/database/queries.py"
click node_mysql "https://github.com/sahayabarbaralpricy/bone-fracture-detection/blob/main/database/db.py"

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_config,node_views,node_user toneBlue
class node_upload,node_prediction,node_preprocess,node_classifier,node_model_file,node_image_store toneAmber
class node_queries,node_mysql toneMint
class node_auth,node_dashboard,node_history,node_profile,node_report,node_pdf_generator toneRose
```

## Components

### Web application

- [Flask app](https://github.com/sahayabarbaralpricy/bone-fracture-detection/blob/main/app.py): `app.py`
- [App configuration](https://github.com/sahayabarbaralpricy/bone-fracture-detection/blob/main/config.py): `config.py`
- [Page templates](https://github.com/sahayabarbaralpricy/bone-fracture-detection/tree/main/templates): `templates`

### X-ray assessment

- [X-ray upload](https://github.com/sahayabarbaralpricy/bone-fracture-detection/blob/main/routes/upload.py): `routes/upload.py`
- [Prediction handler](https://github.com/sahayabarbaralpricy/bone-fracture-detection/blob/main/routes/prediction.py): `routes/prediction.py`
- [Image preprocessing](https://github.com/sahayabarbaralpricy/bone-fracture-detection/blob/main/model/preprocess.py): `model/preprocess.py`
- [Fracture classifier](https://github.com/sahayabarbaralpricy/bone-fracture-detection/blob/main/model/predict.py): `model/predict.py`
- [Trained model](https://github.com/sahayabarbaralpricy/bone-fracture-detection/blob/main/model/bone_fracture_model.h5): `model/bone_fracture_model.h5`
- **Uploaded images**

### Persistence

- [Database queries](https://github.com/sahayabarbaralpricy/bone-fracture-detection/blob/main/database/queries.py): `database/queries.py`
- [MySQL database](https://github.com/sahayabarbaralpricy/bone-fracture-detection/blob/main/database/db.py): `database/db.py`

### User and records

- [Login and registration](https://github.com/sahayabarbaralpricy/bone-fracture-detection/blob/main/routes/auth.py): `routes/auth.py`
- [Dashboard](https://github.com/sahayabarbaralpricy/bone-fracture-detection/blob/main/routes/dashboard.py): `routes/dashboard.py`
- [Prediction history](https://github.com/sahayabarbaralpricy/bone-fracture-detection/blob/main/routes/history.py): `routes/history.py`
- [User profile](https://github.com/sahayabarbaralpricy/bone-fracture-detection/blob/main/routes/profile.py): `routes/profile.py`
- [Report download](https://github.com/sahayabarbaralpricy/bone-fracture-detection/blob/main/routes/report.py): `routes/report.py`
- **PDF generation**

### Other components

- **Website user**

## Connections

- Website user → Flask app: uses (evidence: `README.md`)
- Flask app → App configuration: loads (evidence: `app.py`)
- Flask app → MySQL database: initializes (evidence: `app.py`)
- Flask app → Login and registration: registers (evidence: `app.py`)
- Flask app → Dashboard: registers (evidence: `app.py`)
- Flask app → X-ray upload: registers (evidence: `app.py`)
- Flask app → Prediction handler: registers (evidence: `app.py`)
- Flask app → Prediction history: registers (evidence: `app.py`)
- Flask app → User profile: registers (evidence: `app.py`)
- Flask app → Report download: registers (evidence: `app.py`)
- Login and registration → Database queries: reads and writes (evidence: `routes/auth.py`)
- Login and registration → Page templates: renders (evidence: `routes/auth.py`)
- Dashboard → Page templates: renders (evidence: `routes/dashboard.py`)
- X-ray upload → Page templates: renders
- Prediction handler → Uploaded images: saves image (evidence: `routes/prediction.py`)
- Prediction handler → Fracture classifier: requests classification (evidence: `routes/prediction.py`)
- Prediction handler → Database queries: saves result (evidence: `routes/prediction.py`)
- Prediction handler → Page templates: renders result (evidence: `routes/prediction.py`)
- Fracture classifier → Image preprocessing: preprocesses image (evidence: `model/predict.py`)
- Fracture classifier → Trained model: loads model (evidence: `model/predict.py`)
- Prediction history → Database queries: reads history (evidence: `routes/history.py`)
- Prediction history → Page templates: renders (evidence: `routes/history.py`)
- User profile → Database queries: reads and updates (evidence: `routes/profile.py`)
- User profile → Page templates: renders (evidence: `routes/profile.py`)
- Report download → Database queries: reads records (evidence: `routes/report.py`)
- Report download → PDF generation: generates PDF (evidence: `routes/report.py`)
- Report download → Page templates: renders reports (evidence: `routes/report.py`)
- Database queries → MySQL database: queries and updates (evidence: `database/queries.py`)
