|
|
||
|---|---|---|
| data | ||
| deploy | ||
| docs | ||
| scripts | ||
| site | ||
| .dockerignore | ||
| .gitignore | ||
| audit-existant.md | ||
| README.md | ||
Association des parents d'élèves – École maternelle Missak et Mélinée Manouchian
Dépôt de l'association de parents de l'école maternelle Missak et Mélinée Manouchian (ancienne école du Placieux, avenue John Kennedy, 54600 Villers-lès-Nancy, groupe scolaire géré par la Ville de Nancy). L'association collecte des fonds et les reverse à la coopérative scolaire pour financer sorties et projets pédagogiques.
Ce dépôt contient tout ce qu'il faut pour la faire vivre : le site public, la trésorerie, les documents d'organisation et le déploiement.
Contenu
| Dossier | Rôle |
|---|---|
audit-existant.md |
Ce qu'on sait de l'école, des associations déjà déclarées et de la coopérative |
docs/ |
Checklist de reprise, statuts, règlement, modèles de PV, budget, calendrier, fiches pratiques |
data/tresorerie.csv |
La comptabilité : une ligne par opération |
scripts/ |
bilan.py génère le bilan, import-helloasso.py importe les exports HelloAsso |
site/ |
Site public (Astro, statique) avec un espace /bureau/ protégé |
deploy/ |
Dockerfile, configurations nginx, compose de production et de développement |
Par où commencer : docs/reprise-checklist.md.
Prérequis
Node 22+, Python 3.10+ (sans dépendance), Docker pour le déploiement.
Le site en local
cd site
npm install
npm run dev # http://localhost:4321
Le bilan est régénéré automatiquement avant dev et build.
Personnaliser
Tout ce qui change d'une année à l'autre est dans site/src/config.ts : nom de l'association, adresse mail, montant de la cotisation, liens HelloAsso. Tant qu'un lien HelloAsso est vide, le bouton correspondant s'affiche « bientôt » sans lien cassé.
Les couleurs sont dans site/src/styles/global.css, en tête de fichier.
Ajouter une actualité
Créer site/src/content/actualites/AAAA-MM-titre.md :
---
titre: "Titre de l'actualité"
date: 2026-11-03
resume: "Une phrase qui donne envie de lire."
---
Le texte, en Markdown.
Ajouter un événement
Créer site/src/content/evenements/AAAA-MM-titre.md :
---
titre: "Tombola de printemps"
date: 2027-03-20
heure: "16 h 15"
lieu: "Au portail de l'école"
resume: "300 lots offerts par les commerçants du quartier."
lienHelloAsso: "https://www.helloasso.com/..." # facultatif
---
Détails, consignes, besoins en bénévoles.
Les événements passés passent automatiquement dans la rubrique « Passés ». Ajouter brouillon: true pour préparer une page sans la publier.
Trésorerie
python3 scripts/bilan.py # génère data/bilan.md et data/bilan.json
python3 scripts/import-helloasso.py data/exports/export.csv --ajouter # ajoute les paiements HelloAsso
Format du fichier, catégories et clôture d'exercice : docs/fiches/tresorerie-et-bilan.md. Le script refuse toute ligne mal formée et indique laquelle.
Les fichiers contenant des noms (liste des adhérents, exports HelloAsso bruts) ne sont jamais versionnés : data/adherents.csv et data/exports/ sont ignorés par git. Un gabarit est fourni dans data/adherents.csv.example.
Déploiement
En développement, pour voir le site tel qu'il sera servi
docker compose -f deploy/compose.dev.yml up --build -d
Rien à préparer : le mot de passe de l'espace bureau est bureau / bureau et un certificat auto-signé est généré au démarrage.
| Adresse | |
|---|---|
http://127.0.0.1:8087/ |
HTTP en clair |
https://127.0.0.1:8443/ |
HTTPS auto-signé, le navigateur affiche un avertissement à accepter |
Préférez 127.0.0.1 à localhost. Si un autre projet a déjà envoyé un en-tête HSTS depuis localhost, le navigateur force le HTTPS sur tous les ports de localhost, y compris celui-ci. Le déploiement de développement n'envoie jamais cet en-tête, justement pour ne pas contaminer vos autres projets.
Arrêter : docker compose -f deploy/compose.dev.yml down.
En production
cp deploy/.env.example deploy/.env # choisir un vrai mot de passe
docker compose -f deploy/compose.yml up --build -d
Le site répond en HTTP sur le port 8087 (variable PORT_SITE). Placez un reverse proxy devant, Caddy ou Traefik par exemple, pour le HTTPS et le nom de domaine, puis renseignez ce domaine dans site/astro.config.mjs.
Le mot de passe de l'espace bureau vient de BUREAU_USER et BUREAU_PASSWORD. Si vous préférez gérer vous-même un fichier de mots de passe, créez-le avant de lancer le conteneur, puis décommentez le volume dans deploy/compose.yml :
printf 'bureau:%s\n' "$(openssl passwd -apr1)" > deploy/.htpasswd
Sans cette précaution Docker crée un dossier à la place du fichier ; le conteneur s'arrête alors avec un message qui explique quoi faire.
Republier après une modification : relancer la même commande up --build -d. Toute la génération, bilan puis site, se fait dans l'image. Rien à installer sur le serveur à part Docker.
Espace bureau
/bureau/ affiche le bilan de trésorerie (solde, reversements, détail par exercice, dernières opérations) et tous les documents de docs/. Il est protégé par mot de passe et exclu des moteurs de recherche.