# criscnsn/ada2 architecture

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

- Interactive diagram: https://gitdiagram.com/criscnsn/ada2
- Repository: https://github.com/criscnsn/ada2

## Overview

AdaDos is a JavaFX student-grade capture application with login, roster import, editable grade entry, and CSV/PDF reporting. Its primary flow is launched by Main, authenticates against stored credential records, then opens the grade-capture interface to load students, validate grades, and export results. The repository also retains a separate console-based capture workflow. Edges reflect the sampled source and SOURCE INDEX references; the README is empty, and the FXML wiring is not sampled.

Main entry points: [`src/main/java/org/cris/AdaDos/controllers/CapturaController.java`](https://github.com/criscnsn/ada2/blob/master/src/main/java/org/cris/AdaDos/controllers/CapturaController.java) (Grade capture controller), [`src/main/java/org/cris/AdaDos/controllers/MainController.java`](https://github.com/criscnsn/ada2/blob/master/src/main/java/org/cris/AdaDos/controllers/MainController.java) (Login controller), [`src/main/java/org/cris/AdaDos/tareaUno/CapturadorDeCalificaciones.java`](https://github.com/criscnsn/ada2/blob/master/src/main/java/org/cris/AdaDos/tareaUno/CapturadorDeCalificaciones.java) (Console capture), [`src/main/java/org/cris/AdaDos/TareaTres/GeneradorPDF.java`](https://github.com/criscnsn/ada2/blob/master/src/main/java/org/cris/AdaDos/TareaTres/GeneradorPDF.java) (PDF generator)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_launch["Application and access"]
  node_main["JavaFX launcher<br/>[Main.java]"]
  node_loginview["Login screen<br/>[MainView.fxml]"]
  node_login["Login controller"]
  node_security["Password validation<br/>[Security.java]"]
  node_credentials[("Hashed credentials")]
end

subgraph group_capture["Grade capture"]
  node_captureview["Grade-entry screen"]
  node_capturecontroller["Grade capture controller"]
  node_roster["Student roster<br/>[tabla_alumnos.csv]"]
  node_students["Student records<br/>[Alumno.java]"]
  node_effects["Button effects<br/>[UIEfectos.java]"]
end

subgraph group_reports["Report generation"]
  node_csvexport["CSV exporter<br/>[ExportadorCSV.java]"]
  node_pdf["PDF generator<br/>[GeneradorPDF.java]"]
end

subgraph group_legacy["Console workflow"]
  node_consolecapture["Console capture"]
  node_consolemodel["Console grade workflow<br/>[tareaUno.java]"]
end

node_user(("User"))

node_user -->|"launches"| node_main
node_main -->|"loads"| node_loginview
node_login -->|"reads"| node_credentials
node_login -->|"validates password"| node_security
node_login -->|"opens after login"| node_captureview
node_user -.->|"enters grades"| node_capturecontroller
node_capturecontroller -->|"reads roster"| node_roster
node_capturecontroller -->|"creates and edits"| node_students
node_capturecontroller -->|"styles buttons"| node_effects
node_capturecontroller -->|"delegates export"| node_csvexport
node_capturecontroller -->|"requests PDF"| node_pdf
node_pdf -->|"formats records"| node_students
node_consolecapture -->|"loads and updates"| node_consolemodel
node_consolemodel -->|"starts capture"| node_consolecapture
node_consolecapture -->|"converts CSV"| node_pdf

click node_main "https://github.com/criscnsn/ada2/blob/master/src/main/java/org/cris/AdaDos/Main.java"
click node_loginview "https://github.com/criscnsn/ada2/blob/master/src/main/resources/org.cris.AdaDos.Views/MainView.fxml"
click node_login "https://github.com/criscnsn/ada2/blob/master/src/main/java/org/cris/AdaDos/controllers/MainController.java"
click node_security "https://github.com/criscnsn/ada2/blob/master/src/main/java/org/cris/AdaDos/TareaDos/Security.java"
click node_credentials "https://github.com/criscnsn/ada2/blob/master/ArchivosCSV/tabla_usuarios_encriptados.csv"
click node_captureview "https://github.com/criscnsn/ada2/blob/master/src/main/resources/org.cris.AdaDos.Views/CapturaCalificaciones.fxml"
click node_capturecontroller "https://github.com/criscnsn/ada2/blob/master/src/main/java/org/cris/AdaDos/controllers/CapturaController.java"
click node_roster "https://github.com/criscnsn/ada2/blob/master/ArchivosCSV/tabla_alumnos.csv"
click node_students "https://github.com/criscnsn/ada2/blob/master/src/main/java/org/cris/AdaDos/models/Alumno.java"
click node_effects "https://github.com/criscnsn/ada2/blob/master/src/main/java/org/cris/AdaDos/utils/UIEfectos.java"
click node_csvexport "https://github.com/criscnsn/ada2/blob/master/src/main/java/org/cris/AdaDos/utils/ExportadorCSV.java"
click node_pdf "https://github.com/criscnsn/ada2/blob/master/src/main/java/org/cris/AdaDos/TareaTres/GeneradorPDF.java"
click node_consolecapture "https://github.com/criscnsn/ada2/blob/master/src/main/java/org/cris/AdaDos/tareaUno/CapturadorDeCalificaciones.java"
click node_consolemodel "https://github.com/criscnsn/ada2/blob/master/src/main/java/org/cris/AdaDos/tareaUno/tareaUno.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_main,node_loginview,node_login,node_security,node_credentials,node_user toneBlue
class node_captureview,node_capturecontroller,node_roster,node_students,node_effects toneAmber
class node_csvexport,node_pdf toneMint
class node_consolecapture,node_consolemodel toneRose
```

## Components

### Application and access

- [JavaFX launcher](https://github.com/criscnsn/ada2/blob/master/src/main/java/org/cris/AdaDos/Main.java): `src/main/java/org/cris/AdaDos/Main.java`
- [Login screen](https://github.com/criscnsn/ada2/blob/master/src/main/resources/org.cris.AdaDos.Views/MainView.fxml): `src/main/resources/org.cris.AdaDos.Views/MainView.fxml`
- [Login controller](https://github.com/criscnsn/ada2/blob/master/src/main/java/org/cris/AdaDos/controllers/MainController.java): `src/main/java/org/cris/AdaDos/controllers/MainController.java`
- [Password validation](https://github.com/criscnsn/ada2/blob/master/src/main/java/org/cris/AdaDos/TareaDos/Security.java): `src/main/java/org/cris/AdaDos/TareaDos/Security.java`
- [Hashed credentials](https://github.com/criscnsn/ada2/blob/master/ArchivosCSV/tabla_usuarios_encriptados.csv): `ArchivosCSV/tabla_usuarios_encriptados.csv`

### Grade capture

- [Grade-entry screen](https://github.com/criscnsn/ada2/blob/master/src/main/resources/org.cris.AdaDos.Views/CapturaCalificaciones.fxml): `src/main/resources/org.cris.AdaDos.Views/CapturaCalificaciones.fxml`
- [Grade capture controller](https://github.com/criscnsn/ada2/blob/master/src/main/java/org/cris/AdaDos/controllers/CapturaController.java): `src/main/java/org/cris/AdaDos/controllers/CapturaController.java`
- [Student roster](https://github.com/criscnsn/ada2/blob/master/ArchivosCSV/tabla_alumnos.csv): `ArchivosCSV/tabla_alumnos.csv`
- [Student records](https://github.com/criscnsn/ada2/blob/master/src/main/java/org/cris/AdaDos/models/Alumno.java): `src/main/java/org/cris/AdaDos/models/Alumno.java`
- [Button effects](https://github.com/criscnsn/ada2/blob/master/src/main/java/org/cris/AdaDos/utils/UIEfectos.java): `src/main/java/org/cris/AdaDos/utils/UIEfectos.java`

### Report generation

- [CSV exporter](https://github.com/criscnsn/ada2/blob/master/src/main/java/org/cris/AdaDos/utils/ExportadorCSV.java): `src/main/java/org/cris/AdaDos/utils/ExportadorCSV.java`
- [PDF generator](https://github.com/criscnsn/ada2/blob/master/src/main/java/org/cris/AdaDos/TareaTres/GeneradorPDF.java): `src/main/java/org/cris/AdaDos/TareaTres/GeneradorPDF.java`

### Console workflow

- [Console capture](https://github.com/criscnsn/ada2/blob/master/src/main/java/org/cris/AdaDos/tareaUno/CapturadorDeCalificaciones.java): `src/main/java/org/cris/AdaDos/tareaUno/CapturadorDeCalificaciones.java`
- [Console grade workflow](https://github.com/criscnsn/ada2/blob/master/src/main/java/org/cris/AdaDos/tareaUno/tareaUno.java): `src/main/java/org/cris/AdaDos/tareaUno/tareaUno.java`

### Other components

- **User**

## Connections

- User → JavaFX launcher: launches (evidence: `src/main/java/org/cris/AdaDos/Main.java`)
- JavaFX launcher → Login screen: loads (evidence: `src/main/java/org/cris/AdaDos/Main.java`)
- Login controller → Hashed credentials: reads (evidence: `src/main/java/org/cris/AdaDos/controllers/MainController.java`)
- Login controller → Password validation: validates password (evidence: `src/main/java/org/cris/AdaDos/controllers/MainController.java`)
- Login controller → Grade-entry screen: opens after login (evidence: `src/main/java/org/cris/AdaDos/controllers/MainController.java`)
- User → Grade capture controller: enters grades
- Grade capture controller → Student roster: reads roster (evidence: `src/main/java/org/cris/AdaDos/controllers/CapturaController.java`)
- Grade capture controller → Student records: creates and edits (evidence: `src/main/java/org/cris/AdaDos/controllers/CapturaController.java`)
- Grade capture controller → Button effects: styles buttons (evidence: `src/main/java/org/cris/AdaDos/controllers/CapturaController.java`)
- Grade capture controller → CSV exporter: delegates export (evidence: `src/main/java/org/cris/AdaDos/controllers/CapturaController.java`)
- Grade capture controller → PDF generator: requests PDF (evidence: `src/main/java/org/cris/AdaDos/controllers/CapturaController.java`)
- PDF generator → Student records: formats records (evidence: `src/main/java/org/cris/AdaDos/TareaTres/GeneradorPDF.java`)
- Console capture → Console grade workflow: loads and updates (evidence: `src/main/java/org/cris/AdaDos/tareaUno/CapturadorDeCalificaciones.java`)
- Console grade workflow → Console capture: starts capture (evidence: `src/main/java/org/cris/AdaDos/tareaUno/tareaUno.java`)
- Console capture → PDF generator: converts CSV (evidence: `src/main/java/org/cris/AdaDos/tareaUno/CapturadorDeCalificaciones.java`)
