# valerrb/rappresentame architecture

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

- Interactive diagram: https://gitdiagram.com/valerrb/rappresentame
- Repository: https://github.com/valerrb/rappresentame

## Overview

RappresentaME is a desktop class-representative app: it displays a student roster and provides student add, edit, and removal workflows. The UI also advertises drawing a student, organizing volunteers, and arranging seats, but those class-action handlers are stubs in the sampled source. The graph follows the visible Tkinter composition and database calls; the implementation of the class overview and any future class actions was not sampled.

Main entry points: [`scripts/listaStudenti_layout.py`](https://github.com/valerrb/rappresentame/blob/main/scripts/listaStudenti_layout.py) (Student list), [`database.py`](https://github.com/valerrb/rappresentame/blob/main/database.py) (Student database API), [`scripts/contenuto_layout.py`](https://github.com/valerrb/rappresentame/blob/main/scripts/contenuto_layout.py) (Content layout), [`scripts/azioni_studente.py`](https://github.com/valerrb/rappresentame/blob/main/scripts/azioni_studente.py) (Student actions)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_startup["Desktop shell"]
  node_app["App window<br/>[main.py]"]
  node_main_frame["Main layout<br/>[main_layout.py]"]
  node_content["Content layout"]
end

subgraph group_roster["Student roster"]
  node_roster_view["Student list"]
  node_student_card["Student card<br/>[studente.py]"]
  node_database_api["Student database API<br/>[database.py]"]
  node_sqlite_store[("SQLite database<br/>[database.py]")]
end

subgraph group_student_ops["Student management"]
  node_student_actions["Student actions<br/>[azioni_studente.py]"]
  node_add_dialog["Add student"]
  node_edit_dialog["Edit student"]
  node_remove_dialog["Remove student"]
end

subgraph group_class_tools["Class tools"]
  node_class_overview["Class overview<br/>[classe.py]"]
  node_class_actions["Class actions<br/>[azioni_classe.py]"]
end

node_representative(("Class representative"))

node_representative -->|"launches"| node_app
node_app -->|"creates"| node_main_frame
node_main_frame -->|"creates"| node_roster_view
node_main_frame -->|"creates"| node_content
node_content -->|"creates"| node_class_overview
node_content -->|"creates"| node_student_actions
node_content -->|"creates"| node_class_actions
node_roster_view -->|"loads roster"| node_database_api
node_roster_view -->|"creates cards"| node_student_card
node_student_card -->|"reads details"| node_database_api
node_database_api -->|"queries and updates"| node_sqlite_store
node_student_actions -->|"opens"| node_add_dialog
node_student_actions -->|"opens"| node_edit_dialog
node_student_actions -->|"opens"| node_remove_dialog
node_edit_dialog -->|"loads and edits"| node_database_api
node_remove_dialog -->|"deletes"| node_database_api
node_add_dialog -->|"inserts"| node_database_api
node_add_dialog -->|"refreshes"| node_roster_view
node_edit_dialog -->|"refreshes"| node_roster_view
node_remove_dialog -->|"refreshes"| node_roster_view

click node_app "https://github.com/valerrb/rappresentame/blob/main/main.py"
click node_main_frame "https://github.com/valerrb/rappresentame/blob/main/scripts/main_layout.py"
click node_roster_view "https://github.com/valerrb/rappresentame/blob/main/scripts/listaStudenti_layout.py"
click node_student_card "https://github.com/valerrb/rappresentame/blob/main/scripts/studente.py"
click node_database_api "https://github.com/valerrb/rappresentame/blob/main/database.py"
click node_sqlite_store "https://github.com/valerrb/rappresentame/blob/main/database.py"
click node_content "https://github.com/valerrb/rappresentame/blob/main/scripts/contenuto_layout.py"
click node_class_overview "https://github.com/valerrb/rappresentame/blob/main/scripts/classe.py"
click node_student_actions "https://github.com/valerrb/rappresentame/blob/main/scripts/azioni_studente.py"
click node_add_dialog "https://github.com/valerrb/rappresentame/blob/main/scripts/aggiunti_studente.py"
click node_edit_dialog "https://github.com/valerrb/rappresentame/blob/main/scripts/modifica_studente.py"
click node_remove_dialog "https://github.com/valerrb/rappresentame/blob/main/scripts/rimuovi_studente.py"
click node_class_actions "https://github.com/valerrb/rappresentame/blob/main/scripts/azioni_classe.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_main_frame,node_content toneBlue
class node_roster_view,node_student_card,node_database_api,node_sqlite_store toneAmber
class node_student_actions,node_add_dialog,node_edit_dialog,node_remove_dialog toneMint
class node_class_overview,node_class_actions toneRose
class node_representative toneIndigo
```

## Components

### Desktop shell

- [App window](https://github.com/valerrb/rappresentame/blob/main/main.py): `main.py`
- [Main layout](https://github.com/valerrb/rappresentame/blob/main/scripts/main_layout.py): `scripts/main_layout.py`
- [Content layout](https://github.com/valerrb/rappresentame/blob/main/scripts/contenuto_layout.py): `scripts/contenuto_layout.py`

### Student roster

- [Student list](https://github.com/valerrb/rappresentame/blob/main/scripts/listaStudenti_layout.py): `scripts/listaStudenti_layout.py`
- [Student card](https://github.com/valerrb/rappresentame/blob/main/scripts/studente.py): `scripts/studente.py`
- [Student database API](https://github.com/valerrb/rappresentame/blob/main/database.py): `database.py`
- [SQLite database](https://github.com/valerrb/rappresentame/blob/main/database.py): `database.py`

### Student management

- [Student actions](https://github.com/valerrb/rappresentame/blob/main/scripts/azioni_studente.py): `scripts/azioni_studente.py`
- [Add student](https://github.com/valerrb/rappresentame/blob/main/scripts/aggiunti_studente.py): `scripts/aggiunti_studente.py`
- [Edit student](https://github.com/valerrb/rappresentame/blob/main/scripts/modifica_studente.py): `scripts/modifica_studente.py`
- [Remove student](https://github.com/valerrb/rappresentame/blob/main/scripts/rimuovi_studente.py): `scripts/rimuovi_studente.py`

### Class tools

- [Class overview](https://github.com/valerrb/rappresentame/blob/main/scripts/classe.py): `scripts/classe.py`
- [Class actions](https://github.com/valerrb/rappresentame/blob/main/scripts/azioni_classe.py): `scripts/azioni_classe.py`

### Other components

- **Class representative**

## Connections

- Class representative → App window: launches
- App window → Main layout: creates
- Main layout → Student list: creates
- Main layout → Content layout: creates
- Content layout → Class overview: creates
- Content layout → Student actions: creates
- Content layout → Class actions: creates
- Student list → Student database API: loads roster
- Student list → Student card: creates cards
- Student card → Student database API: reads details
- Student database API → SQLite database: queries and updates
- Student actions → Add student: opens
- Student actions → Edit student: opens
- Student actions → Remove student: opens
- Edit student → Student database API: loads and edits
- Remove student → Student database API: deletes
- Add student → Student database API: inserts
- Add student → Student list: refreshes
- Edit student → Student list: refreshes
- Remove student → Student list: refreshes
