Application web de gestion complète pour l'Académie de Basketball ESR, développée avec Ruby on Rails.
- Aperçu de l'application
- À propos
- Fonctionnalités
- Technologies utilisées
- Prérequis
- Installation
- Configuration
- Utilisation
- Structure du projet
- Déploiement
- Galerie complète
- Contribution
- Licence
Cette application a été conçue pour simplifier et automatiser la gestion quotidienne de l'ESR Basketball Academy. Elle permet de gérer efficacement les joueurs, les entraîneurs, les groupes, les abonnements, les assurances, les achats, les salaires et bien plus encore.
Centraliser toutes les opérations administratives de l'académie dans une interface unique, intuitive et performante, réduisant ainsi le temps de gestion et améliorant la prise de décision grâce à des tableaux de bord et des statistiques en temps réel.
- Métriques mensuelles et annuelles
- Graphiques interactifs (Chart.js)
- Indicateurs de performance clés (KPI)
- Calcul automatique des surplus/déficits
- Joueurs : Profils complets avec historique des paiements
- Parents : Informations de contact et liens avec les joueurs
- Entraîneurs : Gestion des profils et des salaires
- Groupes : Organisation par âge, horaires et terrains
- Saisons : Configuration des montants d'abonnement et d'assurance
- Abonnements : Suivi des paiements mensuels avec dates d'expiration
- Assurances : Gestion par saison
- Achats : Produits et équipements
- Salaires : Paiements mensuels des entraîneurs
- Dépenses : Suivi des dépenses diverses
- Crédits : Gestion des paiements différés
- Filtres intelligents : Joueurs actifs, expirés, en crédit
- Export CSV : Exportation des données pour analyse externe
- Recherche et pagination : Tables dynamiques avec DataTables
- Validation des données : Côté serveur (Active Record) et client (Bootstrap)
- Calculs automatiques : Valeurs par défaut intelligentes
- Numéros de reçu : Génération automatique pour les paiements
- Authentification sécurisée avec Devise
- Gestion des rôles (Administrateur)
- Protection CSRF
- Validation des entrées
- Ruby 3.3.3
- Rails 7.1.6
- SQLite3 (développement/test)
- Puma (serveur web)
- HTML5 / ERB (templates)
- CSS3 / Bootstrap 5
- JavaScript (ES6+)
- Stimulus (framework JS)
- Turbo (navigation SPA-like)
- DataTables - Tables interactives
- Chart.js / Chartkick - Graphiques
- Flatpickr - Sélecteur de dates
devise- Authentificationchartkick+groupdate- Visualisation de donnéesbootsnap- Optimisation du démarragekamal- Déploiement Dockersentry-ruby/sentry-rails- Monitoring d'erreurs
rubocop-rails-omakase- Linting Rubybrakeman- Analyse de sécuritédebug- Débogage
Avant de commencer, assurez-vous d'avoir installé :
-
Ruby 3.3.3 ou supérieur
- Télécharger Ruby
- Windows : RubyInstaller
-
Node.js 18+ et Yarn
- Télécharger Node.js
- Installer Yarn :
npm install -g yarn
-
Git
-
SQLite3
- Généralement inclus avec Ruby sur Windows
- Linux/Mac :
sudo apt-get install sqlite3oubrew install sqlite3
git clone https://github.com/BahaManai/ESR-Basket-Academy-ERP-Rails-App.git
cd ESR-Basket-Academy-ERP-Rails-Appbundle installyarn install# Créer la base de données
rails db:create
# Exécuter les migrations
rails db:migrate
# Charger les données initiales (utilisateur admin)
rails db:seedrails serverL'application sera accessible sur http://localhost:3000
Après avoir exécuté rails db:seed, utilisez ces identifiants pour vous connecter :
Email : admin79@example.com
Mot de passe : securepassword
🔒 Sécurité : Ces identifiants sont uniquement pour le développement. Changez-les immédiatement en production via l'interface utilisateur !
Créez un fichier .env à la racine du projet pour les configurations sensibles (optionnel) :
# Email (optionnel pour les notifications)
GMAIL_USERNAME=votre_email@gmail.com
GMAIL_PASSWORD=votre_mot_de_passe_app
# Sentry (optionnel pour le monitoring)
SENTRY_DSN=votre_sentry_dsnLe fichier config/database.yml est configuré pour utiliser SQLite3 par défaut.
Pour la production, il est recommandé d'utiliser PostgreSQL ou MySQL.
- Accédez à Saisons dans le menu
- Cliquez sur Nouvelle saison
- Définissez les dates et les montants d'abonnement/assurance
- Enregistrez
- Accédez à Joueurs → Nouveau joueur
- Remplissez les informations (ou créez d'abord un parent)
- Assignez à un groupe
- Enregistrez
- Accédez au profil du joueur (cliquez sur "Modifier")
- Dans la section Abonnements, cliquez sur Nouveau paiement
- Remplissez les informations
- Le système calcule automatiquement la date d'expiration
- Accédez à la liste des joueurs
- Appliquez les filtres souhaités (actifs, expirés, crédits)
- Cliquez sur Exporter CSV
ESR-Basket-Academy-ERP-Rails-App/
├── app/
│ ├── controllers/ # Contrôleurs (logique métier)
│ ├── models/ # Modèles (entités de données)
│ ├── views/ # Vues (templates ERB)
│ ├── javascript/ # JavaScript (Stimulus, custom)
│ ├── assets/ # CSS, images
│ └── helpers/ # Helpers pour les vues
├── config/
│ ├── routes.rb # Routes de l'application
│ ├── database.yml # Configuration BDD
│ └── environments/ # Configs par environnement
├── db/
│ ├── migrate/ # Migrations de base de données
│ ├── schema.rb # Schéma actuel de la BDD
│ └── seeds.rb # Données initiales
├── public/ # Fichiers statiques
├── test/ # Tests (à développer)
├── Gemfile # Dépendances Ruby
├── package.json # Dépendances JavaScript
└── README.md # Ce fichier
L'application est configurée pour être déployée avec Kamal :
# Configurer les secrets
nano .kamal/secrets
# Déployer
kamal setup
kamal deploy# Créer l'application
heroku create esr-basket-academy
# Ajouter PostgreSQL
heroku addons:create heroku-postgresql:mini
# Déployer
git push heroku main
# Migrer la base de données
heroku run rails db:migrate db:seed- Installer Ruby, Node.js, et un serveur web (Nginx)
- Cloner le repository
- Configurer la base de données (PostgreSQL recommandé)
- Compiler les assets :
rails assets:precompile - Lancer avec systemd ou un process manager
Tableau de bord - Métriques principales |
Tableau de bord - Graphiques et statistiques |
Gestion des abonnements |
Gestion des assurances |
Suivi des dépenses |
|
Page des entraîneurs |
Formulaire avec validations côté client |
Page de gestion - Modification et ajout de salaire |
|
Liste des groupes |
Formulaire de modification d'un groupe |
Page de connexion sécurisée |
Les contributions sont les bienvenues ! Pour contribuer :
- Forkez le projet
- Créez une branche pour votre fonctionnalité (
git checkout -b feature/AmazingFeature) - Committez vos changements (
git commit -m 'Add some AmazingFeature') - Poussez vers la branche (
git push origin feature/AmazingFeature) - Ouvrez une Pull Request
- Les performances peuvent être plus lentes en développement
- Solution : Exclure le dossier du projet de Windows Defender ou utiliser WSL2
- Limité pour les environnements de production avec beaucoup d'utilisateurs simultanés
- Solution : Migrer vers PostgreSQL ou MySQL en production
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.
Baha Manai
- GitHub: @BahaManai
- L'équipe de l'ESR Basketball Academy
- La communauté Ruby on Rails
- Tous les contributeurs open source des gems utilisées
⭐ Si ce projet vous a été utile, n'hésitez pas à lui donner une étoile sur GitHub !















