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.
- 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.
- 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.
- 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.
- 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
- L'étudiant saisit son numéro INE.
- L'API
/api/loginenvoie ce numéro au service de notes de l'IUT. - Le HTML retourné est décodé et analysé côté serveur.
- L'application extrait le nom de l'étudiant et la liste des semestres.
- Lorsqu'un semestre est sélectionné,
/api/gradesrécupère le bulletin correspondant. - Les lignes du tableau sont transformées en structure lisible : UE, modules, évaluations et notes récentes.
- Le tableau de bord affiche les résultats sans exposer directement le parsing au navigateur.
- Node.js 20 ou plus récent recommandé
- npm
- Accès réseau au service de notes de l'IUT
Installer les dépendances :
npm installDémarrer le serveur de développement :
npm run devL'application est disponible sur :
http://localhost:3000
| 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. |
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
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.
- 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
~.
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.