Application full-stack multi-utilisateurs pour piloter un TPI CFC Informaticien de bout en bout : planification, suivi, documentation, analyse de risques et export complet du projet.
TPI Flow centralise dans une seule application les besoins les plus chronophages d'un TPI : structuration du planning, suivi journalier, préparation de la documentation, gestion des risques, import des documents officiels et sauvegarde complète du projet.
Le dépôt contient un monorepo Bun avec un frontend React 19, une API Express 5, PostgreSQL via Drizzle ORM, l'authentification par email ou Google OAuth, et un contrat OpenAPI utilisé pour générer les clients TypeScript.
- Diagramme de Gantt interactif avec création par glisser-déposer, dépendances, baselines et exports.
- Tableau Kanban avec filtres avancés, priorités, dépendances et export PDF.
- Journal de travail structuré avec pièces jointes, export JSON et PDF horodaté RFC 3161.
- Analyse de risques avec matrice interactive, KPIs et export PDF ou Excel.
- Dossier de projet TipTap avec sections prédéfinies pour le rapport TPI.
- Import du cahier des charges, import CSV GanttProject et import des critères d'évaluation.
- Export et restauration complète du projet au format
.tpi.json. - Authentification sécurisée par cookie HTTP-only et isolation stricte des données par utilisateur.
| Outil | Version |
|---|---|
| Bun | >= 1.0 |
| Docker | >= 20.0 |
| Docker Compose | >= 2.0 |
# 1. Installer les dépendances
bun install
# 2. Configurer l'environnement
cp .env.example .env
# 3. Rendre le fichier .env visible pour l'API
ln -s ../../.env apps/api/.env
# 4. Démarrer PostgreSQL et appliquer le schéma
docker compose up -d
bun run db:push
# 5. Charger les données de base puis lancer l'application
bun run db:seed
bun run devApplication en local :
- Frontend :
http://localhost:5173 - API :
http://localhost:3001
Pour charger directement des données de démonstration :
bun run db:seed-sample| Commande | Description |
|---|---|
bun run dev |
Lance le frontend et l'API en mode développement |
bun run dev:web |
Lance uniquement le frontend |
bun run dev:api |
Lance uniquement l'API |
bun run build |
Typecheck puis build de production |
bun run lint |
Vérifie ESLint sur le monorepo |
bun run typecheck |
Vérifie TypeScript sur tous les packages |
bun run db:push |
Applique le schéma Drizzle à PostgreSQL |
bun run codegen |
Régénère les artefacts client depuis OpenAPI |
Le détail du workflow de développement est documenté dans docs/DEVELOPMENT.md.
React 19 + Vite
|
| fetch /api/* + React Query
v
Express 5 sur Bun
|
| Drizzle ORM + better-auth
v
PostgreSQL 17Le contrat API est maintenu dans packages/api-spec/openapi.yaml et les schémas de données dans packages/db/src/schema.
| Besoin | Document |
|---|---|
| Organisation des endpoints | docs/API.md |
| Modèle de données et enums métier | docs/DATABASE.md |
| Workflow de développement | docs/DEVELOPMENT.md |
| Guide de contribution | CONTRIBUTING.md |
| Politique de sécurité | SECURITY.md |
| Contexte projet et stack | CLAUDE.md |
| Conventions du dépôt | AGENTS.md |
| Couche | Technologies |
|---|---|
| Runtime | Bun |
| Frontend | React 19, Vite 8, Tailwind CSS 4, Wouter |
| Backend | Express 5 |
| Base de données | PostgreSQL 17, Drizzle ORM |
| Auth | better-auth |
| Validation | Zod 4 |
| Contrat API | OpenAPI 3.1, Orval |
| Outils UI | Radix UI, Lucide, Framer Motion, TipTap |
Avant de proposer une modification, exécutez au minimum :
bun run typecheck
bun run lintSi vous modifiez la spec OpenAPI, relancez aussi :
bun run codegenLe guide de contribution complet est disponible dans CONTRIBUTING.md. Les conventions de structure, style et validation sont détaillées dans AGENTS.md.
Le dépôt inclut désormais :
- une pipeline GitHub Actions dans
.github/workflows/ci.yml; - une automation de release/changelog dans
.github/workflows/release-please.yml; - une configuration Railway dans
railway.json.
Ce projet est distribué sous licence GNU GPL v3.
Le nom TPI Flow, le logo et les éléments graphiques associés restent des éléments de marque du projet.