- WAMP Stack (MySQL sur port 3306)
- Node.js 18+
- Database
classetrackcréée
# 1) Installer dépendances
npm install
# 2) Créer .env.local
cp .env.example .env.local
# Vérifier DATABASE_URL="mysql://root@127.0.0.1:3306/classetrack"
# 3) Créer la base de données (si pas fait)
# Dans phpMyAdmin ou MySQL CLI:
# CREATE DATABASE classetrack CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# 4) Appliquer migrations Prisma
npx prisma migrate dev --name init
# 5) Générer Prisma Client
npx prisma generate
# 6) Seed database (créer user)
npx prisma db seed
# 7) Vérifier DB
npm run db:check
# Attendu: ✅ user in database: 3
# 8) (Optionnel) Reset admin password
npm run reset:admin
# 9) Lancer dev server
npm run dev| Rôle | Password | |
|---|---|---|
| Admin | admin@gmail.com | Admin@12345 |
| Prof | prof@classetrack.com | Prof@12345 |
| Student | student@classetrack.com | Student@12345 |
-
npm run db:checkaffiche✅ user: 3 - Prisma Studio (
npx prisma studio) contient 3 user - Login sur
http://localhost:3000/loginfonctionne - Admin peut se connecter avec
admin@gmail.com / Admin@12345
# Vérifier connexion DB
npm run db:check
# Réinitialiser admin password
npm run reset:admin
# Prisma Studio (UI graphique)
npx prisma studio
# Reset complet DB (⚠️ supprime tout)
npx prisma migrate reset
# Refaire seed uniquement
npx prisma db seedSi vous voulez remettre la base à zéro :
# ⚠️ ATTENTION: Supprime toutes les données
npx prisma migrate reset
# Regénérer Prisma Client
npx prisma generate
# Refaire le seed
npx prisma db seed
# Vérifier
npm run db:checkNote: npx prisma migrate reset :
- Supprime la base de données
- Recrée la base de données
- Applique toutes les migrations
- Lance le seed automatiquement
# 1) Arrêter Next.js (Ctrl+C)
# 2) Fermer Prisma Studio si ouvert
# 3) Supprimer cache Prisma
Remove-Item -Recurse -Force node_module\.prisma
# 4) Regénérer
npx prisma generate
# 5) Relancer
npm run dev# Vérifier que MySQL WAMP est lancé
# Vérifier DATABASE_URL dans .env.local
npm run db:check# 1) Vérifier que user existent
npm run db:check
# 2) Reset admin password
npm run reset:admin
# 3) Tester avec admin@gmail.com / Admin@12345
# 4) Regarder logs serveur (Terminal où tourne npm run dev)
# Chercher "AUTH:" dans les logs# Vérifier que schema.prisma est correct
# Supprimer migrations
Remove-Item -Recurse -Force prisma\migrations
# Recréer migration
npx prisma migrate dev --name init
# Refaire seed
npx prisma db seedclassetrack/
├── src/
│ ├── app/
│ │ ├── api/auth/[...nextauth]/route.ts # NextAuth handler
│ │ ├── login/ # Page login
│ │ └── ...
│ ├── lib/auth.ts # NextAuth config
│ └── types/index.ts # Types
├── prisma/
│ ├── schema.prisma # Schema DB
│ └── seed.ts # Seed data
├── scripts/
│ ├── db-check.js # Vérifier DB
│ └── reset-admin-password.js # Reset admin
├── .env.local # Config locale
├── .env.example # Template
└── README.md # Cette doc
- Framework: Next.js 14 (App Router)
- Auth: NextAuth.js
- Database: Prisma + MySQL (WAMP)
- Styling: Tailwind CSS
- Password: bcryptjs
MIT
# .env
NEXTAUTH_URL="http://localhost:3000"
# Lancer
npm run dev
# Accès
http://localhost:3000# Terminal 1: Next.js
npm run dev
# Terminal 2: Cloudflare
cloudflared tunnel --url http://localhost:3000
# Copier l'URL: https://xxxxx.trycloudflare.com
# Mettre à jour .env
NEXTAUTH_URL="https://xxxxx.trycloudflare.com"
# Redémarrer Next.js (Terminal 1)
# Ctrl+C puis npm run dev
# Accès
https://xxxxx.trycloudflare.comNote: L'URL Cloudflare change à chaque redémarrage du tunnel.
Si npx prisma migrate reset échoue avec "La clé est trop longue":
npm run db:check-innodb-- Dans phpMyAdmin ou MySQL CLI
ALTER TABLE `user` ENGINE=InnoDB;
ALTER TABLE `filiere` ENGINE=InnoDB;
ALTER TABLE `groupe` ENGINE=InnoDB;
-- etc.# Supprimer migrations
Remove-Item -Recurse -Force prisma\migrations
# Recréer migration
npx prisma migrate dev --name init_full_schemaLe projet utilise:
prisma.user(table:user)prisma.filiere(table:filiere)prisma.groupe(table:groupe)⚠️ singulierprisma.module(table:module)prisma.enrollment(table:enrollment)prisma.seance(table:seance)prisma.attendance(table:attendance)prisma.justification(table:justification)
classetrack/
├── src/
│ ├── app/
│ │ ├── api/auth/[...nextauth]/route.ts # NextAuth handler
│ │ ├── login/ # Page login
│ │ └── ...
│ ├── lib/auth.ts # NextAuth config
│ └── types/index.ts # Types
├── prisma/
│ ├── schema.prisma # Schema DB
│ └── seed.ts # Seed data
├── scripts/
│ ├── db-check.js # Vérifier DB
│ └── reset-admin-password.js # Reset admin
├── .env.local # Config locale
├── .env.example # Template
└── README.md # Cette doc
- Framework: Next.js 14 (App Router)
- Auth: NextAuth.js
- Database: Prisma + MySQL (WAMP)
- Styling: Tailwind CSS
- Password: bcryptjs
MIT