{"id":34757963,"url":"https://github.com/bienfaitshm/proxima-score","last_synced_at":"2026-05-28T07:31:52.602Z","repository":{"id":321756308,"uuid":"1087031568","full_name":"bienfaitshm/proxima-score","owner":"bienfaitshm","description":"Proxima Score est une application de bureau (Python/wxPython) d'optimisation stratégique de la réussite scolaire. Elle calcule la répartition minimale et optimale des points (ou de délibération) nécessaires sur l'ensemble des cours pour atteindre un objectif de pourcentage global, en respectant les contraintes minimales de chaque matière.","archived":false,"fork":false,"pushed_at":"2025-10-31T10:58:26.000Z","size":38,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-31T11:27:12.928Z","etag":null,"topics":["allocator","open-source","python","wxpython"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bienfaitshm.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-31T09:17:37.000Z","updated_at":"2025-10-31T10:58:29.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/bienfaitshm/proxima-score","commit_stats":null,"previous_names":["bienfaitshm/proxima-score"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/bienfaitshm/proxima-score","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bienfaitshm%2Fproxima-score","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bienfaitshm%2Fproxima-score/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bienfaitshm%2Fproxima-score/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bienfaitshm%2Fproxima-score/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bienfaitshm","download_url":"https://codeload.github.com/bienfaitshm/proxima-score/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bienfaitshm%2Fproxima-score/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33599465,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-28T02:00:06.440Z","response_time":99,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["allocator","open-source","python","wxpython"],"created_at":"2025-12-25T05:47:55.837Z","updated_at":"2026-05-28T07:31:52.597Z","avatar_url":"https://github.com/bienfaitshm.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🌟 Proxima Score : Naviguez vers votre Objectif\n\n\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/votre_utilisateur/proxima-score/blob/main/LICENSE)\n[![Python Version](https://img.shields.io/badge/Python-3.x-blue.svg)](https://www.python.org/)\n[![Framework](https://img.shields.io/badge/Framework-wxPython-informational)](https://www.wxpython.org/)\n\n## 🎯 Description du Projet\n\nProxima Score est une application de bureau Python/wxPython conçue comme un outil d'optimisation stratégique de la réussite scolaire. Elle calcule et répartit de manière optimale les points à obtenir (ou les points de délibération) sur l'ensemble des cours pour atteindre un pourcentage global cible, tout en respectant les notes minimales requises par matière. C'est le chemin le plus court et le plus précis vers le succès, que ce soit pour la simulation de l'effort restant de l'étudiant ou pour la délibération juste par le jury.\n\n| Contexte | Fonction Principale |\n| :--- | :--- |\n| **Simulation Étudiante** | Calculer l'effort (les points à gagner) pour atteindre un % global cible et identifier où concentrer les efforts. |\n| **Délibération du Jury** | Déterminer la distribution minimale et optimale de points délibérés nécessaires pour faire réussir un étudiant au seuil requis. |\n\n---\n\n## ✨ Fonctionnalités Clés\n\n* **Gestion des Cours :** Ajout, modification et suppression de cours avec leurs pondérations maximales, scores actuels et pourcentages cibles minimaux.\n* **Calcul Cible :** Entrée d'un **pourcentage global cible** (ex: 85%) pour déterminer le nombre total de points restants à obtenir.\n* **Optimisation de la Distribution :** Répartition intelligente des points nécessaires sur les différents cours, pondérée par leur importance relative.\n* **Modes Avancés :**\n    * **Simulation Pure :** Permet d'ignorer les contraintes de pourcentage minimal par cours pour tester des scénarios extrêmes.\n    * **Variabilité Aléatoire :** Ajoute une petite variation aux résultats pour simuler des scénarios \"au cas où\".\n* **Rapports Détaillés :** Visualisation de la marge de manœuvre (points de perte tolérés) par cours pour atteindre le minimum ciblé.\n* **UX/UI Améliorée :** Utilisation de `wx.lib.masked.NumCtrl` pour garantir la saisie de données numériques valides et précises.\n\n---\n\n## ⚙️ Installation et Démarrage\n\nCe projet nécessite Python 3.x et la librairie `wxPython`.\n\n### Prérequis\n\n```bash\npython3 -m pip install wxPython\npython3 -m pip install wx.lib.masked\n```\n\n### Exécution du Projet\n\n1.  **Cloner le dépôt :**\n\n    ```bash\n    git clone [https://github.com/votre_utilisateur/proxima-score.git](https://github.com/votre_utilisateur/proxima-score.git)\n    cd proxima-score\n    ```\n\n2.  **S'assurer de la structure du code :**\n\n      * Le code principal (`main.py` ou le fichier contenant la classe `PointAllocatorController`)\n      * Le module `data_handler.py` (pour la persistance JSON)\n      * Le module `point_allocator_logic.py` (pour les calculs d'optimisation)\n\n3.  **Lancer l'application :**\n\n    ```bash\n    python3 main.py\n    ```\n\n\n\n## 🏗️ Architecture et Composants\n\nLe projet est strictement architecturé selon le modèle **Modèle-Vue-Contrôleur (MVC)** pour garantir la modularité et la maintenabilité.\n\n### Modèle (Logique et Données)\n\n  * **`data_handler.py` :** Gère la persistance des données (cours, scores, pondérations) dans un fichier JSON.\n  * **`point_allocator_logic.py` :** Contient les algorithmes d'optimisation (calcul de la distribution, application de l'arrondi, calcul de la marge).\n\n### Vue (Interface Utilisateur)\n\nDéveloppée avec **wxPython** et utilise des composants réutilisables (e.g., `NumericInput`, `BaseDataView`, `GroupBox`) pour une interface cohérente et professionnelle :\n\n  * `PointAllocatorFrame` : La fenêtre principale (le conteneur).\n  * `CourseManagementPanel` : Gestion de la liste des cours (DataView).\n  * `CalculationPanel` : Saisie des objectifs et affichage des résultats optimisés.\n  * `ReportPanel` : Rapports détaillés sur les marges et les erreurs d'arrondi.\n\n### Contrôleur (Cœur de Liaison)\n\n  * `PointAllocatorController` : Fait le lien entre les actions de l'utilisateur (Vue) et les opérations logiques (Modèle), puis met à jour l'affichage.\n\n-----\n\n## 🤝 Contribution\n\nLes contributions sont les bienvenues \\! Si vous souhaitez améliorer l'algorithme d'optimisation, ajouter des fonctionnalités UX/UI spécifiques au contexte RDC (comme le support d'autres langues locales ou des systèmes de notation spécifiques), veuillez :\n\n1.  Faire un Fork de ce dépôt.\n2.  Créer une nouvelle branche (`git checkout -b feature/AmazingFeature`).\n3.  Commiter vos changements (`git commit -m 'Add some AmazingFeature'`).\n4.  Pousser vers la branche (`git push origin feature/AmazingFeature`).\n5.  Ouvrir une Pull Request.\n\n-----\n\n## 📜 Licence\n\nDistribué sous la Licence MIT. Voir `LICENSE` pour plus d'informations.\n\n-----\n\n## 🧑‍💻 Auteur\n\n**BIENFAIT SHOMARI**\n\n  * **Lieu :** Lubumbashi, Haut-Katanga, RDC\n  * **Contact :** bienfaitshm@gmail.com","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbienfaitshm%2Fproxima-score","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbienfaitshm%2Fproxima-score","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbienfaitshm%2Fproxima-score/lists"}