- 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.
132 lines
4.8 KiB
Markdown
132 lines
4.8 KiB
Markdown
# 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
|
|
- [x] Créer `services/database.ts` - Pool de connexion DB
|
|
- [x] Créer `services/reminders.ts` - Service pour récupérer les rappels macOS
|
|
- [x] Créer `lib/types.ts` - Types partagés (Task, Tag, Project, etc.)
|
|
- [x] Créer `services/task-processor.ts` - Logique métier des tâches
|
|
|
|
### 1.3 Intégration Rappels macOS (Focus principal Phase 1)
|
|
- [x] Rechercher comment accéder aux rappels macOS en local (SQLite, AppleScript, ou API)
|
|
- [x] Créer script d'extraction des rappels depuis la DB locale macOS
|
|
- [x] Parser les tags et catégories des rappels
|
|
- [x] Mapper les données vers le modèle interne
|
|
- [x] Créer service de synchronisation périodique
|
|
|
|
### 1.4 API Routes essentielles (terminé)
|
|
- [x] `app/api/tasks/route.ts` - CRUD tâches
|
|
- [x] `app/api/sync/reminders/route.ts` - Synchronisation rappels
|
|
- [x] `app/api/config/route.ts` - Configuration et test des listes
|
|
- [x] `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.*
|