judu/ex-egopublic Fork
⑂ 916804a
Commits
⬇ Clone ▾
git clone https://git.rickub.com/judu/ex-ego.git
git clone ssh://git@rickub.com/judu/ex-ego.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

Download ZIP

docs: Maydée n'est plus utilisable (domaine perdu), Ex Ego la remplace — et parenthèses plutôt que tirets dans le README (sauf le premier)Unverified

Claude-Session: https://claude.ai/code/session_01FPKHKGfqvnvXKY9tNhYmkh
Julien Durillon committed 2026-08-09T01:05:44+02:00 Browse files
916804a parent: 6d182f3
modified README.md +31 -26
@@ -5,53 +5,58 @@
55
66 Application web de comptage de temps par catégorie et de tâches partagées, en
77 équipe. Mobile-first (PWA), UI trilingue (français, anglais, allemand), rendu
8-100 % côté serveur — le JavaScript n'existe qu'en amélioration progressive :
9-tout fonctionne par liens et formulaires.
8+100 % côté serveur (le JavaScript n'existe qu'en amélioration progressive :
9+tout fonctionne par liens et formulaires).
1010
1111 L'inspiration vient de [Maydée](https://blog.mbadmb.com/lapplication-maydee/),
1212 l'application de l'association fondée par Julie Hebting pour rendre visible la
1313 répartition du travail domestique ([ChEEk
1414 Magazine](https://cheekmagazine.fr/societe/maydee-appli-charge-mentale-confinement/),
1515 [Nouvelles News](https://nouvelles.news/15/05/2020/elle-a-cree-maydee-lappli-qui-equilibre-enfin-la-charge-mentale-dans-le-couple/)).
16-La fonctionnalité centrale est la même : **comparer le temps passé** sur les
17-tâches du foyer — comme les créatrices de Maydée, on considère ici que le
18-temps est la mesure la plus « juste » du travail domestique, si tout le monde
19-est de bonne foi. Pas d'objectif de 50-50 : une base objective pour en parler.
16+Maydée ne semble malheureusement plus utilisable aujourd'hui (son domaine ne
17+pointe même plus vers l'association) : Ex Ego est né du besoin de la
18+remplacer. La fonctionnalité centrale est la même : **comparer le temps
19+passé** sur les tâches du foyer (comme les créatrices de Maydée, on considère
20+ici que le temps est la mesure la plus « juste » du travail domestique, si
21+tout le monde est de bonne foi). Pas d'objectif de 50-50 : une base objective
22+pour en parler.
2023
2124 Avoir de la *donnée* sur le temps passé aux tâches domestiques change la
2225 nature de la conversation : on ne débat plus de ressentis ni de souvenirs
2326 (« j'ai l'impression de tout faire ») mais d'un relevé que chacun a constitué
2427 de bonne foi. La répartition des tâches devient un sujet moins passionné et
25-plus apaisé — on regarde les chiffres ensemble, puis on décide ensemble.
28+plus apaisé (on regarde les chiffres ensemble, puis on décide ensemble).
2629
2730 Stack : Rust (axum, askama, sqlx), PostgreSQL, biscuit-auth. Aucun framework
2831 front, une seule feuille de CSS.
2932
30-> **English** — Team time tracker and shared todo list, inspired by the
31-> French app Maydée: the core idea is comparing *time spent* on household
32-> tasks — the fairest measure of domestic work, as long as everyone acts in
33-> good faith. Log time per category, run a timer, take dated tasks and
33+> **English**: team time tracker and shared todo list, inspired by the
34+> French app Maydée, which no longer seems to be available (Ex Ego was built
35+> to replace it). The core idea is comparing *time spent* on household tasks
36+> (the fairest measure of domestic work, as long as everyone acts in good
37+> faith). Log time per category, run a timer, take dated tasks and
3438 > reschedule them at their observed rhythm, and read stacked-bar statistics
3539 > per member. Having *data* about time spent on housework changes the nature
3640 > of the conversation: instead of debating feelings and recollections, you
37-> look at numbers gathered in good faith — a calmer, less heated way to talk
38-> about who does what. Mobile-first
41+> look at numbers gathered in good faith (a calmer, less heated way to talk
42+> about who does what). Mobile-first
3943 > PWA, fully server-rendered (JavaScript is progressive enhancement only),
40-> trilingual (FR/EN/DE — language is a per-user setting). Rust (axum,
44+> trilingual (FR/EN/DE, language is a per-user setting). Rust (axum,
4145 > askama, sqlx), PostgreSQL, no front-end framework.
4246
43-> **Deutsch** — Zeiterfassung und geteilte Aufgabenliste fürs Team,
44-> inspiriert von der französischen App Maydée: Kern der Idee ist der
45-> Vergleich der *aufgewendeten Zeit* für Hausarbeit — das fairste Maß für
46-> häusliche Arbeit, solange alle guten Willens sind. Zeiten pro Kategorie
47+> **Deutsch**: Zeiterfassung und geteilte Aufgabenliste fürs Team,
48+> inspiriert von der französischen App Maydée, die nicht mehr verfügbar zu
49+> sein scheint (Ex Ego wurde als Ersatz gebaut). Kern der Idee ist der
50+> Vergleich der *aufgewendeten Zeit* für Hausarbeit (das fairste Maß für
51+> häusliche Arbeit, solange alle guten Willens sind). Zeiten pro Kategorie
4752 > erfassen, Timer laufen lassen, datierte Aufgaben übernehmen und im
4853 > beobachteten Rhythmus neu planen, Statistiken pro Mitglied lesen. *Daten*
4954 > über die für Hausarbeit aufgewendete Zeit verändern das Gespräch: Statt
5055 > über Gefühle und Erinnerungen zu streiten, schaut man gemeinsam auf in
51-> gutem Glauben erfasste Zahlen — eine ruhigere, sachlichere Art, über die
52-> Aufgabenverteilung zu sprechen.
56+> gutem Glauben erfasste Zahlen (eine ruhigere, sachlichere Art, über die
57+> Aufgabenverteilung zu sprechen).
5358 > Mobile-first-PWA, vollständig serverseitig gerendert (JavaScript nur als
54-> Progressive Enhancement), dreisprachig (FR/EN/DE — die Sprache ist eine
59+> Progressive Enhancement), dreisprachig (FR/EN/DE, die Sprache ist eine
5560 > Einstellung pro Benutzer). Rust (axum, askama, sqlx), PostgreSQL, ohne
5661 > Frontend-Framework.
5762
@@ -66,7 +71,7 @@ front, une seule feuille de CSS.
6671 l'historique), une colonne par membre, détail par segment en bottom sheet.
6772 - **Todo list d'équipe** : tâches datées rattachées à une catégorie ;
6873 n'importe quel membre peut prendre une tâche (verrou : seul le preneur la
69- termine ou la modifie), la marquer faite en enregistrant — ou non — un
74+ termine ou la modifie), la marquer faite en enregistrant (ou non) un
7075 temps, puis la reprogrammer à la date proposée (médiane des intervalles
7176 entre complétions). Assignations purement informatives avec filtre
7277 « Mes tâches », bloc « À venir » pour les tâches futures.
@@ -74,9 +79,9 @@ front, une seule feuille de CSS.
7479 (cookie), invitations par username, couleur d'équipe dérivée de son id.
7580 - **Comptes** : authentification par biscuit en cookie (~6 mois),
7681 révocation au logout, CSRF stateless, argon2id.
77-- **Accessibilité** : WCAG 2.1/2.2 AA — zéro violation axe sur les 12
78- écrans (contrastes, cibles 24 px, landmarks, focus des sheets, Échap).
79-- **Trilingue** : français, anglais, allemand — la langue est un réglage
82+- **Accessibilité** : WCAG 2.1/2.2 AA (zéro violation axe sur les 12
83+ écrans : contrastes, cibles 24 px, landmarks, focus des sheets, Échap).
84+- **Trilingue** : français, anglais, allemand. La langue est un réglage
8085 **par utilisateur** (page Réglages), stocké en base : le choix suit le
8186 compte sur tous les appareils. Français par défaut à la création,
8287 modifiable par la variable d'environnement `DEFAULT_LANG`.
@@ -173,4 +178,4 @@ Notes :
173178
174179 ## Licence
175180
176-[The Unlicense](LICENSE) — domaine public.
181+[The Unlicense](LICENSE) (domaine public).
@@ -5,53 +5,58 @@
5 5
6 Application web de comptage de temps par catégorie et de tâches partagées, en6 Application web de comptage de temps par catégorie et de tâches partagées, en
7 équipe. Mobile-first (PWA), UI trilingue (français, anglais, allemand), rendu7 équipe. Mobile-first (PWA), UI trilingue (français, anglais, allemand), rendu
8-100 % côté serveur — le JavaScript n'existe qu'en amélioration progressive :8+100 % côté serveur (le JavaScript n'existe qu'en amélioration progressive :
9-tout fonctionne par liens et formulaires.9+tout fonctionne par liens et formulaires).
10 10
11 L'inspiration vient de [Maydée](https://blog.mbadmb.com/lapplication-maydee/),11 L'inspiration vient de [Maydée](https://blog.mbadmb.com/lapplication-maydee/),
12 l'application de l'association fondée par Julie Hebting pour rendre visible la12 l'application de l'association fondée par Julie Hebting pour rendre visible la
13 répartition du travail domestique ([ChEEk13 répartition du travail domestique ([ChEEk
14 Magazine](https://cheekmagazine.fr/societe/maydee-appli-charge-mentale-confinement/),14 Magazine](https://cheekmagazine.fr/societe/maydee-appli-charge-mentale-confinement/),
15 [Nouvelles News](https://nouvelles.news/15/05/2020/elle-a-cree-maydee-lappli-qui-equilibre-enfin-la-charge-mentale-dans-le-couple/)).15 [Nouvelles News](https://nouvelles.news/15/05/2020/elle-a-cree-maydee-lappli-qui-equilibre-enfin-la-charge-mentale-dans-le-couple/)).
16-La fonctionnalité centrale est la même : **comparer le temps passé** sur les16+Maydée ne semble malheureusement plus utilisable aujourd'hui (son domaine ne
17-tâches du foyer — comme les créatrices de Maydée, on considère ici que le17+pointe même plus vers l'association) : Ex Ego est né du besoin de la
18-temps est la mesure la plus « juste » du travail domestique, si tout le monde18+remplacer. La fonctionnalité centrale est la même : **comparer le temps
19-est de bonne foi. Pas d'objectif de 50-50 : une base objective pour en parler.19+passé** sur les tâches du foyer (comme les créatrices de Maydée, on considère
20+ici que le temps est la mesure la plus « juste » du travail domestique, si
21+tout le monde est de bonne foi). Pas d'objectif de 50-50 : une base objective
22+pour en parler.
20 23
21 Avoir de la *donnée* sur le temps passé aux tâches domestiques change la24 Avoir de la *donnée* sur le temps passé aux tâches domestiques change la
22 nature de la conversation : on ne débat plus de ressentis ni de souvenirs25 nature de la conversation : on ne débat plus de ressentis ni de souvenirs
23 (« j'ai l'impression de tout faire ») mais d'un relevé que chacun a constitué26 (« j'ai l'impression de tout faire ») mais d'un relevé que chacun a constitué
24 de bonne foi. La répartition des tâches devient un sujet moins passionné et27 de bonne foi. La répartition des tâches devient un sujet moins passionné et
25-plus apaisé — on regarde les chiffres ensemble, puis on décide ensemble.28+plus apaisé (on regarde les chiffres ensemble, puis on décide ensemble).
26 29
27 Stack : Rust (axum, askama, sqlx), PostgreSQL, biscuit-auth. Aucun framework30 Stack : Rust (axum, askama, sqlx), PostgreSQL, biscuit-auth. Aucun framework
28 front, une seule feuille de CSS.31 front, une seule feuille de CSS.
29 32
30-> **English** — Team time tracker and shared todo list, inspired by the33+> **English**: team time tracker and shared todo list, inspired by the
31-> French app Maydée: the core idea is comparing *time spent* on household34+> French app Maydée, which no longer seems to be available (Ex Ego was built
32-> tasks — the fairest measure of domestic work, as long as everyone acts in35+> to replace it). The core idea is comparing *time spent* on household tasks
33-> good faith. Log time per category, run a timer, take dated tasks and36+> (the fairest measure of domestic work, as long as everyone acts in good
37+> faith). Log time per category, run a timer, take dated tasks and
34 > reschedule them at their observed rhythm, and read stacked-bar statistics38 > reschedule them at their observed rhythm, and read stacked-bar statistics
35 > per member. Having *data* about time spent on housework changes the nature39 > per member. Having *data* about time spent on housework changes the nature
36 > of the conversation: instead of debating feelings and recollections, you40 > of the conversation: instead of debating feelings and recollections, you
37-> look at numbers gathered in good faith — a calmer, less heated way to talk41+> look at numbers gathered in good faith (a calmer, less heated way to talk
38-> about who does what. Mobile-first42+> about who does what). Mobile-first
39 > PWA, fully server-rendered (JavaScript is progressive enhancement only),43 > PWA, fully server-rendered (JavaScript is progressive enhancement only),
40-> trilingual (FR/EN/DE — language is a per-user setting). Rust (axum,44+> trilingual (FR/EN/DE, language is a per-user setting). Rust (axum,
41 > askama, sqlx), PostgreSQL, no front-end framework.45 > askama, sqlx), PostgreSQL, no front-end framework.
42 46
43-> **Deutsch** — Zeiterfassung und geteilte Aufgabenliste fürs Team,47+> **Deutsch**: Zeiterfassung und geteilte Aufgabenliste fürs Team,
44-> inspiriert von der französischen App Maydée: Kern der Idee ist der48+> inspiriert von der französischen App Maydée, die nicht mehr verfügbar zu
45-> Vergleich der *aufgewendeten Zeit* für Hausarbeit — das fairste Maß für49+> sein scheint (Ex Ego wurde als Ersatz gebaut). Kern der Idee ist der
46-> häusliche Arbeit, solange alle guten Willens sind. Zeiten pro Kategorie50+> Vergleich der *aufgewendeten Zeit* für Hausarbeit (das fairste Maß für
51+> häusliche Arbeit, solange alle guten Willens sind). Zeiten pro Kategorie
47 > erfassen, Timer laufen lassen, datierte Aufgaben übernehmen und im52 > erfassen, Timer laufen lassen, datierte Aufgaben übernehmen und im
48 > beobachteten Rhythmus neu planen, Statistiken pro Mitglied lesen. *Daten*53 > beobachteten Rhythmus neu planen, Statistiken pro Mitglied lesen. *Daten*
49 > über die für Hausarbeit aufgewendete Zeit verändern das Gespräch: Statt54 > über die für Hausarbeit aufgewendete Zeit verändern das Gespräch: Statt
50 > über Gefühle und Erinnerungen zu streiten, schaut man gemeinsam auf in55 > über Gefühle und Erinnerungen zu streiten, schaut man gemeinsam auf in
51-> gutem Glauben erfasste Zahlen — eine ruhigere, sachlichere Art, über die56+> gutem Glauben erfasste Zahlen (eine ruhigere, sachlichere Art, über die
52-> Aufgabenverteilung zu sprechen.57+> Aufgabenverteilung zu sprechen).
53 > Mobile-first-PWA, vollständig serverseitig gerendert (JavaScript nur als58 > Mobile-first-PWA, vollständig serverseitig gerendert (JavaScript nur als
54-> Progressive Enhancement), dreisprachig (FR/EN/DE — die Sprache ist eine59+> Progressive Enhancement), dreisprachig (FR/EN/DE, die Sprache ist eine
55 > Einstellung pro Benutzer). Rust (axum, askama, sqlx), PostgreSQL, ohne60 > Einstellung pro Benutzer). Rust (axum, askama, sqlx), PostgreSQL, ohne
56 > Frontend-Framework.61 > Frontend-Framework.
57 62
@@ -66,7 +71,7 @@ front, une seule feuille de CSS.
66 l'historique), une colonne par membre, détail par segment en bottom sheet.71 l'historique), une colonne par membre, détail par segment en bottom sheet.
67 - **Todo list d'équipe** : tâches datées rattachées à une catégorie ;72 - **Todo list d'équipe** : tâches datées rattachées à une catégorie ;
68 n'importe quel membre peut prendre une tâche (verrou : seul le preneur la73 n'importe quel membre peut prendre une tâche (verrou : seul le preneur la
69- termine ou la modifie), la marquer faite en enregistrant — ou non — un74+ termine ou la modifie), la marquer faite en enregistrant (ou non) un
70 temps, puis la reprogrammer à la date proposée (médiane des intervalles75 temps, puis la reprogrammer à la date proposée (médiane des intervalles
71 entre complétions). Assignations purement informatives avec filtre76 entre complétions). Assignations purement informatives avec filtre
72 « Mes tâches », bloc « À venir » pour les tâches futures.77 « Mes tâches », bloc « À venir » pour les tâches futures.
@@ -74,9 +79,9 @@ front, une seule feuille de CSS.
74 (cookie), invitations par username, couleur d'équipe dérivée de son id.79 (cookie), invitations par username, couleur d'équipe dérivée de son id.
75 - **Comptes** : authentification par biscuit en cookie (~6 mois),80 - **Comptes** : authentification par biscuit en cookie (~6 mois),
76 révocation au logout, CSRF stateless, argon2id.81 révocation au logout, CSRF stateless, argon2id.
77-- **Accessibilité** : WCAG 2.1/2.2 AA — zéro violation axe sur les 1282+- **Accessibilité** : WCAG 2.1/2.2 AA (zéro violation axe sur les 12
78- écrans (contrastes, cibles 24 px, landmarks, focus des sheets, Échap).83+ écrans : contrastes, cibles 24 px, landmarks, focus des sheets, Échap).
79-- **Trilingue** : français, anglais, allemand — la langue est un réglage84+- **Trilingue** : français, anglais, allemand. La langue est un réglage
80 **par utilisateur** (page Réglages), stocké en base : le choix suit le85 **par utilisateur** (page Réglages), stocké en base : le choix suit le
81 compte sur tous les appareils. Français par défaut à la création,86 compte sur tous les appareils. Français par défaut à la création,
82 modifiable par la variable d'environnement `DEFAULT_LANG`.87 modifiable par la variable d'environnement `DEFAULT_LANG`.
@@ -173,4 +178,4 @@ Notes :
173 178
174 ## Licence179 ## Licence
175 180
176-[The Unlicense](LICENSE) — domaine public.181+[The Unlicense](LICENSE) (domaine public).