Skip to content

Repository files navigation

MyEFREI Grades 📚

Application de gestion des notes pour les étudiants EFREI. Permet aux étudiants de suivre leurs notes, moyennes et ECTS par semestre.

Fonctionnalités

Pour les Étudiants

  • 📊 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)

Pour les Administrateurs

  • 🛠️ 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

Stack Technique

  • Framework: Next.js 16 (App Router)
  • UI: shadcn/ui + Tailwind CSS
  • Auth: NextAuth.js
  • Database: MongoDB
  • Hébergement: Contabo VPS

Installation

# 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 dev

Variables d'Environnement

NEXT_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 here

Structure du Projet

app/
├───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

Gestion des Templates

Concept

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 }
  ]
}

Workflow

  1. Admin crée un template d'année avec S1 et/ou S2
  2. Étudiant ajoute le parcours à son profil
  3. Interface affiche automatiquement les onglets S1/S2
  4. Si un semestre n'est pas défini → message "Non défini"
  5. Quand admin ajoute S2 → apparaît automatiquement

Développement

npm run dev      # Développement
npm run build    # Build production
npm run start    # Production
npm run lint     # Vérification ESLint

License

Projet personnel - Tous droits réservés

About

Application de gestion des notes pour les étudiants EFREI. Permet aux étudiants de suivre leurs notes, moyennes et ECTS par semestre.

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Contributors

Languages