Skip to content

BerthalonLucas/commit-awards-web

Repository files navigation

🏆 Commit Awards

Une application web interactive pour explorer et analyser les messages de commit les plus drôles de vos projets GitHub. Découvrez les commits qui méritent des récompenses pour leur humour !

✨ Fonctionnalités

  • 🎯 Classification automatique : Analyse les commits pour détecter ceux qui sont drôles vs sérieux
  • 🏅 Système d'awards : Récompenses pour les commits les plus créatifs
  • 📊 Statistiques détaillées : Visualisation des données de vos commits
  • 🌙 Interface moderne : Design sombre élégant et responsive
  • 📁 Import JSON : Importez facilement vos données de commits GitHub
  • Système de favoris : Marquez vos commits préférés
  • 🔍 Recherche et filtres : Trouvez rapidement les commits qui vous intéressent

🚀 Installation

Prérequis

  • Node.js (version 16 ou supérieure)
  • npm ou yarn

Étapes d'installation

  1. Clonez le repository

    git clone <votre-repo-url>
    cd commit-awards-web
  2. Installez les dépendances

    npm install
  3. Lancez le serveur de développement

    npm run dev
  4. Ouvrez votre navigateur

    http://localhost:5173
    

📥 Comment importer vos données

Format JSON attendu

L'application accepte deux fichiers JSON avec les structures suivantes :

json avec auteur et committer (a droite dans la page d'import):

[
	{
		"sha": "c8a64cd03c404e9260612ef51cfe5a5e82ab71fe",
		"repo": {
			"org": "exam-2025-07-11",
			"name": "xxxxxx_c-piscine-exam-00_exam_17h24m53s",
			"full_name": "exam-2025-07-11/xwenger_c-piscine-exam-00_exam_17h24m53s"
		},
		"author": {
			"name": "Exam 42",
			"email": "exam-no-reply@42.fr",
			"date": "2099-07-11T17:59:36+02:00"
		},
		"committer": {
			"name": "Exam 42",
			"email": "exam-no-reply@42.fr",
			"date": "2099-07-11T17:59:36+02:00"
		},
		"message": "exemple"
	}
]

json avec prediction et message (a gauche dans la page d'import) :

[
  {
    "sha": "78b545ce7f3d2435e59f1c15d41d2a940452cb16",
    "is_funny": false,
    "message": "toto",
    "probability": 0.02
  }
]
nom du fichier avec les predictions : exam-2025-07-classified.json

Extraction automatique des noms d'utilisateur

L'application extrait automatiquement le nom d'utilisateur à partir du champ repo.name (format utilisateur/projet). Si author.name est différent du nom d'utilisateur extrait, il sera automatiquement remplacé pour assurer la cohérence.

Étapes d'importation

  1. Accédez à la page d'import : Cliquez sur "Importer" dans la navigation
  2. Glissez-déposez votre fichier JSON ou cliquez pour le sélectionner
  3. Vérifiez l'aperçu des données importées
  4. Confirmez l'import pour ajouter les commits à votre collection

🛠️ Scripts disponibles

  • npm run dev : Lance le serveur de développement
  • npm run build : Construit l'application pour la production
  • npm run preview : Prévisualise la version de production
  • npm run lint : Vérifie la qualité du code avec ESLint

🏗️ Technologies utilisées

  • React 18 : Framework frontend
  • Vite : Outil de build rapide
  • Tailwind CSS : Framework CSS utilitaire
  • Heroicons : Icônes SVG
  • React Router : Navigation côté client

📁 Structure du projet

commit-awards-web/
├── src/
│   ├── components/     # Composants React réutilisables
│   │   ├── CommitAwards.js
│   │   ├── CommitCard.js
│   │   ├── CommitList.js
│   │   ├── DataImporter.js
│   │   └── Header.js
│   ├── context/        # Contextes React (gestion d'état)
│   │   └── CommitContext.js
│   ├── App.js          # Composant principal de l'application
│   ├── index.js        # Point d'entrée de l'application
│   └── index.css       # Styles globaux
├── public/             # Fichiers statiques
│   └── index.html
├── exam-2025-07-classified.json  # Fichier de données d'exemple
├── package.json        # Configuration du projet
├── tailwind.config.js  # Configuration Tailwind CSS
└── postcss.config.js   # Configuration PostCSS

🎨 Personnalisation

L'application utilise Tailwind CSS pour le styling. Vous pouvez personnaliser les couleurs et thèmes en modifiant le fichier tailwind.config.js.

📄 Licence

Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.


Amusez-vous bien à explorer vos commits ! 🎉

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published