Plateforme de gestion complète pour clubs de basket : effectifs, matchs, statistiques, bien-être et portfolio public des joueurs.
- 🎯 Vision du projet
- 🧱 Architecture technique
- 🗂 Structure du projet
- ⚙️ Installation & configuration
- 🚀 Démarrage du serveur
- 🧩 Fonctionnalités principales
- 🧠 Technologies & packages clés
- 🔐 Authentification JWT (API)
- 🧰 Commandes utiles
- 📦 Roadmap & évolutions
- 🤝 Contribution
- 📄 Licence
Le Basket Management System est une application web modulaire qui permet aux clubs de basket de :
- Gérer les effectifs (joueurs, coachs, staff)
- Planifier les activités (matchs, entraînements, présences)
- Suivre les performances (statistiques, analytics)
- Superviser la santé et le bien-être (RPE, blessures, charge)
- Publier un portfolio public par joueur pour la visibilité et le scouting
👉 Chaque club dispose de son propre espace (multi-tenant) avec branding, utilisateurs et données séparés.
| Couche | Technologie | Description |
|---|---|---|
| Backend | Django 5 + DRF | API REST modulaire |
| Base de données | PostgreSQL | Données relationnelles & JSONB |
| Authentification | JWT (SimpleJWT) | Auth API pour web/mobile |
| Cache & tâches | Redis + Celery (plus tard) | File d’attente et cache |
| Fichiers | django-storages (S3) (optionnel) | Uploads médias |
| Front web | Django Templates / HTMX (MVP) | Interface admin légère |
| Front mobile | (Futur) Vue / Ionic / Flutter | Application joueur/coach |
basket_project/
│
├── backend/
│ ├── __init__.py
│ ├── asgi.py
│ ├── wsgi.py
│ ├── urls.py
│ └── settings.py
│
├── accounts/
│ ├── models.py
│ ├── views.py
│ ├── serializers.py
│ ├── urls.py
│ └── admin.py
│
├── clubs/
│ ├── models.py
│ ├── admin.py
│ └── urls.py
│
├── manage.py
└── .env
git clone https://github.com/toncompte/basket_project.git
cd basket_projectpython3 -m venv venv
source venv/bin/activate # Linux/Mac
# ou
venv\Scripts\activate # Windowspip install -r requirements.txtContenu de base de requirements.txt :
django
djangorestframework
djangorestframework-simplejwt
psycopg2-binary
python-decouple
DB_NAME=basket_db
DB_USER=postgres
DB_PASSWORD=motdepasse
DB_HOST=127.0.0.1
DB_PORT=5432
psql -U postgres
CREATE DATABASE basket_db;
\qpython manage.py makemigrations
python manage.py migratepython manage.py createsuperuserpython manage.py runserverAccès :
| Module | Description |
|---|---|
| 🧑💼 Accounts | Gestion des utilisateurs et rôles |
| 🏟️ Clubs | Création et configuration de clubs |
| 📅 Planning (à venir) | Activités, matchs, entraînements |
| 📊 Stats (à venir) | Suivi et calculs analytiques |
| 💪 Wellness (à venir) | Bien-être et charge |
| 🩺 Medical (à venir) | Blessures et disponibilité |
| 🌐 Portfolio public | Page publique du joueur |
| Package | Rôle |
|---|---|
| Django | Framework principal |
| Django REST Framework | API REST |
| SimpleJWT | Auth par token |
| PostgreSQL | Base de données |
| Python Decouple | Variables d’environnement |
| psycopg2-binary | Connexion PostgreSQL |
| django-storages | Fichiers distants |
| Redis / Celery | (plus tard) Tâches et cache |
Endpoints principaux :
| Méthode | Endpoint | Description |
|---|---|---|
| POST | /api/token/ |
Génère un token JWT |
| POST | /api/token/refresh/ |
Rafraîchit un token expiré |
Exemple de réponse :
{
"access": "eyJ0eXAiOiJKV1QiLCJhbGci...",
"refresh": "eyJhbGciOiJIUzI1NiIsInR5cCI..."
}| Commande | Action |
|---|---|
python manage.py makemigrations |
Générer migrations |
python manage.py migrate |
Appliquer migrations |
python manage.py createsuperuser |
Créer un admin |
python manage.py runserver |
Lancer le serveur |
python manage.py shell |
Console Django |
python manage.py startapp nom_app |
Nouvelle app |
| Étape | Module | Statut |
|---|---|---|
| ✅ | Auth & Clubs | Terminé |
| 🔜 | Activités & présences | En cours |
| 🔜 | Matchs & stats | À venir |
| 🔜 | Bien-être & charge | À venir |
| 🔜 | Portfolio public | À venir |
| 🔜 | Facturation | À venir |
- Fork le projet
- Crée une branche :
git checkout -b feature/ma-fonctionnalite- Commit & push :
git push origin feature/ma-fonctionnalite- Soumets une Pull Request 🚀
Projet open-source sous licence MIT.