# asso-asa/asa architecture

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

- Interactive diagram: https://gitdiagram.com/asso-asa/asa
- Repository: https://github.com/asso-asa/asa

## Overview

ASA is the official website of the Association des Sénégalais d’Amiens. Its product is a public-facing association site: visitors can learn about the association, find events and resources, and access membership, contact, directory, and attestation pages. The sampled runtime also builds page contents tables and conditionally displays a volunteer-recruitment modal, recording its display in browser storage. The README identifies the site but does not document page-to-page routing or form handling; those connections are therefore not inferred.

Main entry points: [`campagne-benevolat.js`](https://github.com/asso-asa/asa/blob/main/campagne-benevolat.js) (Volunteer campaign modal), [`script.js`](https://github.com/asso-asa/asa/blob/main/script.js) (Shared page script), [`index.html`](https://github.com/asso-asa/asa/blob/main/index.html) (Home page)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_public["Public information"]
  node_home["Home page<br/>[index.html]"]
  node_about["Association profile"]
  node_agenda["Events agenda<br/>[agenda.html]"]
  node_event_entries["Event entries"]
end

subgraph group_participation["Participation"]
  node_membership["Membership<br/>[adhesion.html]"]
  node_dues["Membership dues"]
  node_join["Join association"]
  node_contact["Contact<br/>[contact.html]"]
  node_directory["Member directory<br/>[annuaire.html]"]
  node_attestation["Hosting attestation"]
  node_confirmation["Attestation confirmation"]
end

subgraph group_resources["Resources"]
  node_documents["Association documents"]
  node_statutes["Statutes<br/>[statuts.html]"]
  node_legal["Legal and privacy"]
end

subgraph group_runtime["Browser runtime"]
  node_common_script["Shared page script<br/>[script.js]"]
  node_volunteer_campaign["Volunteer campaign modal"]
  node_browser_dom["Browser document"]
  node_browser_storage[("Browser local storage")]
end

node_visitor(("Site visitor"))

node_visitor -->|"visits site"| node_home
node_common_script -->|"loads script"| node_volunteer_campaign
node_volunteer_campaign -->|"builds modal"| node_browser_dom
node_volunteer_campaign -->|"records display"| node_browser_storage

click node_home "https://github.com/asso-asa/asa/blob/main/index.html"
click node_about "https://github.com/asso-asa/asa/blob/main/qui-sommes-nous.html"
click node_agenda "https://github.com/asso-asa/asa/blob/main/agenda.html"
click node_event_entries "https://github.com/asso-asa/asa/tree/main/_evenements"
click node_membership "https://github.com/asso-asa/asa/blob/main/adhesion.html"
click node_dues "https://github.com/asso-asa/asa/blob/main/adhesion-cotisation.html"
click node_join "https://github.com/asso-asa/asa/blob/main/nous-rejoindre.html"
click node_contact "https://github.com/asso-asa/asa/blob/main/contact.html"
click node_directory "https://github.com/asso-asa/asa/blob/main/annuaire.html"
click node_attestation "https://github.com/asso-asa/asa/blob/main/attestation-hebergement.html"
click node_confirmation "https://github.com/asso-asa/asa/blob/main/attestation-confirmation.html"
click node_documents "https://github.com/asso-asa/asa/tree/main/documents"
click node_statutes "https://github.com/asso-asa/asa/blob/main/statuts.html"
click node_legal "https://github.com/asso-asa/asa/blob/main/mentions-legales.html"
click node_common_script "https://github.com/asso-asa/asa/blob/main/script.js"
click node_volunteer_campaign "https://github.com/asso-asa/asa/blob/main/campagne-benevolat.js"

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_home,node_about,node_agenda,node_event_entries toneBlue
class node_membership,node_dues,node_join,node_contact,node_directory,node_attestation,node_confirmation toneAmber
class node_documents,node_statutes,node_legal toneMint
class node_common_script,node_volunteer_campaign,node_browser_dom,node_browser_storage toneRose
class node_visitor toneIndigo
```

## Components

### Public information

- [Home page](https://github.com/asso-asa/asa/blob/main/index.html): `index.html`
- [Association profile](https://github.com/asso-asa/asa/blob/main/qui-sommes-nous.html): `qui-sommes-nous.html`
- [Events agenda](https://github.com/asso-asa/asa/blob/main/agenda.html): `agenda.html`
- [Event entries](https://github.com/asso-asa/asa/tree/main/_evenements): `_evenements`

### Participation

- [Membership](https://github.com/asso-asa/asa/blob/main/adhesion.html): `adhesion.html`
- [Membership dues](https://github.com/asso-asa/asa/blob/main/adhesion-cotisation.html): `adhesion-cotisation.html`
- [Join association](https://github.com/asso-asa/asa/blob/main/nous-rejoindre.html): `nous-rejoindre.html`
- [Contact](https://github.com/asso-asa/asa/blob/main/contact.html): `contact.html`
- [Member directory](https://github.com/asso-asa/asa/blob/main/annuaire.html): `annuaire.html`
- [Hosting attestation](https://github.com/asso-asa/asa/blob/main/attestation-hebergement.html): `attestation-hebergement.html`
- [Attestation confirmation](https://github.com/asso-asa/asa/blob/main/attestation-confirmation.html): `attestation-confirmation.html`

### Resources

- [Association documents](https://github.com/asso-asa/asa/tree/main/documents): `documents`
- [Statutes](https://github.com/asso-asa/asa/blob/main/statuts.html): `statuts.html`
- [Legal and privacy](https://github.com/asso-asa/asa/blob/main/mentions-legales.html): `mentions-legales.html`

### Browser runtime

- [Shared page script](https://github.com/asso-asa/asa/blob/main/script.js): `script.js`
- [Volunteer campaign modal](https://github.com/asso-asa/asa/blob/main/campagne-benevolat.js): `campagne-benevolat.js`
- **Browser document**
- **Browser local storage**

### Other components

- **Site visitor**

## Connections

- Site visitor → Home page: visits site (evidence: `README.md`)
- Shared page script → Volunteer campaign modal: loads script (evidence: `script.js`)
- Volunteer campaign modal → Browser document: builds modal (evidence: `campagne-benevolat.js`)
- Volunteer campaign modal → Browser local storage: records display (evidence: `campagne-benevolat.js`)
