Application complète de productivité pour étudiants, conçue pour iPad, avec persistance localStorage.
- Création/édition/suppression de matières avec couleurs et icônes
- Chapitres avec priorité, niveau de maîtrise (0-5 étoiles), dates d'examen
- Organisation intuitive par matière
- Tâches avec priorités, dates limites, sous-tâches, tags
- Objectifs à court terme (0-2 sem), moyen terme (2-8 sem), long terme (2+ mois)
- Vue Kanban (À faire / En cours / Terminé)
- Milestones et suivi de progression automatique
- Filtres intelligents (Aujourd'hui, Cette semaine, En retard)
- Lien tâches ↔ objectifs pour tracking complet
- Statistiques et analytics détaillées
- Vue semaine avec grid 7 jours
- Ajout/modification/suppression de sessions
- Marquage des sessions complétées
- Navigation entre les semaines
- Presets configurables (25/5, 40/10, 50/10)
- Timer circulaire animé
- Phases focus et pause
- Statistiques quotidiennes et totales
- Gestion des streaks
3 phases complètes :
-
Avant le cours :
- Sélection matière/chapitre
- Choix de 1-3 objectifs
- Micro-défi aléatoire
-
Pendant le cours :
- Interface minimaliste plein écran
- Compteur d'attention ajustable (0-5)
- Compteur de distractions
- Notes rapides
- Navigation bloquée
-
Après le cours :
- Évaluation attention (0-10)
- Résumé en une phrase
- Points à revoir
- Validation du défi
- Calcul XP avec bonus
- Système XP avec niveaux
- 18+ badges à débloquer
- Streaks quotidiens
- Récompenses pour actions (Pomodoro, sessions, cours, etc.)
- Minutes étudiées totales
- Répartition par matière
- Sessions complétées vs prévues
- Stats mode classe (attention, défis, etc.)
- Graphiques de progression
- Framework : Next.js 14 + TypeScript
- UI : Tailwind CSS + composants personnalisés (inspirés shadcn/ui)
- State Management : React Hooks + localStorage
- Persistance : localStorage uniquement (pas de backend)
- Déploiement : Vercel-ready
/workspace/
├── components/
│ ├── ui/ # Composants UI de base
│ ├── subjects/ # Composants matières/chapitres
│ ├── tasks/ # Composants tâches & objectifs 🆕
│ ├── planning/ # Composants planning
│ ├── pomodoro/ # Composants timer
│ ├── class-mode/ # Composants mode classe ⭐
│ ├── gamification/ # Composants XP/badges
│ └── stats/ # Composants statistiques
├── hooks/
│ ├── usePersistentState.ts
│ ├── useSubjects.ts
│ ├── useTasks.ts # Hook tâches 🆕
│ ├── useGoals.ts # Hook objectifs 🆕
│ ├── usePlanning.ts
│ ├── usePomodoro.ts
│ ├── useXP.ts
│ ├── useClassMode.ts # Hook mode classe ⭐
│ └── useStats.ts
├── lib/
│ ├── storage/ # Service localStorage
│ ├── gamification/ # Calculs XP & badges
│ ├── class/ # Générateur de défis ⭐
│ └── utils/ # Utilitaires
├── types/ # Types TypeScript
│ ├── task.ts # Types tâches & objectifs 🆕
│ └── ...
├── docs/ # Documentation
│ └── TASKS_AND_GOALS.md # Guide tâches & objectifs 🆕
└── pages/ # Pages Next.js
├── tasks.tsx # Page tâches & objectifs 🆕
└── ...
# Installer les dépendances
npm install
# Lancer en développement
npm run dev
# Builder pour production
npm run build
# Lancer la production
npm start- Touch-first design (boutons min 44x44px)
- Navigation bottom pour zone pouce
- Support paysage et portrait
- Pas de hover states critiques
- Texte lisible (16px minimum)
- Gestures intuitifs
Toutes les données sont stockées en localStorage :
app_subjects: Matières et chapitresapp_planning_sessions: Sessions de planningapp_pomodoro_stats: Statistiques Pomodoroapp_user_progress: XP, badges, streaksapp_class_sessions: Sessions de classeapp_class_stats: Statistiques mode classe
Quota : ~5-10 MB selon navigateur
Le mode classe est la feature unique de l'application :
- Motivation pré-cours : Objectifs et défis pour se mettre en condition
- Tracking en temps réel : Attention et distractions pendant le cours
- Auto-évaluation : Réflexion immédiate après le cours
- Gamification dédiée : XP et badges spécifiques au mode classe
- Statistiques d'attention : Suivi de la progression en cours
- ✅ Pas de backend, pas de serveur
- ✅ Données 100% locales
- ✅ Pas de tracking
- ✅ Pas d'authentification nécessaire
- ✅ Fonctionne offline
# Déployer sur Vercel
vercel
# ou via Git (automatique)
git push origin mainImportant :
- Tous les composants avec localStorage utilisent
'use client' - Gestion SSR/client via
useEffect+ flagisMounted - Pas de
windowoulocalStoragecôté serveur
Modifier dans styles/globals.css :
:root {
--primary: #3B82F6;
--secondary: #8B5CF6;
/* ... */
}Modifier dans hooks/usePomodoro.ts :
const PRESET_CONFIGS = {
'25-5': { focus: 25, break: 5 },
// ...
}Ajouter dans lib/gamification/badgeSystem.ts
Ajouter dans lib/class/challengeGenerator.ts
En cas de problème :
- Ouvrir la console navigateur (F12)
- Vérifier localStorage : Application > Storage > Local Storage
- Effacer les données :
localStorage.clear()dans la console - Recharger la page : Ctrl+Shift+R (hard refresh)
- ✅ Gestion des tâches avec Kanban
- ✅ Objectifs court/moyen/long terme
- ✅ Suivi de progression automatique
- Drag & drop des tâches
- Templates de tâches récurrentes
- Export/import données (JSON)
- Thème sombre
- PWA (installable)
- Notifications navigateur
- Sync multi-devices (optionnel)
- Tests unitaires (Vitest)
- Tests E2E (Playwright)
Ce projet est une application éducative. N'hésitez pas à :
- Forker le projet
- Créer une branche (
git checkout -b feature/AmazingFeature) - Commit vos changements (
git commit -m 'Add AmazingFeature') - Push (
git push origin feature/AmazingFeature) - Ouvrir une Pull Request
MIT
Développé avec ❤️ pour les étudiants motivés
Bon courage dans vos études ! 🎓📚