Site web pour comptabiliser les heures au sein d'une organisation (type BDE)
  • TypeScript 94.6%
  • CSS 3.4%
  • JavaScript 1.7%
  • Dockerfile 0.3%
Find a file
2025-12-12 14:31:40 +01:00
.devcontainer feat(devcontainer): Add git-lfs 2025-12-08 09:57:01 +00:00
.github feat(audit): Add push trigger for security audit workflow 2025-12-08 10:13:02 +00:00
app fix: Activer l'affichage des éléments en attente par défaut dans la page d'administration 2025-11-21 08:13:56 +00:00
components fix: Corriger les chemins d'importation pour les composants et ajuster la configuration TypeScript 2025-11-20 18:40:57 +01:00
context feat: enhance user seeding with UUIDs and improve code formatting in various files 2025-10-18 19:37:32 +02:00
cypress/e2e chore: upgrade Next.js to version 16 and update related configurations 2025-10-25 16:23:30 +02:00
lib feat: Add bulk import from ISEN excel 2025-11-20 18:00:29 +01:00
prisma feat: Ajouter des fonctionnalités de tri et de filtrage des heures, incluant la sélection d'utilisateurs et l'ajout de timestamps 2025-11-20 18:31:33 +01:00
scripts feat: Add bulk import from ISEN excel 2025-11-20 18:00:29 +01:00
types feat: Add bulk import from ISEN excel 2025-11-20 18:00:29 +01:00
.dockerignore feat: Ajouter des fonctionnalités de tri et de filtrage des heures, incluant la sélection d'utilisateurs et l'ajout de timestamps 2025-11-20 18:31:33 +01:00
.gitignore feat: update file upload paths and add dynamic file retrieval endpoint 2025-10-18 20:05:11 +02:00
.prettierrc feat: initialize project structure with Next.js, Prisma, and Tailwind CSS setup 2025-10-17 21:59:13 +02:00
API_DOCS.md feat: initialize project structure with Next.js, Prisma, and Tailwind CSS setup 2025-10-17 21:59:13 +02:00
components.json feat: initialize project structure with Next.js, Prisma, and Tailwind CSS setup 2025-10-17 21:59:13 +02:00
cypress.config.ts feat: update CI configuration and disable Cypress support file 2025-10-18 19:46:04 +02:00
docker-compose.yml feat: update file upload paths and add dynamic file retrieval endpoint 2025-10-18 20:05:11 +02:00
Dockerfile fix: Corriger les chemins d'importation pour les modules dans les fichiers Dockerfile et route.ts 2025-11-20 18:48:58 +01:00
INDICATIONS_POUR_LLMS.md fix: update import paths for components and utilities to relative paths 2025-10-17 22:41:52 +02:00
INITIAL_SETUP.md feat: initialize project structure with Next.js, Prisma, and Tailwind CSS setup 2025-10-17 21:59:13 +02:00
next.config.ts fix: update import paths for components and utilities to relative paths 2025-10-17 22:41:52 +02:00
package.json fix: Mettre à jour les dépendances pour améliorer la sécurité et la stabilité 2025-12-12 11:00:55 +00:00
pnpm-lock.yaml fix: Mettre à jour les dépendances pour améliorer la sécurité et la stabilité 2025-12-12 11:00:55 +00:00
postcss.config.mjs feat: initialize project structure with Next.js, Prisma, and Tailwind CSS setup 2025-10-17 21:59:13 +02:00
README.md feat: Add bulk import from ISEN excel 2025-11-20 18:00:29 +01:00
tsconfig.json fix(security): Fix CVE-2025-66478 2025-12-08 09:55:31 +00:00

Plateforme de Comptage d'Heures

Une application web moderne pour la gestion des heures travaillées dans un club scolaire ou une organisation similaire. Permet aux membres de saisir leurs heures, aux administrateurs de valider les demandes, et de gérer les utilisateurs et les paramètres du club.

