No description
Find a file
2026-09-19 09:38:45 +00:00
data init: alpha release 2026-09-16 01:14:31 +02:00
deploy init: alpha release 2026-09-16 01:14:31 +02:00
docs init: alpha release 2026-09-16 01:14:31 +02:00
scripts init: alpha release 2026-09-16 01:14:31 +02:00
site site: passer les huit pages restantes au nouveau design 2026-09-19 10:45:18 +02:00
.dockerignore deploy: exclure node_modules et les données du contexte Docker 2026-09-19 00:34:54 +02:00
.gitignore init: alpha release 2026-09-16 01:14:31 +02:00
audit-existant.md init: alpha release 2026-09-16 01:14:31 +02:00
README.md init: alpha release 2026-09-16 01:14:31 +02:00

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.