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.