| @@ -5,53 +5,58 @@ |
| 5 | | 5 | |
| 6 | Application web de comptage de temps par catégorie et de tâches partagées, en | 6 | 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), rendu | 7 | é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 la | 12 | l'application de l'association fondée par Julie Hebting pour rendre visible la |
| 13 | répartition du travail domestique ([ChEEk | 13 | 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 les | 16 | +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 le | 17 | +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 monde | 18 | +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 la | 24 | 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 souvenirs | 25 | 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é et | 27 | 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 framework | 30 | 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 the | 33 | +> **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 | 34 | +> 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 in | 35 | +> 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 and | 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 |
| 34 | > reschedule them at their observed rhythm, and read stacked-bar statistics | 38 | > reschedule them at their observed rhythm, and read stacked-bar statistics |
| 35 | > per member. Having *data* about time spent on housework changes the nature | 39 | > per member. Having *data* about time spent on housework changes the nature |
| 36 | > of the conversation: instead of debating feelings and recollections, you | 40 | > 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 | 41 | +> look at numbers gathered in good faith (a calmer, less heated way to talk |
| 38 | -> about who does what. Mobile-first | 42 | +> 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 der | 48 | +> 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ür | 49 | +> sein scheint (Ex Ego wurde als Ersatz gebaut). Kern der Idee ist der |
| 46 | -> häusliche Arbeit, solange alle guten Willens sind. Zeiten pro Kategorie | 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 |
| 47 | > erfassen, Timer laufen lassen, datierte Aufgaben übernehmen und im | 52 | > 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: Statt | 54 | > ü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 in | 55 | > über Gefühle und Erinnerungen zu streiten, schaut man gemeinsam auf in |
| 51 | -> gutem Glauben erfasste Zahlen — eine ruhigere, sachlichere Art, über die | 56 | +> 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 als | 58 | > 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 |
| 55 | > Einstellung pro Benutzer). Rust (axum, askama, sqlx), PostgreSQL, ohne | 60 | > 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 la | 73 | 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 |
| 70 | temps, puis la reprogrammer à la date proposée (médiane des intervalles | 75 | temps, puis la reprogrammer à la date proposée (médiane des intervalles |
| 71 | entre complétions). Assignations purement informatives avec filtre | 76 | 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 12 | 82 | +- **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églage | 84 | +- **Trilingue** : français, anglais, allemand. La langue est un réglage |
| 80 | **par utilisateur** (page Réglages), stocké en base : le choix suit le | 85 | **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 | ## Licence | 179 | ## Licence |
| 175 | | 180 | |
| 176 | -[The Unlicense](LICENSE) — domaine public. | 181 | +[The Unlicense](LICENSE) (domaine public). |