Skip to content
Snippets Groups Projects
Name Last commit Last update
php-app
.gitignore
README.md

HorseBand

HorseBand est une application web de gestion pour un club équestre. Elle permet l'administration de membres, de chevaux, de documents, d'entraînements et de matchs (locaux et nationaux), avec une interface dédiée aux administrateurs et aux adhérents.


Structure du projet

php-app/
├── docker/            # Configuration Docker (PHP, MySQL)
│   ├── php/
│   │   ├── Dockerfile
│   │   └── vhost.conf
│   └── sql/
│       └── init.sql         # Script de création des tables et données initiales
├── Files/
│   ├── assets/           # Images, CSS, JS
│   ├── includes/         # Fichiers partagés (config, header, footer)
│   ├── logs/             # Repertoire avec les logs
│   ├── pages/
│   │   ├── admin/           # Espace administrateur
│   │   ├── adherent/        # Espace utilisateur adhérent
│   │   ├── public/          # Espace utilisateur sans connexion 
│   │   └── storage/      
│   │       └── documents/      # Dossier pour les documents uploadés des adhérents
│   └── .env                # Fichier d'environnement
└── docker-compose.yml

Fonctionnalités

Adhérents

  • Accès à leur profil
  • Téléversement et suppression de documents
  • Consultation des entraînements et des matchs à venir

Administrateurs

  • Dashboard centralisé
  • Gestion des chevaux, documents, entraînements et matchs
  • Insertion, mise à jour et suppression des données
  • Système de rôle basé sur les sessions PHP

Démarrage rapide

Prérequis

  • Docker & Docker Compose installés

▶️ Lancer l'application

cd php-app
docker-compose up --build

L'application sera disponible sur http://localhost:8080.


Variables d'environnement

Le fichier .env contient les informations de connexion à la base de données, modifiables selon ton environnement :

DB_HOST=db
DB_NAME=horseband
DB_USER=root
DB_PASS=root

Base de données

Le fichier docker/sql/init.sql contient :

  • La création des tables users, matches, chevaux, documents, entrainements, etc.
  • Des données de test insérées automatiquement au lancement

Authentification

  • Utilise les sessions PHP
  • Redirige vers la page de connexion si l'utilisateur n'est pas authentifié
  • Vérifie le rôle (admin ou adherent) pour restreindre l'accès

Interface

  • CSS personnalisée dans assets/css/style.css
  • Images thématiques : chevaux, cavaliers, événements
  • Interfaces séparées pour les rôles

Fonctionnalités techniques

  • Upload de fichiers
  • Formulaires sécurisés (vérification de champs requis et types)
  • Traitement conditionnel (match local/national, statuts à venir/terminés)
  • Gestion des erreurs et messages de confirmation

Auteur

  • Thomas KANY et Romain DESERT : Securisation du projet
  • Ayat MERIMI et Zaynab RIFI : Creation du projet