Files
towercontrol/TODO.md
Julien Froidefond e173c09119 feat: finalize essential API routes in TODO.md
- Marked API routes as completed, including CRUD for tasks, reminders sync, configuration, and testing services.
- Updated section title to reflect completion and added note to prioritize SSR with direct service calls.
2025-09-13 13:51:02 +02:00

4.8 KiB

TowerControl - Plan de développement

Phase 1: Setup initial et architecture backend (Priorité 1)

1.1 Configuration projet Next.js

  • Initialiser Next.js avec TypeScript
  • Configurer ESLint, Prettier
  • Setup structure de dossiers selon les règles du workspace
  • Configurer base de données (SQLite local pour commencer)
  • Setup Prisma ORM

1.2 Architecture backend - Services de base

  • Créer services/database.ts - Pool de connexion DB
  • Créer services/reminders.ts - Service pour récupérer les rappels macOS
  • Créer lib/types.ts - Types partagés (Task, Tag, Project, etc.)
  • Créer services/task-processor.ts - Logique métier des tâches

1.3 Intégration Rappels macOS (Focus principal Phase 1)

  • Rechercher comment accéder aux rappels macOS en local (SQLite, AppleScript, ou API)
  • Créer script d'extraction des rappels depuis la DB locale macOS
  • Parser les tags et catégories des rappels
  • Mapper les données vers le modèle interne
  • Créer service de synchronisation périodique

1.4 API Routes essentielles (terminé)

  • app/api/tasks/route.ts - CRUD tâches
  • app/api/sync/reminders/route.ts - Synchronisation rappels
  • app/api/config/route.ts - Configuration et test des listes
  • app/api/test/route.ts - Tests des services

Note : Privilégier SSR avec appels directs aux services plutôt que créer plus de routes API

Phase 2: Interface utilisateur Kanban (Priorité 2)

2.1 Composants de base

  • components/kanban/Board.tsx - Tableau Kanban principal
  • components/kanban/Column.tsx - Colonnes du Kanban
  • components/kanban/TaskCard.tsx - Cartes de tâches
  • components/ui/ - Composants UI réutilisables

2.2 Clients HTTP

  • clients/tasks-client.ts - Client pour les tâches
  • clients/base/http-client.ts - Client HTTP de base
  • Gestion des erreurs et loading states

2.3 Hooks React

  • hooks/useTasks.ts - Hook pour la gestion des tâches
  • hooks/useKanban.ts - Hook pour la logique Kanban (drag & drop)
  • hooks/useSync.ts - Hook pour la synchronisation

2.4 Interface Kanban

  • Affichage des tâches par statut/tag
  • Drag & drop entre colonnes
  • Filtrage par tags/projets
  • Recherche dans les tâches

Phase 3: Intégration Jira (Priorité 3)

3.1 Services Jira

  • services/jira-client.ts - Client Jira API
  • services/jira-sync.ts - Synchronisation des tâches Jira
  • Gestion multi-projets Jira
  • Mapping des statuts Jira vers Kanban interne

3.2 API Routes Jira

  • app/api/jira/projects/route.ts - Liste des projets
  • app/api/jira/tasks/route.ts - Tâches Jira
  • app/api/jira/sync/route.ts - Synchronisation
  • Configuration des credentials Jira

3.3 Interface Jira

  • Sélecteur de projets Jira
  • Affichage mixte rappels + Jira dans le Kanban
  • Indicateurs visuels pour différencier les sources

Phase 4: Statistiques équipe (Priorité 4)

4.1 Services analytics

  • services/team-analytics.ts - Calculs statistiques équipe
  • services/jira-team-sync.ts - Récupération données équipe
  • Agrégation des métriques (vélocité, burndown, etc.)

4.2 Dashboard équipe

  • components/dashboard/TeamStats.tsx - Statistiques équipe
  • components/charts/ - Graphiques (vélocité, burndown, etc.)
  • app/team/page.tsx - Page dédiée équipe
  • Filtres par période, membre, projet

Phase 5: Outils additionnels (Priorité 5)

5.1 Intégrations futures

  • Calendrier (événements, deadlines)
  • Notifications (rappels, alertes)
  • Export/Import de données
  • Thèmes et personnalisation

5.2 Optimisations

  • Cache Redis pour les données Jira
  • Optimisation des requêtes DB
  • Pagination des tâches
  • Mode offline basique

Configuration technique

Stack

  • Frontend: Next.js 14, React, TypeScript, Tailwind CSS
  • Backend: Next.js API Routes, Prisma ORM
  • Database: SQLite (local) → PostgreSQL (production)
  • Intégrations: macOS Reminders, Jira API
  • UI: Shadcn/ui, React DnD pour le Kanban

Structure respectée

/services/          # Accès DB et logique métier
/app/api/          # Routes API utilisant les services
/clients/          # Clients HTTP frontend
/components/       # Composants React (pas de logique métier)
/hooks/           # Hooks React
/lib/             # Types et utilitaires partagés

Prochaines étapes immédiates

  1. Setup Next.js avec la structure de dossiers
  2. Recherche technique : Comment accéder aux rappels macOS localement
  3. Créer le service reminders.ts pour l'extraction des données
  4. API de base pour les tâches et synchronisation

Ce plan se concentre d'abord sur le backend et les rappels macOS comme demandé. Chaque phase peut être développée indépendamment.