Conception, développement et déploiement de bout en bout d'un CRM de gestion des membres et des dons pour une association genevoise, avec un tableau de bord analytique qui transforme cinq ans d'historique de collecte en reporting exploitable — sans framework, sans dépendance, sans licence récurrente. End-to-end design, development, and deployment of a donations and membership CRM for a Geneva-based charity, with an analytics dashboard that turns five years of fundraising history into decision-ready reporting — no framework, no dependencies, no recurring licence costs.
Contexte & besoin client Context & Client Need
hôpiclowns fait intervenir des clowns professionnels auprès des enfants hospitalisés, et vit des dons de particuliers, de fondations et d'entreprises. Ces dons sont suivis selon leur statut de membre, leur campagne de rattachement et vingt-cinq catégories d'audience. Avant le CRM, l'équipe de collecte n'avait aucun moyen de répondre à ses questions de base sans un travail manuel sur tableur : où en est-on par rapport à la même date l'an dernier, quelles fondations ont dépassé CHF 10 000, combien a réellement rapporté la campagne de printemps. Le tableau de bord a été spécifié directement autour de ces questions récurrentes — chacune est devenue une carte de la page.
hôpiclowns brings professional clown performers into children's hospitals, and runs on donations from private individuals, foundations, and companies — tracked across membership statuses, campaign attribution, and twenty-five audience categories. Before the CRM, the fundraising team had no way to answer its own basic questions without manual spreadsheet work: how does this year compare to the same date last year, which foundations gave over CHF 10,000, what did the spring campaign actually raise. The dashboard was specified directly around those recurring questions — each one became a card on the page.
- Des décisions de collecte sur données vivantes : performance annuelle, rendement des campagnes et concentration des grands donateurs deviennent visibles dès la saisie d'un don, remplaçant la réconciliation mensuelle sur tableur. Fundraising decisions on live data: year-over-year performance, campaign yield, and major-donor concentration become visible the moment a donation is entered, replacing month-end spreadsheet reconciliation.
- La conformité sans travail manuel : attestations fiscales suisses et lettres de remerciement sont générées directement depuis les mêmes fiches, à l'unité ou en lots d'impression, supprimant la ressaisie annuelle et son taux d'erreur. Compliance without manual work: Swiss tax certificates and thank-you letters generate directly from the same records, individually or as batch print runs, eliminating the annual transcription effort and its error rate.
Le tableau de bord — Statistiques The Dashboard — Statistics
Pipeline de rendu du tableau de bord Dashboard Rendering Pipeline
Une architecture à deux temps : la page livre ses propres chiffres clés côté serveur pour un affichage immédiat, puis hydrate dix sources de graphiques indépendantes en parallèle. Un graphique lent ou en échec se dégrade seul — le reste du tableau de bord reste opérationnel. A two-tier architecture: the page ships its own headline figures server-side for immediate display, then hydrates ten independent chart sources in parallel. A slow or failing chart degrades on its own — the rest of the dashboard stays up.
Inventaire des sources analytiques Analytics Source Inventory
Chaque question posée par l'équipe de collecte correspond à un point d'accès dédié, avec sa propre requête d'agrégation et son propre script de rendu. Every question raised by the fundraising team maps to a dedicated endpoint, with its own aggregation query and its own rendering script.
| Point d'accèsEndpoint | Question métier traitéeBusiness Question Answered |
|---|---|
chartYTD |
Comparaison sur cinq ans alignée sur la date du jour : dons et cotisations, chaque année antérieure tronquée à la date calendaire courante. Five-year date-aligned comparison: donations and membership fees, each prior year truncated to today's calendar date. |
chartBigDonors |
Concentration des grands donateurs : tout donateur au-delà de CHF 10 000 sur une fenêtre glissante de deux ans, résolu vers un libellé entreprise ou particulier. Major-donor concentration: every donor above CHF 10,000 over a rolling two-year window, resolved to a company or individual display name. |
chartIvsE ×4 |
Répartition particuliers / entreprises, quatre années côte à côte. Individuals vs companies split, four years side by side. |
chart5Years |
Totaux annuels de dons et de cotisations sur cinq exercices complets. Annual donation and membership-fee totals across five complete years. |
chartPersonalized |
Explorateur interactif : l'analyste saisit un triplet min / max / année et obtient le nombre de dons par mois dans cette tranche, sans rechargement de page. Interactive explorer: the analyst enters a min / max / year triple and gets monthly donation counts within that band, without a page reload. |
chartPersonalizedCampaign |
Résultats par campagne : total collecté, donateurs distincts, don moyen, dons le plus élevé et le plus faible — en un seul aller-retour. Per-campaign results: total raised, distinct donors, average gift, highest and lowest donation — in a single round trip. |
membersCat |
Répartition des membres sur 25 catégories d'audience, par jointure sur la table des catégories. Member distribution across 25 audience categories, joined against the categories table. |
moisEnCours |
Totaux glissants sur sept mois, pour repérer la saisonnalité de la collecte. Rolling seven-month totals, to surface fundraising seasonality. |
growth |
Croissance annuelle : année en cours contre même date calendaire l'an dernier, avec bascule visuelle croissance / décroissance. Year-over-year growth: current year against the same calendar date last year, with a growth / decline visual flip. |
Architecture technique & Périmètre produit Technical Architecture & Product Scope
Moteur analytique & Aide à la décision Analytics Engine & Decision Support
Conception d'un tableau de bord qui répond aux questions de collecte en temps réel, sur une base de plus de 10 000 fiches et cinq ans d'historique. Engineered a dashboard that answers fundraising questions in real time, across a 10,000-record database and five years of history.
- Comparaison annuelle alignée sur la date : chacune des cinq années antérieures est tronquée à la date calendaire du jour directement en SQL — une lecture faite en mars compare ce qui est comparable, au lieu d'opposer une année partielle à quatre années complètes. Date-aligned year-over-year comparison: each of the five prior years is truncated to today's calendar date directly in SQL — a March reading compares like with like, instead of pitting a partial year against four complete ones.
- Analyse de concentration des donateurs : une seule agrégation avec seuil fait remonter les grands donateurs sur fenêtre glissante, avec résolution du libellé d'affichage par type de donateur. Donor concentration analysis: a single threshold aggregation surfaces major donors over a rolling window, with display-name resolution per donor type.
- Exploration interactive : filtres par tranche de montant et sélecteur de campagne qui détruisent puis réinstancient le canvas sur un nouvel appel, sans rechargement. Interactive exploration: amount-band filters and a campaign selector that tear down and re-instantiate the canvas against a fresh call, with no reload.
- Segmentation sur quatre dimensions : particuliers / entreprises, catégories d'audience, statut de membre et saisonnalité mensuelle. Segmentation across four dimensions: individuals / companies, audience categories, membership status, and monthly seasonality.
- Dégradation gracieuse & responsive : sous 1600 px, le bandeau de 13 indicateurs bascule vers une bande condensée ; les échecs de graphiques sont isolés les uns des autres. Graceful degradation & responsive layout: below 1600px the 13-KPI strip switches to a condensed band; chart failures are isolated from one another.
Plateforme CRM & Opérations de données CRM Platform & Data Operations
Le tableau de bord s'appuie sur une plateforme complète de gestion des membres, des dons et de la correspondance donateurs. The dashboard sits on top of a complete platform for member, donation, and donor-correspondence management.
- Fiches membres à l'échelle : plus de 10 000 fiches avec recherche filtrée, édition en ligne, gestion des statuts et des catégories, rattachement aux campagnes, et historique des dons et cotisations par fiche. Member records at scale: 10,000+ records with filtered search, inline editing, status and category management, campaign attribution, and per-record donation and membership-fee histories.
- Attestations fiscales suisses : attestations annuelles produites en PDF depuis les fiches vivantes, à l'unité ou en lots d'impression filtrés par éligibilité, seuil de don et préférence de correspondance. Swiss tax certificates: annual certificates produced as PDFs from live records, individually or as batch print runs filtered by eligibility, donation threshold, and correspondence preference.
- Publipostage : lettres de remerciement et courriers de campagne générés depuis des modèles enregistrés, avec champs de fusion par donateur, signatures et en-têtes, en PDF prêts à l'impression. Mail-merge correspondence: thank-you letters and campaign mailings generated from stored templates with per-donor merge fields, signature assets, and letterhead, as print-ready PDFs.
- Constructeur de requêtes & export : interface de requête par formulaire sur les membres, les dons et les catégories, avec export CSV pour l'analyse externe et les routeurs postaux. Query builder & export: a form-driven query interface over members, donations, and categories, with CSV export for external analysis and mailing houses.
- Sécurité de session & traçabilité : expiration après inactivité avec compte à rebours dans la barre de navigation et écran d'avertissement, déconnexion forcée journalisée, et garde de session indépendante sur chaque point d'accès AJAX — y compris chaque source de graphique. Session security & audit trail: idle-timeout expiry with an in-navbar countdown and overlay warning, logged forced logout, and an independent session guard on every AJAX endpoint — including each chart data source.
Technologies clés Core Tech Stack
Mon rôle My Role
- Recueil des besoins avec l'équipe de collecte Requirements Gathering with the Fundraising Team
- Conception du modèle de données relationnel Relational Data Model Design
- Implémentation full-stack, écrite de zéro Full-Stack Implementation, Written from Scratch
- Conception des requêtes analytiques Analytics Query Design
- Chaîne PDF pour la conformité fiscale suisse PDF Pipeline for Swiss Tax Compliance
- Déploiement, hébergement & maintenance Deployment, Hosting & Maintenance
Statut Status
Livré & en production Delivered & In Production
Mission cliente de longue durée. Un système sur mesure toujours au service des opérations de collecte quotidiennes, construit et maintenu sans dépendance à un framework ni coût de licence récurrent. A long-running client engagement. A bespoke system still serving daily fundraising operations, built and maintained without framework dependencies or recurring licence costs.



