feat: overhaul TODO.md and enhance Kanban components
- Updated TODO.md to reflect the new project structure and phases, marking several tasks as completed. - Enhanced Kanban components with a tech-inspired design, including new styles for columns and task cards. - Removed the obsolete reminders service and task processor, streamlining the codebase for better maintainability. - Introduced a modern API for task management, including CRUD operations and improved error handling. - Updated global styles for a cohesive dark theme and added custom scrollbar styles.
This commit is contained in:
183
TODO.md
183
TODO.md
@@ -1,131 +1,138 @@
|
||||
# TowerControl - Plan de développement
|
||||
# TowerControl v2.0 - Gestionnaire de tâches moderne
|
||||
|
||||
## Phase 1: Setup initial et architecture backend (Priorité 1)
|
||||
## ✅ Phase 1: Nettoyage et architecture (TERMINÉ)
|
||||
|
||||
### 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] Configurer base de données (SQLite local)
|
||||
- [x] Setup Prisma ORM
|
||||
|
||||
### 1.2 Architecture backend - Services de base
|
||||
### 1.2 Architecture backend standalone
|
||||
- [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
|
||||
- [x] Créer `services/tasks.ts` - Service CRUD pour les tâches
|
||||
- [x] Créer `lib/types.ts` - Types partagés (Task, Tag, etc.)
|
||||
- [x] Nettoyer l'ancien code de synchronisation
|
||||
|
||||
### 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.3 API moderne et propre
|
||||
- [x] `app/api/tasks/route.ts` - API CRUD complète (GET, POST, PATCH, DELETE)
|
||||
- [x] Supprimer les routes de synchronisation obsolètes
|
||||
- [x] Configuration moderne dans `lib/config.ts`
|
||||
|
||||
### 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
|
||||
**Architecture finale** : App standalone avec backend propre et API REST moderne
|
||||
|
||||
**Note** : Privilégier SSR avec appels directs aux services plutôt que créer plus de routes API
|
||||
## 🎯 Phase 2: Interface utilisateur moderne (EN COURS)
|
||||
|
||||
## Phase 2: Interface utilisateur Kanban (Priorité 2)
|
||||
### 2.1 Système de design et composants UI
|
||||
- [ ] Créer les composants UI de base (Button, Input, Card, Modal, etc.)
|
||||
- [ ] Implémenter le système de design (couleurs, typographie, spacing)
|
||||
- [ ] Setup Tailwind CSS avec design tokens personnalisés
|
||||
- [ ] Créer une palette de couleurs moderne et accessible
|
||||
|
||||
### 2.1 Composants de base
|
||||
### 2.2 Composants Kanban existants (à améliorer)
|
||||
- [x] `components/kanban/Board.tsx` - Tableau Kanban principal
|
||||
- [x] `components/kanban/Column.tsx` - Colonnes du Kanban
|
||||
- [x] `components/kanban/Column.tsx` - Colonnes du Kanban
|
||||
- [x] `components/kanban/TaskCard.tsx` - Cartes de tâches
|
||||
- [x] `components/ui/Header.tsx` - Header avec statistiques
|
||||
- [ ] Améliorer le design et l'UX des composants existants
|
||||
|
||||
### 2.2 Clients HTTP
|
||||
### 2.3 Clients HTTP et hooks
|
||||
- [ ] `clients/tasks-client.ts` - Client pour les tâches
|
||||
- [ ] `clients/base/http-client.ts` - Client HTTP de base
|
||||
- [ ] `hooks/useTasks.ts` - Hook pour la gestion des tâches
|
||||
- [ ] `hooks/useKanban.ts` - Hook pour drag & drop
|
||||
- [ ] 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 Fonctionnalités Kanban avancées
|
||||
- [ ] Drag & drop entre colonnes (react-beautiful-dnd)
|
||||
- [ ] Formulaires de création/édition de tâches
|
||||
- [ ] Filtrage par tags/statut/priorité
|
||||
- [ ] Recherche en temps réel dans les tâches
|
||||
- [ ] Gestion des tags avec couleurs
|
||||
|
||||
### 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: Dashboard et analytics (Priorité 3)
|
||||
|
||||
## Phase 3: Intégration Jira (Priorité 3)
|
||||
### 3.1 Page d'accueil/dashboard
|
||||
- [ ] Créer une page d'accueil moderne avec vue d'ensemble
|
||||
- [ ] Widgets de statistiques (tâches par statut, priorité, etc.)
|
||||
- [ ] Graphiques de productivité (tâches complétées par jour/semaine)
|
||||
- [ ] Indicateurs de performance personnels
|
||||
|
||||
### 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 Analytics et métriques
|
||||
- [ ] `services/analytics.ts` - Calculs statistiques
|
||||
- [ ] Métriques de productivité (vélocité, temps moyen, etc.)
|
||||
- [ ] Graphiques avec Chart.js ou Recharts
|
||||
- [ ] Export des données en CSV/JSON
|
||||
|
||||
### 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
|
||||
## 🔧 Phase 4: Fonctionnalités avancées (Priorité 4)
|
||||
|
||||
### 3.3 Interface Jira
|
||||
- [ ] Sélecteur de projets Jira
|
||||
- [ ] Affichage mixte rappels + Jira dans le Kanban
|
||||
- [ ] Indicateurs visuels pour différencier les sources
|
||||
### 4.1 Gestion avancée des tâches
|
||||
- [ ] Sous-tâches et hiérarchie
|
||||
- [ ] Dates d'échéance et rappels
|
||||
- [ ] Assignation et collaboration
|
||||
- [ ] Templates de tâches
|
||||
|
||||
## Phase 4: Statistiques équipe (Priorité 4)
|
||||
### 4.2 Personnalisation et thèmes
|
||||
- [ ] Mode sombre/clair
|
||||
- [ ] Personnalisation des couleurs
|
||||
- [ ] Configuration des colonnes Kanban
|
||||
- [ ] Préférences utilisateur
|
||||
|
||||
### 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.)
|
||||
## 🚀 Phase 5: Intégrations futures (Priorité 5)
|
||||
|
||||
### 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
|
||||
### 5.1 Intégrations externes (optionnel)
|
||||
- [ ] Import/Export depuis d'autres outils
|
||||
- [ ] API webhooks pour intégrations
|
||||
- [ ] Synchronisation cloud (optionnel)
|
||||
- [ ] Notifications push
|
||||
|
||||
## 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
|
||||
### 5.2 Optimisations et performance
|
||||
- [ ] Optimisation des requêtes DB
|
||||
- [ ] Pagination des tâches
|
||||
- [ ] Mode offline basique
|
||||
- [ ] Pagination et virtualisation
|
||||
- [ ] Cache côté client
|
||||
- [ ] PWA et mode offline
|
||||
|
||||
## Configuration technique
|
||||
## 🛠️ Configuration technique
|
||||
|
||||
### Stack
|
||||
### Stack moderne
|
||||
- **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
|
||||
- **Backend**: Next.js API Routes, Prisma ORM
|
||||
- **Database**: SQLite (local) → PostgreSQL (production future)
|
||||
- **UI**: Composants custom + Shadcn/ui, React Beautiful DnD
|
||||
- **Charts**: Recharts ou Chart.js pour les analytics
|
||||
|
||||
### Structure respectée
|
||||
### Architecture 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
|
||||
src/app/
|
||||
├── api/tasks/ # API CRUD complète
|
||||
├── page.tsx # Page principale
|
||||
└── layout.tsx
|
||||
|
||||
services/
|
||||
├── database.ts # Pool Prisma
|
||||
└── tasks.ts # Service tâches standalone
|
||||
|
||||
components/
|
||||
├── kanban/ # Board Kanban
|
||||
├── ui/ # Composants UI de base
|
||||
└── dashboard/ # Widgets dashboard (futur)
|
||||
|
||||
clients/ # Clients HTTP (à créer)
|
||||
hooks/ # Hooks React (à créer)
|
||||
lib/
|
||||
├── types.ts # Types TypeScript
|
||||
└── config.ts # Config app moderne
|
||||
```
|
||||
|
||||
## Prochaines étapes immédiates
|
||||
## 🎯 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
|
||||
1. **Créer les composants UI de base** (Button, Input, Card, Modal)
|
||||
2. **Implémenter le système de design** avec Tailwind
|
||||
3. **Améliorer le Kanban** avec un design moderne
|
||||
4. **Ajouter drag & drop** entre les colonnes
|
||||
5. **Créer les formulaires** de tâches
|
||||
|
||||
---
|
||||
|
||||
*Ce plan se concentre d'abord sur le backend et les rappels macOS comme demandé. Chaque phase peut être développée indépendamment.*
|
||||
*Focus sur l'expérience utilisateur et le design moderne. App standalone prête pour évoluer.*
|
||||
|
||||
Reference in New Issue
Block a user