# ilgobbo00/aaga architecture

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

## Overview

This Google Apps Script project manages annual athlete registrations submitted through a Google Form. Its main workflow processes a submitted response into a normalized Google Sheets record, adds a health-certificate expiration event to Google Calendar, and sends a registration email. A separate reminder capability covers expiring certificates and payment reminders. The README documents these integrations and responsibilities, but source excerpts were unavailable, so internal call details and trigger setup are not inferred beyond the documented workflow.

Main entry points: [`manageAnswers.gs`](https://github.com/ilgobbo00/aaga/blob/main/manageAnswers.gs) (Process response), [`reminders.gs`](https://github.com/ilgobbo00/aaga/blob/main/reminders.gs) (Reminder handling), [`EmailIscrizione.html`](https://github.com/ilgobbo00/aaga/blob/main/EmailIscrizione.html) (Registration email), [`EmailCompleanno.html`](https://github.com/ilgobbo00/aaga/blob/main/EmailCompleanno.html) (Birthday email)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_registration["Registration"]
  node_manage_answers["Process response<br/>[manageAnswers.gs]"]
  node_utilities["Shared utilities<br/>[utils.gs]"]
  node_constants["Configuration<br/>[constants.gs]"]
end

subgraph group_notifications["Notifications"]
  node_reminders["Reminder handling<br/>[reminders.gs]"]
  node_registration_email["Registration email"]
  node_birthday_email["Birthday email"]
  node_payment_email["Payment email"]
  node_registration_reminder_email["Registration reminder"]
  node_certificate_email["Certificate expiry email"]
end

subgraph group_google_services["Google services"]
  node_google_form["Google Form"]
  node_response_sheet[("Response sheet")]
  node_calendar["Google Calendar"]
  node_gmail["Email service"]
end

node_athlete(("Athlete"))
node_administrators(("Administrators"))

node_athlete -->|"submits response"| node_google_form
node_google_form -->|"records response"| node_response_sheet
node_response_sheet -->|"triggers processing"| node_manage_answers
node_manage_answers -->|"reads and updates"| node_response_sheet
node_manage_answers -->|"adds expiration event"| node_calendar
node_manage_answers -->|"sends registration email"| node_gmail
node_manage_answers -->|"uses helpers"| node_utilities
node_manage_answers -->|"uses settings"| node_constants
node_reminders -->|"checks records"| node_response_sheet
node_reminders -->|"sends reminders"| node_gmail
node_calendar -->|"notifies"| node_administrators
node_gmail -->|"delivers email"| node_athlete
node_registration_email -.->|"email content"| node_gmail
node_birthday_email -.->|"email content"| node_gmail
node_payment_email -.->|"email content"| node_gmail
node_registration_reminder_email -.->|"email content"| node_gmail
node_certificate_email -.->|"email content"| node_gmail

click node_manage_answers "https://github.com/ilgobbo00/aaga/blob/main/manageAnswers.gs"
click node_utilities "https://github.com/ilgobbo00/aaga/blob/main/utils.gs"
click node_constants "https://github.com/ilgobbo00/aaga/blob/main/constants.gs"
click node_reminders "https://github.com/ilgobbo00/aaga/blob/main/reminders.gs"
click node_registration_email "https://github.com/ilgobbo00/aaga/blob/main/EmailIscrizione.html"
click node_birthday_email "https://github.com/ilgobbo00/aaga/blob/main/EmailCompleanno.html"
click node_payment_email "https://github.com/ilgobbo00/aaga/blob/main/EmailPagamenti.html"
click node_registration_reminder_email "https://github.com/ilgobbo00/aaga/blob/main/EmailReminderIscrizioni.html"
click node_certificate_email "https://github.com/ilgobbo00/aaga/blob/main/EmailScadenzaCM.html"

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_manage_answers,node_utilities,node_constants toneBlue
class node_reminders,node_registration_email,node_birthday_email,node_payment_email,node_registration_reminder_email,node_certificate_email toneAmber
class node_google_form,node_response_sheet,node_calendar,node_gmail toneMint
class node_athlete,node_administrators toneIndigo
```

## Components

### Registration

- [Process response](https://github.com/ilgobbo00/aaga/blob/main/manageAnswers.gs): `manageAnswers.gs`
- [Shared utilities](https://github.com/ilgobbo00/aaga/blob/main/utils.gs): `utils.gs`
- [Configuration](https://github.com/ilgobbo00/aaga/blob/main/constants.gs): `constants.gs`

### Notifications

- [Reminder handling](https://github.com/ilgobbo00/aaga/blob/main/reminders.gs): `reminders.gs`
- [Registration email](https://github.com/ilgobbo00/aaga/blob/main/EmailIscrizione.html): `EmailIscrizione.html`
- [Birthday email](https://github.com/ilgobbo00/aaga/blob/main/EmailCompleanno.html): `EmailCompleanno.html`
- [Payment email](https://github.com/ilgobbo00/aaga/blob/main/EmailPagamenti.html): `EmailPagamenti.html`
- [Registration reminder](https://github.com/ilgobbo00/aaga/blob/main/EmailReminderIscrizioni.html): `EmailReminderIscrizioni.html`
- [Certificate expiry email](https://github.com/ilgobbo00/aaga/blob/main/EmailScadenzaCM.html): `EmailScadenzaCM.html`

### Google services

- **Google Form**
- **Response sheet**
- **Google Calendar**
- **Email service**

### Other components

- **Athlete**
- **Administrators**

## Connections

- Athlete → Google Form: submits response
- Google Form → Response sheet: records response
- Response sheet → Process response: triggers processing
- Process response → Response sheet: reads and updates
- Process response → Google Calendar: adds expiration event
- Process response → Email service: sends registration email
- Process response → Shared utilities: uses helpers
- Process response → Configuration: uses settings
- Reminder handling → Response sheet: checks records
- Reminder handling → Email service: sends reminders
- Google Calendar → Administrators: notifies
- Email service → Athlete: delivers email
- Registration email → Email service: email content
- Birthday email → Email service: email content
- Payment email → Email service: email content
- Registration reminder → Email service: email content
- Certificate expiry email → Email service: email content
