Todolist¶
Gestionnaire de tâches personnel multi-utilisateurs. Chaque utilisateur se connecte via Clerk et ne voit que ses propres tâches. Le projet se compose d'une API REST en Rust (Axum + SQLx), d'un front React (Vite) et d'une base PostgreSQL.
| Application | todo.dunkan.xyz |
| API | api.todo.dunkan.xyz (toutes les routes exigent un JWT Clerk) |
| Dépôt | DuncanCos/todolist, branche main |
| Hébergement | Dokploy, projet « todos », environnement production |
Fonctionnalités¶
- Connexion / déconnexion via Clerk (
SignInButton,UserButton). Sans session, la liste n'est pas affichée. - Liste des tâches de l'utilisateur connecté.
- Création d'une tâche (titre + description).
- Modification du titre et de la description.
- Passage d'une tâche à « faite » (
done) et retour à « à faire » (todo). - Suppression d'une tâche.
- Isolation par utilisateur : chaque requête SQL filtre sur
user_id, c'est-à-dire l'identifiant Clerk (subdu JWT). - Thèmes daisyUI :
retropar défaut,forestsi le système est en mode sombre.
Stack¶
| Couche | Technologies |
|---|---|
| Backend | Rust (édition 2024), Axum 0.8, SQLx 0.8 (PostgreSQL), tower-http (CORS, traces), clerk-rs 0.4 |
| Frontend | React 19 (JavaScript), Vite (rolldown-vite 7.1), Tailwind CSS 4 + daisyUI 5, axios, @clerk/clerk-react 5 |
| Base de données | PostgreSQL, 1 table todos (migration SQLx) |
| Authentification | Clerk : JWT de session émis côté front, vérifié côté API via les clés publiques (JWKS) de Clerk |
| Déploiement | Dokploy : 2 applications (Nixpacks, Railpack) + 1 base Postgres gérée |
Composants¶
| Composant | Dossier | Prod (Dokploy) | Build | Port conteneur | Local (docker-compose) |
|---|---|---|---|---|---|
| API | todoback/ |
App « Backend », api.todo.dunkan.xyz | Nixpacks | 8080 | localhost:8080 |
| Front | todofront/ |
App « frontend », todo.dunkan.xyz | Railpack | 80 | localhost:3000 |
| Base | migrations/ (schéma) |
Base « postgres » (postgres:latest, base todos) |
– | 5432 | localhost:5432 |
Dans cette section¶
-
Architecture
Back, front, base et flux d'authentification Clerk.
-
API
Routes REST, modèle de données et schéma SQL.
-
Développement
Lancer le projet en local, variables d'environnement, migrations.
-
Déploiement
Configuration Dokploy, CORS, redéploiement et dépannage.
README
Le README.md à la racine du dépôt ne contient que le titre, et todofront/README.md est celui du template Vite.
Cette documentation est donc la référence.