Spaces:
Running
Running
Ctrl+K
- 1.52 kB initial commit
- 212 Bytes Tu es DeepSite V2. Crée une application web responsive de gestion de tâches (To-Do List) avec dates d’échéance, rappels, catégories, priorités, et vues par catégorie/priorité. 🎯 Objectif - Un gestionnaire de tâches simple, rapide, multi-appareils (desktop + mobile), clair et efficace. - Toutes les données sont privées à l’utilisateur connecté. 🔐 Authentification - Activer l’inscription/connexion (email + mot de passe). - Chaque ressource est isolée par user_id (multi-tenant). 🗃️ Modèle de données (DB) - users(id, email, password_hash, created_at) - categories(id, user_id, name UNIQUE par user, color HEX, icon TEXT, sort_index INT, created_at) - tasks( id, user_id, title VARCHAR(140) NOT NULL, description TEXT, status ENUM('todo','in_progress','done','archived') DEFAULT 'todo', priority ENUM('low','normal','high','urgent') DEFAULT 'normal', category_id FK -> categories.id NULL, due_at TIMESTAMP NULL, completed_at TIMESTAMP NULL, created_at TIMESTAMP NOT NULL, updated_at TIMESTAMP NOT NULL ) + index(user_id, status, priority, due_at, category_id) - reminders( id, user_id, task_id FK -> tasks.id, remind_at TIMESTAMP NOT NULL, channel ENUM('in_app','email','push') DEFAULT 'in_app', created_at ) + index(user_id, remind_at) 🧭 Règles & validations - title obligatoire (≤ 140 caractères). - Max 5 rappels par tâche. - due_at optionnel; si passé et status ≠ 'done' → marquer “en retard”. - category.name unique par utilisateur. - Supprimer une catégorie n’efface pas les tâches : category_id passe à NULL. 🔔 Rappels & notifications - Workflow planifié : à l’heure remind_at, envoyer une notification in-app; si l’utilisateur a un email → envoyer aussi email (optionnel dans Paramètres). - Boutons “Snooze” : +10 min, +1 h, demain 09:00, lundi 09:00 (recrée un reminder). - Si due_at atteint et tâche non faite → bannière “Échéance dépassée” + alerte unique. 🖥️ Écrans / UX 1) Tableau de Bord - Sections : “En retard”, “Aujourd’hui”, “Demain”, “À venir”. - Carte tâche : checkbox, title, badges (priorité, catégorie), due_at relatif, menu “…” (Éditer, Dupliquer, Archiver, Supprimer). - Quick-add en haut (“Que devez-vous faire ?”) avec saisie rapide de date (#catégorie, !priorité). 2) Toutes les Tâches (liste + filtres) - Filtres combinables : statut, catégorie, priorité, date (aujourd’hui/semaine/mois/plage), “avec rappel”, “sans échéance”. - Recherche plein texte (title + description). - Actions groupées : marquer fait, changer catégorie/priorité, supprimer. - Tri : due_at, priorité, créé le, mis à jour le. - Drag-and-drop pour réordonner dans la vue courante. 3) Vue Catégories - Sidebar catégories (nom, couleur, compteur). - Liste des tâches de la catégorie sélectionnée. - CRUD Catégories (nom, couleur, icône, ordre). 4) Vue Priorités - 4 colonnes (Urgent, High, Normal, Low) type Kanban. - Drag-and-drop entre colonnes = change la priorité. 5) Détail Tâche (drawer/modal) - Champs : title, description (markdown basique), due_at (date+heure), priorité, catégorie, statut. - Bloc “Rappels” : liste des remind_at + bouton “Ajouter un rappel”. - Boutons rapides : “Terminer”, “Snooze”, “Dupliquer”, “Archiver”. 6) Calendrier (optionnel mais souhaité) - Vue Mois/Semaine avec tâches par date d’échéance; drag pour changer due_at. 7) Paramètres - Préférences : rappel par défaut (ex: 30 min avant), canaux (in-app/email), créneaux de travail (8h–18h). - Thème clair/sombre. 🎨 UI/Design - Minimal, moderne, accessible (WCAG AA). - Codes couleur : - Urgent = accent rouge, High = accent orange, Normal = accent bleu, Low = accent gris. - Badges arrondis, icônes simples, animations légères. - Mobile : barre d’onglets (Dashboard, Toutes, Catégories, Priorités, Paramètres). 🔗 API/Actions (exemples) - POST /tasks (title, description?, due_at?, priority, category_id?, reminders[]?) - PATCH /tasks/:id (tous champs éditables) - POST /tasks/:id/complete (toggle) - POST /tasks/:id/snooze (preset → crée reminder) - CRUD /categories - CRUD /reminders 🧪 Cas de test/acceptance - Créer une tâche “Payer l’assurance” due_at demain 17:00, priorité High, catégorie “Administration”, 2 rappels (−1 h, −10 min) → notifications reçues aux bonnes heures. - Passer une tâche à “done” supprime les notifications futures. - Filtrer “Aujourd’hui + Urgent” n’affiche que les tâches correspondantes. - Changer la priorité via la vue Kanban met à jour la carte dans Toutes les Tâches. - Supprimer la catégorie conserve les tâches (catégorie = vide). - Recherche “facture” trouve les tâches avec ce mot dans title ou description. 🌱 Données de démo - Catégories : Travail (#2563eb), Personnel (#16a34a), Immobilier (#7c3aed), Administration (#db2777) - 6–10 tâches couvrant tous les cas (en retard, aujourd’hui, avec/sans rappel, 4 niveaux de priorité). ⚙️ Performances & qualité - Pagination/infinite scroll sur longues listes. - Optimistic UI sur création/édition/suppression. - Index DB sur (user_id, due_at), (user_id, priority), (user_id, status). Livrables attendus - Base de données configurée, API opérationnelle, workflows de rappels actifs. - UI complète (écrans cités), thème dark/light, responsive. - Seed de démo + jeu de tests/acceptance. - Initial Deployment
- 78.4 kB le bouton + dans le cadre de saisie ne fonctionne pas - Follow Up Deployment
- 388 Bytes initial commit