- Marked tasks in TODO.md as completed for macOS reminders integration. - Enhanced RemindersService to filter reminders based on enabled lists and added detailed logging for better debugging. - Implemented methods for retrieving reminders from specific lists and parsing output from AppleScript.
4.7 KiB
4.7 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 de base
app/api/tasks/route.ts- CRUD tâchesapp/api/tasks/sync/route.ts- Synchronisation rappelsapp/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 principalcomponents/kanban/Column.tsx- Colonnes du Kanbancomponents/kanban/TaskCard.tsx- Cartes de tâchescomponents/ui/- Composants UI réutilisables
2.2 Clients HTTP
clients/tasks-client.ts- Client pour les tâchesclients/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âcheshooks/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 APIservices/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 projetsapp/api/jira/tasks/route.ts- Tâches Jiraapp/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 équipeservices/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 équipecomponents/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
- Setup Next.js avec la structure de dossiers
- Recherche technique : Comment accéder aux rappels macOS localement
- Créer le service
reminders.tspour l'extraction des données - 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.