Aller au contenu

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 (sub du JWT).
  • Thèmes daisyUI : retro par défaut, forest si 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.

    Architecture

  • API


    Routes REST, modèle de données et schéma SQL.

    Référence API

  • Développement


    Lancer le projet en local, variables d'environnement, migrations.

    Développement

  • Déploiement


    Configuration Dokploy, CORS, redéploiement et dépannage.

    Déploiement

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.