Skip to content

TFHD/42TopReviewers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

42TopReviewers

Extension navigateur (Manifest V3) pour 42 : elle affiche sur le profil Intra d’un étudiant un classement des correcteurs les plus fréquents (évaluations où l’étudiant a été corrigé), à partir de l’API officielle.

Fonctionnalités

  • Connexion OAuth 2.0 avec le compte 42 (scope public).
  • Sur une page profil https://profile.intra.42.fr/users/<login>, insertion d’un bloc Top Reviewers (top 10, barres de proportion, lien vers chaque profil).
  • Prise en charge des correcteurs anonymes (comptabilisés séparément, non listés dans le top).
  • Popup : état de connexion, connexion / déconnexion, rappel d’aller sur un profil Intra pour voir le widget.

Prérequis

  • Node.js (LTS recommandé)
  • pnpm ou npm
  • Une application OAuth côté 42 Intra avec un client_id adapté à l’extension (voir ci-dessous).

Configuration

  1. Cloner le dépôt et installer les dépendances :

    pnpm install
  2. Créer un fichier .env à la racine (non versionné) avec l’identifiant client OAuth :

    VITE_CLIENT_ID=votre_client_id_42

    L’URI de redirection OAuth doit correspondre à celle fournie par Chrome pour les extensions : chrome.identity.getRedirectURL() (souvent du type https://<EXTENSION_ID>.chromiumapp.org/). Elle doit être enregistrée dans la configuration de votre application sur l’Intra 42.

  3. L’échange du code OAuth contre un jeton d’accès passe par le proxy documenté dans PRIVACY.md (42-top-reviewers-proxy.vercel.app). Pour un fork autonome, il faudra héberger un équivalent qui détient le client secret côté serveur.

Développement

pnpm dev

Vite sert surtout à recompiler pendant le développement ; le chargement de l’extension se fait depuis le dossier de build (voir ci-dessous).

Build

pnpm build

Les fichiers prêts à charger se trouvent dans dist/ (JS, HTML, manifest.json, icônes depuis public/).

Charger l’extension dans Chrome / Chromium

  1. pnpm build
  2. Ouvrir chrome://extensions
  3. Activer le mode développeur
  4. Charger l’extension non empaquetée et choisir le dossier dist/
  5. Ouvrir la popup, cliquer sur Connect with 42, puis visiter un profil sur profile.intra.42.fr.

Structure du projet

Élément Rôle
src/background/background.js Service worker : flux OAuth et stockage du jeton
src/content/content.js Script injecté sur les profils Intra : appels API, widget UI
src/popup/ Interface de la popup (connexion)
src/auth/auth.js Lecture du jeton valide depuis chrome.storage.local
src/api/intraApi.js Helpers API Intra (pagination des corrections) — le widget profil utilise sa propre logique dans content.js
public/manifest.json Manifest MV3 + permissions
vite.config.js Build multi-entrées (popup, background, content)

Confidentialité

Le traitement des données et les services tiers sont décrits dans PRIVACY.md.

Licence / auteur

Projet par TFHD (sabartho) — voir package.json pour la métadonnée author.

About

42 Top Reviewers is a single-purpose extension: displaying the leaderboard of correctors for a student at 42 school.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors