Application de gestion des notes pour les étudiants EFREI. Permet aux étudiants de suivre leurs notes, moyennes et ECTS par semestre.
- 📊 Visualisation des notes par semestre (S1 / S2)
- 📈 Calcul automatique des moyennes par module, UE et semestre
- 🎯 Suivi des ECTS obtenus
- 📅 Support multi-parcours (ex: P1 PMP puis P2 PLUS)
- 🔐 Connexion sécurisée via OAuth (Google)
- 🛠️ Création de templates d'année (S1 et/ou S2)
- 📋 Structure complète : UE → Modules → Évaluations
- ✏️ Gestion des types d'évaluations (TP, TD, CC, PRJ, etc.)
- 🔄 Versioning automatique des templates
- Framework: Next.js 16 (App Router)
- UI: shadcn/ui + Tailwind CSS
- Auth: NextAuth.js
- Database: MongoDB
- Hébergement: Contabo VPS
# Cloner le repo
git clone <repo-url>
cd myefrei-grades
# Installer les dépendances
npm install
# Configurer les variables d'environnement
cp .env.example .env
# Remplir les variables dans .env
# Lancer en développement
npm run devNEXT_PUBLIC_APP_URL="http://localhost:3000"
NEXTAUTH_URL="http://localhost:3000"
NEXT_PUBLIC_BASE_URL="http://localhost:3000"
GOOGLE_CLIENT_ID="" // Add your Google Client ID here
GOOGLE_CLIENT_SECRET="" // Add your Google Client Secret here
MONGODB_URI="" // Add your MongoDB connection string here
NEXTAUTH_SECRET="" // Add a strong secret for NextAuth here
# New Relic Configuration
ENABLE_NEW_RELIC="false" // Set to "true" to enable New Relic monitoring
NEW_RELIC_APP_NAME="myEfreiGrades-Dev" // Set your New Relic application name
NEW_RELIC_LICENSE_KEY="YOUR_NEW_RELIC_LICENSE_KEY" // Add your New Relic license key here
RESEND_API_KEY="" // Add your Resend API key hereapp/
├───admin
│ └───year-templates
│ ├───create
│ └───edit
│ └───[id]
├───api
│ ├───admin
│ │ └───year-templates
│ │ └───[id]
│ │ └───sync
│ ├───auth
│ │ └───[...nextauth]
│ ├───grades
│ │ ├───cursus
│ │ ├───filieres
│ │ ├───groupes
│ │ ├───paths
│ │ ├───semesters
│ │ ├───setup-profile
│ │ └───stats
│ └───user
│ └───check-admin
├───components
│ ├───main_components
│ └───pages
├───grades
├───legal
├───lib
│ ├───grades
│ ├───hooks
│ └───user
├───privacy
├───setup
├───statistics
└───terms
1 Template = 1 Année complète (peut contenir S1, S2, ou les deux)
{
name: "P1 PLUS - 2024-2025",
code: "PGE_P1_PLUS_2024-2025",
semesters: [
{ semester: 1, ues: [...], totalECTS: 30 },
{ semester: 2, ues: [...], totalECTS: 30 }
]
}- Admin crée un template d'année avec S1 et/ou S2
- Étudiant ajoute le parcours à son profil
- Interface affiche automatiquement les onglets S1/S2
- Si un semestre n'est pas défini → message "Non défini"
- Quand admin ajoute S2 → apparaît automatiquement
npm run dev # Développement
npm run build # Build production
npm run start # Production
npm run lint # Vérification ESLintProjet personnel - Tous droits réservés