README.md 3,92 ko
Newer Older
Redjradj Yacine's avatar
Redjradj Yacine a validé
# 🏐 VolleyManager

Application Symfony 7 pour gérer un championnat de volleyball. Ce projet permet d'administrer complètement les équipes, joueurs, matchs et les détails liés aux compétitions (sets, salles, éditions).

---

## 📋 Structure des Données (Tables)

L'application est divisée en 6 entités principales. Voici ce que gère et affiche chaque table :

* **Édition** (`/edition`) : Affiche l'année de la compétition et le pays hôte.
* **Équipe** (`/equipe`) : Affiche le nom de l'équipe (nation) et sa fédération de rattachement. Permet aussi d'accéder aux détails de l'équipe.
* **Joueur** (`/joueur`) : Affiche l'identité du joueur (nom, prénom), sa date de naissance, sa taille en centimètres et son pays.
* **Match** (`/matche`) : Affiche la date, la phase du tournoi, l'édition, la salle concernée, les deux équipes qui s'affrontent, et le **gagnant**. Permet d'accéder au détail des sets et des équipes.
* **Salle** (`/salle`) : Affiche le nom du lieu, la ville, l'adresse exacte et sa capacité d'accueil. Affiche aussi l'historique complet de tous les matchs qui y ont été joués.
* **Set** (`/set`) : Affiche le détail point par point d'un match : le numéro du set et les scores respectifs de l'Équipe 1 et de l'Équipe 2.

> **Note :** Toutes ces tables disposent d'un système de **pagination** limitant l'affichage à 8 éléments par page pour plus de lisibilité.

---

## 🛠️ Installation & Configuration
Redjradj Yacine's avatar
Redjradj Yacine a validé

1. **Cloner le projet**
2. **Installer les dépendances PHP** : `composer install`
3. **Installer les dépendances Frontend** (optionnel) : `php bin/console importmap:install`

### ⚙️ Configuration de la base de données (`.env`)

Pour que l'application fonctionne, elle doit se connecter à une base de données PostgreSQL. Vous devez configurer la ligne `DATABASE_URL` dans votre fichier `.env` ou créer un fichier `.env.local` pour ne pas impacter les autres développeurs.

#### 🍎 Pour macOS
Sur macOS, si vous utilisez PostgreSQL via Homebrew ou Postgres.app, l'identifiant par défaut est souvent le nom de votre session utilisateur sans mot de passe.
```env
# Remplacez "votre_nom_utilisateur" par votre identifiant de session Mac (ex: yacineredjradj)
DATABASE_URL="postgresql://votre_nom_utilisateur:@127.0.0.1:5432/symfony_db?serverVersion=16&charset=utf8"
```

#### 🐧/🪟 Pour Linux & Windows
Si vous utilisez un serveur PostgreSQL local (comme pgAdmin, WSL, ou un service classique) :
```env
# Remplacez "postgres" et "motdepasse" par vos identifiants configurés lors de l'installation de Postgres
DATABASE_URL="postgresql://postgres:motdepasse@127.0.0.1:5432/symfony_db?serverVersion=16&charset=utf8"
```

---

## 🚀 Lancement de l'application

Une fois la base de données correctement configurée dans le fichier `.env` :

1. **Créer la base de données** (si elle n'existe pas) : 
   `php bin/console doctrine:database:create`
2. **Créer les tables** avec la dernière structure : 
   `php bin/console doctrine:migrations:migrate`
3. **Lancer le serveur de développement Symfony** : 
   `symfony serve -d`

L'application sera accessible sur : **http://127.0.0.1:8000**

---

## 🆕 Dernières mises à jour

Depuis la dernière consultation, voici les nouveautés intégrées :
- **Pagination Globale** : Installation du `knp-paginator-bundle` avec configuration Bootstrap 5. Tous les tableaux d'index (les 6 entités) n'affichent plus que 8 éléments au maximum par page.
- **Affichage relationnel enrichi** : Les liens et détails entre les tables ont été renforcés sur les vues individuelles :
   - **Salle** : Affiche désormais l'historique complet des matchs joués dans la salle spécifique, avec mention du gagnant.
   - **Match** : Affiche le résultat global, les équipes, le nombre de sets, l'identification de la salle, et le détail complet de chaque set joué avec un lien vers leur vue respective.
   - **Set** : Amélioration de la compréhension des points par équipe reliée aux matchs.