# agusgrandon/gestion_de_alumnos architecture

> Architecture diagram of the GitHub repository agusgrandon/gestion_de_alumnos, 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/agusgrandon/gestion_de_alumnos
- Repository: https://github.com/agusgrandon/gestion_de_alumnos

## Overview

This is a command-line student-record manager. The user starts at the interactive menu, which loads stored records and dispatches registration, listing, search, modification, deletion, or statistics. Student operations use validation where needed and persist changes through the JSON file helper; statistics are computed from the in-memory records. The workflow and module responsibilities are supported by the sampled source; the README documents the JSON data file as persistent storage.

Main entry points: [`menu.py`](https://github.com/agusgrandon/gestion_de_alumnos/blob/main/menu.py) (Interactive menu), [`archivos.py`](https://github.com/agusgrandon/gestion_de_alumnos/blob/main/archivos.py) (JSON file access), [`alumnos.py`](https://github.com/agusgrandon/gestion_de_alumnos/blob/main/alumnos.py) (Register student), [`main.py`](https://github.com/agusgrandon/gestion_de_alumnos/blob/main/main.py) (Program entry)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Entry and menu"]
  node_main["Program entry<br/>[main.py]"]
  node_menu["Interactive menu<br/>[menu.py]"]
  node_ui["Menu and prompts<br/>[utilidades.py]"]
end

subgraph group_records["Student records"]
  node_register["Register student<br/>[alumnos.py]"]
  node_list["List students<br/>[alumnos.py]"]
  node_search["Search student<br/>[alumnos.py]"]
  node_modify["Modify student<br/>[alumnos.py]"]
  node_delete["Delete student<br/>[alumnos.py]"]
  node_validate["Input validation<br/>[validaciones.py]"]
  node_statistics["Student statistics<br/>[estadisticas.py]"]
end

subgraph group_storage["Persistence"]
  node_file_ops["JSON file access<br/>[archivos.py]"]
  node_student_data[("Student records<br/>[alumnos.json]")]
end

node_user(("User"))

node_user -->|"starts"| node_main
node_main -->|"calls"| node_menu
node_user -->|"chooses options"| node_menu
node_menu -->|"loads records"| node_file_ops
node_file_ops -->|"reads"| node_student_data
node_menu -->|"displays options"| node_ui
node_menu -->|"dispatches"| node_register
node_menu -->|"dispatches"| node_list
node_menu -->|"dispatches"| node_search
node_menu -->|"dispatches"| node_modify
node_menu -->|"dispatches"| node_delete
node_menu -->|"dispatches"| node_statistics
node_register -->|"validates inputs"| node_validate
node_modify -->|"validates edits"| node_validate
node_register -->|"saves records"| node_file_ops
node_modify -->|"saves records"| node_file_ops
node_delete -->|"saves records"| node_file_ops
node_file_ops -->|"writes"| node_student_data

click node_main "https://github.com/agusgrandon/gestion_de_alumnos/blob/main/main.py"
click node_menu "https://github.com/agusgrandon/gestion_de_alumnos/blob/main/menu.py"
click node_ui "https://github.com/agusgrandon/gestion_de_alumnos/blob/main/utilidades.py"
click node_register "https://github.com/agusgrandon/gestion_de_alumnos/blob/main/alumnos.py"
click node_list "https://github.com/agusgrandon/gestion_de_alumnos/blob/main/alumnos.py"
click node_search "https://github.com/agusgrandon/gestion_de_alumnos/blob/main/alumnos.py"
click node_modify "https://github.com/agusgrandon/gestion_de_alumnos/blob/main/alumnos.py"
click node_delete "https://github.com/agusgrandon/gestion_de_alumnos/blob/main/alumnos.py"
click node_validate "https://github.com/agusgrandon/gestion_de_alumnos/blob/main/validaciones.py"
click node_statistics "https://github.com/agusgrandon/gestion_de_alumnos/blob/main/estadisticas.py"
click node_file_ops "https://github.com/agusgrandon/gestion_de_alumnos/blob/main/archivos.py"
click node_student_data "https://github.com/agusgrandon/gestion_de_alumnos/blob/main/data/alumnos.json"

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_main,node_menu,node_ui,node_user toneBlue
class node_register,node_list,node_search,node_modify,node_delete,node_validate,node_statistics toneAmber
class node_file_ops,node_student_data toneMint
```

## Components

### Entry and menu

- [Program entry](https://github.com/agusgrandon/gestion_de_alumnos/blob/main/main.py): `main.py`
- [Interactive menu](https://github.com/agusgrandon/gestion_de_alumnos/blob/main/menu.py): `menu.py`
- [Menu and prompts](https://github.com/agusgrandon/gestion_de_alumnos/blob/main/utilidades.py): `utilidades.py`

### Student records

- [Register student](https://github.com/agusgrandon/gestion_de_alumnos/blob/main/alumnos.py): `alumnos.py`
- [List students](https://github.com/agusgrandon/gestion_de_alumnos/blob/main/alumnos.py): `alumnos.py`
- [Search student](https://github.com/agusgrandon/gestion_de_alumnos/blob/main/alumnos.py): `alumnos.py`
- [Modify student](https://github.com/agusgrandon/gestion_de_alumnos/blob/main/alumnos.py): `alumnos.py`
- [Delete student](https://github.com/agusgrandon/gestion_de_alumnos/blob/main/alumnos.py): `alumnos.py`
- [Input validation](https://github.com/agusgrandon/gestion_de_alumnos/blob/main/validaciones.py): `validaciones.py`
- [Student statistics](https://github.com/agusgrandon/gestion_de_alumnos/blob/main/estadisticas.py): `estadisticas.py`

### Persistence

- [JSON file access](https://github.com/agusgrandon/gestion_de_alumnos/blob/main/archivos.py): `archivos.py`
- [Student records](https://github.com/agusgrandon/gestion_de_alumnos/blob/main/data/alumnos.json): `data/alumnos.json`

### Other components

- **User**

## Connections

- User → Program entry: starts
- Program entry → Interactive menu: calls
- User → Interactive menu: chooses options
- Interactive menu → JSON file access: loads records
- JSON file access → Student records: reads
- Interactive menu → Menu and prompts: displays options
- Interactive menu → Register student: dispatches
- Interactive menu → List students: dispatches
- Interactive menu → Search student: dispatches
- Interactive menu → Modify student: dispatches
- Interactive menu → Delete student: dispatches
- Interactive menu → Student statistics: dispatches
- Register student → Input validation: validates inputs
- Modify student → Input validation: validates edits
- Register student → JSON file access: saves records
- Modify student → JSON file access: saves records
- Delete student → JSON file access: saves records
- JSON file access → Student records: writes
