# sajid73/avisight-bird_species_classifier architecture

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

- Interactive diagram: https://gitdiagram.com/sajid73/avisight-bird_species_classifier
- Repository: https://github.com/sajid73/avisight-bird_species_classifier

## Overview

This is a bird-species image-classification project: it combines a Streamlit prediction interface with model-training experiments and dataset/evaluation utilities. The principal user workflow is image upload, preprocessing, model prediction, and display of a species label. The README describes notebook training and evaluation capabilities, but those notebook contents were not sampled, so their internal wiring is not shown; the referenced model artifacts and upload directory are also absent from the tree.

Main entry points: [`app.py`](https://github.com/sajid73/avisight-bird_species_classifier/blob/main/app.py) (Streamlit app), [`Models`](https://github.com/sajid73/avisight-bird_species_classifier/tree/main/Models) (Training experiments), [`Utils/All_folders.py`](https://github.com/sajid73/avisight-bird_species_classifier/blob/main/Utils/All_folders.py) (Folder preparation), [`Utils/model_testing.ipynb`](https://github.com/sajid73/avisight-bird_species_classifier/blob/main/Utils/model_testing.ipynb) (Model testing)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_inference["Image inference"]
  node_app["Streamlit app<br/>[app.py]"]
  node_preprocess["Image preprocessing<br/>[app.py]"]
  node_predict["Model prediction<br/>[app.py]"]
  node_labels["Species labels<br/>[app.py]"]
  node_uploads["Uploaded images"]
  node_model["VGG16 artifact"]
end

subgraph group_experiments["Model experiments"]
  node_training["Training experiments"]
end

subgraph group_data["Dataset and evaluation"]
  node_folder_helper["Folder preparation<br/>[All_folders.py]"]
  node_class_names["Folder names<br/>[folders_name.txt]"]
  node_classification_utils["Classification utilities"]
  node_evaluation["Model testing"]
end

node_user(("Image user"))

node_user -->|"uploads image"| node_app
node_app -->|"writes image"| node_uploads
node_app -->|"calls"| node_preprocess
node_preprocess -->|"provides image"| node_predict
node_predict -->|"predicts with"| node_model
node_predict -->|"maps class"| node_labels
node_app -->|"shows result"| node_user
node_training -.->|"saves model"| node_model
node_folder_helper -->|"writes names"| node_class_names
node_evaluation -.->|"loads model"| node_model

click node_app "https://github.com/sajid73/avisight-bird_species_classifier/blob/main/app.py"
click node_preprocess "https://github.com/sajid73/avisight-bird_species_classifier/blob/main/app.py"
click node_predict "https://github.com/sajid73/avisight-bird_species_classifier/blob/main/app.py"
click node_labels "https://github.com/sajid73/avisight-bird_species_classifier/blob/main/app.py"
click node_training "https://github.com/sajid73/avisight-bird_species_classifier/tree/main/Models"
click node_folder_helper "https://github.com/sajid73/avisight-bird_species_classifier/blob/main/Utils/All_folders.py"
click node_class_names "https://github.com/sajid73/avisight-bird_species_classifier/blob/main/Utils/folders_name.txt"
click node_classification_utils "https://github.com/sajid73/avisight-bird_species_classifier/blob/main/Utils/Bird_Classification.py"
click node_evaluation "https://github.com/sajid73/avisight-bird_species_classifier/blob/main/Utils/model_testing.ipynb"

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_preprocess,node_predict,node_labels,node_uploads,node_model,node_user toneBlue
class node_training toneAmber
class node_folder_helper,node_class_names,node_classification_utils,node_evaluation toneMint
```

## Components

### Image inference

- [Streamlit app](https://github.com/sajid73/avisight-bird_species_classifier/blob/main/app.py): `app.py`
- [Image preprocessing](https://github.com/sajid73/avisight-bird_species_classifier/blob/main/app.py): `app.py`
- [Model prediction](https://github.com/sajid73/avisight-bird_species_classifier/blob/main/app.py): `app.py`
- [Species labels](https://github.com/sajid73/avisight-bird_species_classifier/blob/main/app.py): `app.py`
- **Uploaded images**
- **VGG16 artifact**

### Model experiments

- [Training experiments](https://github.com/sajid73/avisight-bird_species_classifier/tree/main/Models): `Models`

### Dataset and evaluation

- [Folder preparation](https://github.com/sajid73/avisight-bird_species_classifier/blob/main/Utils/All_folders.py): `Utils/All_folders.py`
- [Folder names](https://github.com/sajid73/avisight-bird_species_classifier/blob/main/Utils/folders_name.txt): `Utils/folders_name.txt`
- [Classification utilities](https://github.com/sajid73/avisight-bird_species_classifier/blob/main/Utils/Bird_Classification.py): `Utils/Bird_Classification.py`
- [Model testing](https://github.com/sajid73/avisight-bird_species_classifier/blob/main/Utils/model_testing.ipynb): `Utils/model_testing.ipynb`

### Other components

- **Image user**

## Connections

- Image user → Streamlit app: uploads image
- Streamlit app → Uploaded images: writes image
- Streamlit app → Image preprocessing: calls
- Image preprocessing → Model prediction: provides image
- Model prediction → VGG16 artifact: predicts with
- Model prediction → Species labels: maps class
- Streamlit app → Image user: shows result
- Training experiments → VGG16 artifact: saves model
- Folder preparation → Folder names: writes names
- Model testing → VGG16 artifact: loads model
