Skip to content
LeRatSupremePublic

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Mes Notes

Projet en ligne : https://notes-iutlco.jrcan.dev/

Application web utilisée à l'IUT pour consulter rapidement ses notes à partir de son numéro INE. Elle interroge le service de notes de l'IUT, récupère les semestres disponibles, puis affiche les moyennes, les UE, les modules et les évaluations dans une interface plus lisible et adaptée au mobile.

Le projet est une application Next.js avec une couche API côté serveur pour communiquer avec le portail de notes de l'IUT et parser les pages HTML retournées.

Fonctionnalités

Connexion étudiant

  • Connexion avec le numéro INE.
  • Récupération automatique du nom de l'étudiant.
  • Récupération des semestres disponibles.
  • Aucune base de données locale : les informations sont chargées depuis le service de notes de l'IUT.

Tableau de bord

  • Sélection du semestre à consulter.
  • Affichage de la moyenne générale calculée à partir des modules.
  • Affichage des notes récentes.
  • Regroupement des résultats par UE.
  • Détail des modules avec moyenne, coefficient et évaluations.
  • Détail des évaluations avec note, coefficient et date.
  • Sections repliables pour garder une interface lisible.
  • Déconnexion simple qui vide l'état de session côté navigateur.

Application mobile / PWA

  • Manifest PWA configuré.
  • Installation possible sur mobile ou bureau via le navigateur.
  • Interface responsive pensée pour téléphone, tablette et desktop.
  • Service worker activé en production avec next-pwa.
  • Les routes API ne sont pas mises en cache afin de toujours récupérer les notes à jour.

Stack technique

  • Next.js 16
  • React 19
  • TypeScript
  • Tailwind CSS
  • API Routes Next.js
  • Axios pour les requêtes HTTP serveur
  • Cheerio pour parser le HTML du portail IUT
  • iconv-lite pour décoder les réponses
  • qs pour envoyer les formulaires encodés
  • lucide-react pour les icônes
  • next-pwa pour le mode application installable

Fonctionnement

  1. L'étudiant saisit son numéro INE.
  2. L'API /api/login envoie ce numéro au service de notes de l'IUT.
  3. Le HTML retourné est décodé et analysé côté serveur.
  4. L'application extrait le nom de l'étudiant et la liste des semestres.
  5. Lorsqu'un semestre est sélectionné, /api/grades récupère le bulletin correspondant.
  6. Les lignes du tableau sont transformées en structure lisible : UE, modules, évaluations et notes récentes.
  7. Le tableau de bord affiche les résultats sans exposer directement le parsing au navigateur.

Prérequis

  • Node.js 20 ou plus récent recommandé
  • npm
  • Accès réseau au service de notes de l'IUT

Installation locale

Installer les dépendances :

npm install

Démarrer le serveur de développement :

npm run dev

L'application est disponible sur :

http://localhost:3000

Scripts utiles

Commande Description
npm run dev Lance le serveur de développement.
npm run build Compile l'application pour la production.
npm run start Lance l'application compilée.
npm run lint Lance le lint Next.js.

Structure du projet

app/
├── api/
│   ├── login/       Connexion via INE et récupération des semestres
│   └── grades/      Récupération et parsing des notes
├── layout.tsx       Métadonnées et configuration PWA
├── page.tsx         État principal de connexion
└── globals.css      Styles globaux

components/
├── LoginPage.tsx    Formulaire de connexion INE
├── Dashboard.tsx    Tableau de bord des notes
└── Sidebar.tsx      Navigation et déconnexion

public/
└── manifest.json    Manifest PWA

Données et confidentialité

L'application ne contient pas de base de données dans ce projet. Le numéro INE est utilisé pour interroger le service de notes de l'IUT et reste dans l'état côté navigateur pendant la session active. La déconnexion réinitialise cet état.

Les routes API sont forcées en mode dynamique et les appels de notes ne sont pas mis en cache par le service worker.

Limites connues

  • L'application dépend de la disponibilité du service de notes de l'IUT.
  • Le parsing repose sur la structure HTML actuelle du portail de notes ; si cette structure change, les routes API devront être adaptées.
  • Les notes manquantes sont affichées avec ~.

Licence

Tous droits réservés.

Ce projet est privé. Aucune utilisation, copie, modification, distribution, publication ou réutilisation du code n'est autorisée sans accord écrit préalable du propriétaire du projet.

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages