# TowerControl - Plan de développement ## Phase 1: Setup initial et architecture backend (Priorité 1) ### 1.1 Configuration projet Next.js - [x] Initialiser Next.js avec TypeScript - [x] Configurer ESLint, Prettier - [x] Setup structure de dossiers selon les règles du workspace - [x] Configurer base de données (SQLite local pour commencer) - [x] 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 de base - [ ] `app/api/tasks/route.ts` - CRUD tâches - [ ] `app/api/tasks/sync/route.ts` - Synchronisation rappels - [ ] `app/api/tags/route.ts` - Gestion des tags - [ ] Middleware d'authentification basique (si nécessaire) ## 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.*