Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📊 HabitTracker

Suivez vos habitudes quotidiennes, partagez vos progrÚs avec vos amis et restez motivé.

HabitTracker est une application web progressive (PWA) de suivi d'habitudes qui vous permet de créer des routines personnalisées, suivre vos progrÚs et vous motiver entre amis.

✹ FonctionnalitĂ©s

📝 Gestion des habitudes

  • CrĂ©ation de catĂ©gories personnalisĂ©es (Matin, JournĂ©e, Soir, Hebdo, Addiction)
  • Habitudes quotidiennes ou hebdomadaires
  • Interface intuitive style tableur pour cocher vos habitudes
  • Navigation par semaine avec historique complet

📈 Statistiques dĂ©taillĂ©es

  • Pourcentage de complĂ©tion par jour, semaine, mois, annĂ©e
  • Statistiques par habitude et par catĂ©gorie
  • PĂ©riode personnalisĂ©e pour des analyses spĂ©cifiques
  • Visualisation des progrĂšs avec barres de progression

🃏 Systùme de Jokers

  • Configurez un nombre de jokers par pĂ©riode (semaine/mois/annĂ©e)
  • Utilisez un joker pour les jours oĂč vous ne pouvez vraiment pas (maladie, voyage...)
  • Les jokers excluent le jour des statistiques (363/363 au lieu de 365)
  • Clic droit (PC) ou mode joker (mobile) pour activer

đŸ‘„ SystĂšme d'amis

  • Recherche d'utilisateurs par pseudo
  • Envoi et rĂ©ception de demandes d'amis
  • Notifications de demandes en attente
  • Consultation du tracker de vos amis (lecture seule)

đŸ“± PWA (Progressive Web App)

  • Installation sur mobile et desktop
  • Fonctionne hors ligne
  • Notifications push (Ă  venir)
  • Interface responsive

đŸ› ïž Technologies utilisĂ©es

Technologie Version Usage
Next.js 14.x Framework React avec App Router
React 19.x BibliothĂšque UI
TypeScript 5.x Typage statique
Prisma 6.x ORM pour base de données
SQLite/PostgreSQL/MySQL - Base de données (au choix)
TailwindCSS 3.x Styles utilitaires
bcryptjs - Hashage sécurisé des mots de passe

🚀 Installation

Prérequis

  • Node.js 18+
  • npm ou pnpm

Étapes

  1. Cloner le repository
git clone https://github.com/votre-username/habittracker.git
cd habittracker
  1. Installer les dépendances
npm install
  1. Configurer l'environnement
# Copier le fichier d'exemple
cp env.example .env
  1. Configurer la base de données

Éditez le fichier .env selon votre choix de base de donnĂ©es :

Base de données Provider Prisma Exemple DATABASE_URL
SQLite (défaut) sqlite file:./dev.db
PostgreSQL postgresql postgresql://user:pass@localhost:5432/habittracker
MySQL mysql mysql://user:pass@localhost:3306/habittracker
MariaDB mysql mysql://user:pass@localhost:3306/habittracker

⚠ Important : Si vous utilisez autre chose que SQLite, modifiez aussi le provider dans prisma/schema.prisma

Exemple pour PostgreSQL :

// prisma/schema.prisma
datasource db {
  provider = "postgresql"  // Changer "sqlite" en "postgresql"
  url      = env("DATABASE_URL")
}
  1. Initialiser la base de données
npm run db:push
  1. Lancer le serveur de développement
npm run dev
  1. Ouvrir l'application
http://localhost:3000

Services cloud recommandés

Service Base de données Plan gratuit
Supabase PostgreSQL ✅ 500 MB
PlanetScale MySQL ✅ 5 GB
Railway PostgreSQL/MySQL ✅ $5 crĂ©dit
Neon PostgreSQL ✅ 512 MB

📜 Scripts disponibles

Script Description
npm run dev Lance le serveur de développement
npm run build Compile l'application pour la production
npm run start Lance le serveur de production
npm run lint Vérifie le code avec ESLint
npm run db:push Synchronise le schéma Prisma avec la base
npm run db:studio Ouvre Prisma Studio (interface BDD)

📁 Structure du projet

habittracker/
├── prisma/
│   └── schema.prisma      # SchĂ©ma de la base de donnĂ©es
├── env.example            # Variables d'environnement (template)
├── public/
│   ├── icons/             # Icînes PWA
│   ├── manifest.json      # Manifest PWA
│   └── sw.js              # Service Worker
├── src/
│   ├── app/
│   │   ├── api/           # Routes API
│   │   │   ├── auth/      # Authentification
│   │   │   ├── categories/
│   │   │   ├── friends/
│   │   │   ├── habits/
│   │   │   ├── jokers/
│   │   │   └── user/
│   │   ├── components/    # Composants React
│   │   ├── context/       # Contextes (Auth)
│   │   ├── friends/       # Page amis
│   │   ├── login/         # Page connexion
│   │   ├── register/      # Page inscription
│   │   ├── settings/      # Page paramùtres
│   │   ├── tracker/       # Page tracker ami
│   │   ├── globals.css    # Styles globaux
│   │   ├── layout.tsx     # Layout principal
│   │   └── page.tsx       # Dashboard principal
│   └── lib/
│       └── prisma.ts      # Client Prisma
└── package.json

🔒 SĂ©curitĂ©

  • Mots de passe hashĂ©s avec bcrypt (10 rounds)
  • Validation cĂŽtĂ© client et serveur
  • Minimum 6 caractĂšres pour les mots de passe
  • Protection des routes API

🌐 DĂ©ploiement

Vercel (recommandé)

  1. Connectez votre repository GitHub Ă  Vercel
  2. Configurez les variables d'environnement
  3. Déployez !

Autres plateformes

L'application peut ĂȘtre dĂ©ployĂ©e sur n'importe quelle plateforme supportant Node.js :

  • Railway
  • Render
  • Fly.io
  • VPS avec PM2

📝 Roadmap

  • Notifications push
  • Mode sombre/clair
  • Export des donnĂ©es (CSV/JSON)
  • Graphiques avancĂ©s
  • Rappels personnalisĂ©s
  • API publique

đŸ€ Contribution

Les contributions sont les bienvenues ! N'hésitez pas à ouvrir une issue ou une pull request.

📄 Licence

MIT License - voir le fichier LICENSE pour plus de détails.


Fait avec ❀ pour vous aider Ă  atteindre vos objectifs.

About

📊 HabitTracker - Application PWA de suivi d'habitudes entre amis. CrĂ©ez vos routines, suivez vos progrĂšs avec des stats dĂ©taillĂ©es et motivez-vous mutuellement. Next.js, React, Prisma, TailwindCSS.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages