https://github.com/bienfaitshm/proxima-score
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.
https://github.com/bienfaitshm/proxima-score
allocator open-source python wxpython
Last synced: 24 days ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/bienfaitshm/proxima-score
- Owner: bienfaitshm
- Created: 2025-10-31T09:17:37.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-10-31T10:58:26.000Z (8 months ago)
- Last Synced: 2025-10-31T11:27:12.928Z (8 months ago)
- Topics: allocator, open-source, python, wxpython
- Language: Python
- Homepage:
- Size: 37.1 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# 🌟 Proxima Score : Naviguez vers votre Objectif
[](https://github.com/votre_utilisateur/proxima-score/blob/main/LICENSE)
[](https://www.python.org/)
[](https://www.wxpython.org/)
## 🎯 Description du Projet
Proxima 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.
| Contexte | Fonction Principale |
| :--- | :--- |
| **Simulation Étudiante** | Calculer l'effort (les points à gagner) pour atteindre un % global cible et identifier où concentrer les efforts. |
| **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. |
---
## ✨ Fonctionnalités Clés
* **Gestion des Cours :** Ajout, modification et suppression de cours avec leurs pondérations maximales, scores actuels et pourcentages cibles minimaux.
* **Calcul Cible :** Entrée d'un **pourcentage global cible** (ex: 85%) pour déterminer le nombre total de points restants à obtenir.
* **Optimisation de la Distribution :** Répartition intelligente des points nécessaires sur les différents cours, pondérée par leur importance relative.
* **Modes Avancés :**
* **Simulation Pure :** Permet d'ignorer les contraintes de pourcentage minimal par cours pour tester des scénarios extrêmes.
* **Variabilité Aléatoire :** Ajoute une petite variation aux résultats pour simuler des scénarios "au cas où".
* **Rapports Détaillés :** Visualisation de la marge de manœuvre (points de perte tolérés) par cours pour atteindre le minimum ciblé.
* **UX/UI Améliorée :** Utilisation de `wx.lib.masked.NumCtrl` pour garantir la saisie de données numériques valides et précises.
---
## ⚙️ Installation et Démarrage
Ce projet nécessite Python 3.x et la librairie `wxPython`.
### Prérequis
```bash
python3 -m pip install wxPython
python3 -m pip install wx.lib.masked
```
### Exécution du Projet
1. **Cloner le dépôt :**
```bash
git clone [https://github.com/votre_utilisateur/proxima-score.git](https://github.com/votre_utilisateur/proxima-score.git)
cd proxima-score
```
2. **S'assurer de la structure du code :**
* Le code principal (`main.py` ou le fichier contenant la classe `PointAllocatorController`)
* Le module `data_handler.py` (pour la persistance JSON)
* Le module `point_allocator_logic.py` (pour les calculs d'optimisation)
3. **Lancer l'application :**
```bash
python3 main.py
```
## 🏗️ Architecture et Composants
Le projet est strictement architecturé selon le modèle **Modèle-Vue-Contrôleur (MVC)** pour garantir la modularité et la maintenabilité.
### Modèle (Logique et Données)
* **`data_handler.py` :** Gère la persistance des données (cours, scores, pondérations) dans un fichier JSON.
* **`point_allocator_logic.py` :** Contient les algorithmes d'optimisation (calcul de la distribution, application de l'arrondi, calcul de la marge).
### Vue (Interface Utilisateur)
Développée avec **wxPython** et utilise des composants réutilisables (e.g., `NumericInput`, `BaseDataView`, `GroupBox`) pour une interface cohérente et professionnelle :
* `PointAllocatorFrame` : La fenêtre principale (le conteneur).
* `CourseManagementPanel` : Gestion de la liste des cours (DataView).
* `CalculationPanel` : Saisie des objectifs et affichage des résultats optimisés.
* `ReportPanel` : Rapports détaillés sur les marges et les erreurs d'arrondi.
### Contrôleur (Cœur de Liaison)
* `PointAllocatorController` : Fait le lien entre les actions de l'utilisateur (Vue) et les opérations logiques (Modèle), puis met à jour l'affichage.
-----
## 🤝 Contribution
Les 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 :
1. Faire un Fork de ce dépôt.
2. Créer une nouvelle branche (`git checkout -b feature/AmazingFeature`).
3. Commiter vos changements (`git commit -m 'Add some AmazingFeature'`).
4. Pousser vers la branche (`git push origin feature/AmazingFeature`).
5. Ouvrir une Pull Request.
-----
## 📜 Licence
Distribué sous la Licence MIT. Voir `LICENSE` pour plus d'informations.
-----
## 🧑💻 Auteur
**BIENFAIT SHOMARI**
* **Lieu :** Lubumbashi, Haut-Katanga, RDC
* **Contact :** bienfaitshm@gmail.com