Fonctionnalités

  • Authentification sécurisée : Connexion avec NextAuth.js
  • Gestion des rôles : Membres, Administrateurs, Super Administrateurs
  • Saisie d'heures : Interface intuitive pour ajouter des heures travaillées
  • Validation des heures : Système d'approbation par les administrateurs
  • Gestion des utilisateurs : Création, suppression et gestion des comptes
  • Paramètres du club : Configuration du nom et du logo
  • Export de données : Export CSV et Excel des heures validées
  • Thème sombre/clair : Support automatique du thème selon les préférences système
  • Design responsive : Optimisé pour mobile et desktop
  • Notifications : Toasts pour les actions utilisateur

Technologies utilisées

  • Framework : Next.js 15 (App Router)
  • Langage : TypeScript
  • Base de données : SQLite avec Prisma ORM
  • Authentification : NextAuth.js
  • UI : Tailwind CSS + shadcn/ui + Radix UI
  • Gestionnaire de paquets : pnpm
  • Déploiement : Compatible Docker

Prérequis

  • Node.js 18+
  • pnpm

Installation

  1. Cloner le repository

    git clone https://github.com/breizhhardware/site-comptage-heure.git
    cd site-comptage-heure
    
  2. Installer les dépendances

    pnpm install
    
  3. Configuration de la base de données

    # Appliquer le schéma Prisma
    pnpx prisma db push
    
    # (Optionnel) Générer le client Prisma
    pnpx prisma generate
    
  4. Variables d'environnement

    Créer un fichier .env.local à la racine :

    NEXTAUTH_SECRET=votre-secret-très-long-et-sécurisé
    NEXTAUTH_URL=http://localhost:3000
    
  5. Créer un Super Administrateur

    node scripts/create-super-admin.js
    

Utilisation

Démarrage en développement

pnpm dev

Ouvrir http://localhost:3000

Première connexion

  • Utilisez les identifiants du Super Administrateur créé
  • Configurez le nom et le logo du club dans l'admin
  • Créez des comptes pour les administrateurs et membres

Rôles et permissions

  • Membre : Peut saisir et consulter ses propres heures
  • Administrateur : Peut valider/rejeter les heures de tous, gérer les paramètres
  • Super Administrateur : Peut créer des comptes admin/membre, supprimer des utilisateurs

Scripts disponibles

  • pnpm dev : Serveur de développement
  • pnpm build : Build de production
  • pnpm start : Serveur de production
  • pnpm format : Formatage du code avec Prettier

Structure du projet

├── app/                    # Pages Next.js (App Router)
│   ├── api/               # Routes API
│   ├── admin/             # Page administration
│   ├── dashboard/         # Tableau de bord
│   ├── login/             # Page de connexion
│   └── layout.tsx         # Layout principal
├── components/            # Composants réutilisables
│   ├── ui/               # Composants shadcn/ui
│   └── Header.tsx        # Header de l'application
├── lib/                  # Utilitaires
│   ├── auth.ts           # Configuration NextAuth
│   ├── prisma.ts         # Client Prisma
│   └── use-toast.ts      # Hook pour les toasts
├── prisma/               # Schéma et migrations Prisma
└── public/               # Assets statiques

API Routes

  • GET/POST /api/hours : Gestion des heures
  • PUT /api/hours/[id] : Validation d'une heure
  • DELETE /api/hours/[id] : Suppression d'une heure
  • GET/PUT /api/settings : Paramètres du club
  • POST /api/auth/signup : Création d'utilisateur
  • GET /api/export : Export des données

Déploiement

Avec Docker

  1. Run le container :
docker compose up -d

Créer un Super Administrateur à l'intérieur du container :

docker exec -it <container_id> sh

Puis exécuter (pensez à modifier le nom d'utilisateur et le mot de passe si nécessaire) :

node scripts/create-super-admin.js

Contribution

  1. Fork le projet
  2. Créer une branche feature (git checkout -b feature/nouvelle-fonction)
  3. Commit les changements (git commit -am 'Ajoute nouvelle fonction')
  4. Push la branche (git push origin feature/nouvelle-fonction)
  5. Créer une Pull Request

Support

Pour toute question ou problème, ouvrir une issue sur GitHub.