TaskFlow
Une application de gestion de projets et de tâches pour freelances et petites équipes : workspaces, rôles, tableau Kanban et chat intégré. En cours - le projet de mon dossier de certification RNCP5.
- Flask
- PostgreSQL
- Docker
- Caddy
- Gunicorn
- Redis
- Socket.IO
Le travail est organisé en Workspace → Projets → Tâches. Les tâches ont un statut, une priorité, un assigné et une échéance, et s'affichent sur un tableau Kanban. Chaque workspace a des membres avec un rôle : owner, admin, member ou guest. Il y a un chat par workspace et des messages directs entre utilisateurs.
Le backend est en Flask, découpé en blueprints (auth, workspaces, projets, tâches, messages directs). Il parle à PostgreSQL 17 en SQL brut via psycopg, et utilise Socket.IO pour le chat. Le frontend est en HTML, CSS et JavaScript vanilla, sans étape de build. Les mots de passe sont hachés avec Argon2, les sessions passent par cookie, et Redis sert au rate limiting. En production, il tourne sur Docker Compose derrière Caddy, avec Gunicorn pour servir Flask.
Statut : pas terminé. C'est le projet de mon dossier de certification RNCP5, à rendre le 31 décembre 2026, et une démo est en ligne. Les tests utilisent des doubles pour la base de données : ils couvrent une sélection de chemins d'authentification, de permissions, de validation, de messagerie et de health check, mais pas les requêtes PostgreSQL ni le rendu dans le navigateur, qui demandent une base réelle et des vérifications manuelles.
- Backend
Flask · blueprints · psycopg
Un blueprint par domaine (auth, workspaces, projets, tâches, messages directs) ; SQL brut, pas d’ORM.
- Permissions
app/permissions.py
Un seul fichier contient les contrôles. Un projet ou une tâche remonte à son workspace, puis au rôle de l’utilisateur dans workspace_members.
- Database
PostgreSQL 17
users, workspaces, workspace_members, projects, tasks, sessions, workspace_messages, direct_messages.
- Deployment
Docker Compose · Caddy · Gunicorn · Redis
Caddy sert le frontend statique et proxifie /api et /socket.io vers Flask ; Redis stocke les compteurs de rate limiting.
TaskFlow
Une application de gestion de projets et de tâches pour freelances et petites équipes : workspaces, rôles, tableau Kanban et chat intégré. En cours - le projet de mon dossier de certification RNCP5.
- Flask
- PostgreSQL
- Docker
- Caddy
- Gunicorn
- Redis
- Socket.IO