GameSet est une application web développée avec Symfony permettant de gérer et d'organiser des tournois et parties de jeux. Elle propose la création de tournois, la gestion des joueurs, et un système de suivi des parties.
- À propos
- Fonctionnalités
- Prérequis
- Installation
- Utilisation
- Structure du projet
- Tests
- Contribution
- Licence
- Contact
GameSet est une application web construite avec Symfony 7.3 qui permet de gérer des tournois de jeux. L'application offre une interface intuitive pour créer des tournois, gérer les participants et suivre les résultats des parties.
- Création et gestion de tournois
- Gestion des joueurs et participants
- Interface utilisateur réactive avec Symfony UX Turbo
- Système de routing avancé
- Gestion de la sécurité et authentification
- Interface d'administration
Avant de commencer l'installation, assurez-vous d'avoir les éléments suivants :
- PHP >= 8.2 avec les extensions suivantes :
- ext-ctype
- ext-iconv
- ext-pdo
- ext-pdo_mysql (pour MariaDB/MySQL)
- Composer (gestionnaire de dépendances PHP)
- MariaDB >= 10.6 ou MySQL >= 8.0
- Git
- Un serveur web (Apache, Nginx) ou le serveur web intégré de Symfony
📖 Guide d'installation détaillé disponible : Pour des instructions complètes étape par étape incluant tous les détails de configuration de MariaDB, consultez le fichier INSTALLATION.md.
Voici un résumé des étapes d'installation. Pour plus de détails, référez-vous au guide d'installation complet.
sudo apt update
sudo apt install -y php8.2 php8.2-cli php8.2-fpm php8.2-mysql php8.2-xml php8.2-mbstring php8.2-curl php8.2-zip php8.2-intlbrew install php@8.2Téléchargez PHP depuis windows.php.net et suivez les instructions d'installation.
Vérifiez l'installation :
php -vcurl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
chmod +x /usr/local/bin/composerTéléchargez et exécutez Composer-Setup.exe
Vérifiez l'installation :
composer --version# Installer MariaDB
sudo apt update
sudo apt install -y mariadb-server mariadb-client
# Démarrer le service MariaDB
sudo systemctl start mariadb
sudo systemctl enable mariadb
# Sécuriser l'installation MariaDB
sudo mysql_secure_installation# Installer MariaDB via Homebrew
brew install mariadb
# Démarrer le service
brew services start mariadb
# Sécuriser l'installation
mysql_secure_installation- Téléchargez MariaDB depuis mariadb.org
- Exécutez l'installateur MSI
- Suivez l'assistant d'installation
- Définissez le mot de passe root lors de l'installation
Connectez-vous à MariaDB :
sudo mysql -u root -pCréez la base de données et l'utilisateur pour GameSet :
-- Créer la base de données
CREATE DATABASE gameset CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- Créer un utilisateur dédié
CREATE USER 'gameset_user'@'ip_de_la_base_de_donnees' IDENTIFIED BY 'votre_mot_de_passe_securise';
-- Accorder tous les privilèges sur la base de données
GRANT ALL PRIVILEGES ON gameset.* TO 'gameset_user'@'ip_de_la_base_de_donnees';
-- Recharger les privilèges
FLUSH PRIVILEGES;
-- Quitter MariaDB
EXIT;Notes de sécurité :
- Remplacez
votre_mot_de_passe_securisepar un mot de passe fort - En production, limitez les privilèges aux seules permissions nécessaires
- Ne partagez jamais vos identifiants de base de données
Vérifiez la connexion :
mysql -u gameset_user -p gameset- Clonez le dépôt :
git clone https://github.com/lenyLBG/GameSet.git
cd GameSet- Installez les dépendances PHP :
composer install- Configurez les variables d'environnement :
Créez un fichier .env.local pour vos configurations locales :
cp .env .env.localÉditez le fichier .env.local et configurez votre connexion à la base de données :
# .env.local
DATABASE_URL="mysql://gameset_user:votre_mot_de_passe_securise@ip_de_la_base_de_donnees:3306/gameset?serverVersion=11.4-MariaDB&charset=utf8mb4"Remplacez :
gameset_userpar votre nom d'utilisateur MariaDBvotre_mot_de_passe_securisepar votre mot de passe11.4-MariaDBpar votre version de MariaDB (vérifiez avecmysql --version)
Vous pouvez également configurer un APP_SECRET unique :
# Générer une clé secrète
php -r "echo bin2hex(random_bytes(16)) . PHP_EOL;"Ajoutez la clé générée dans .env.local :
APP_SECRET=votre_cle_secrete_generee- Créez les tables de la base de données :
# Créer les tables selon les entités Doctrine
php bin/console doctrine:migrations:migrate
# Ou si aucune migration n'existe encore, créer le schéma
php bin/console doctrine:schema:create- Chargez les données de test (optionnel) :
Si des fixtures sont disponibles :
php bin/console doctrine:fixtures:load- Installez les assets :
php bin/console asset-map:compile- Configurez les permissions :
# Assurez-vous que les répertoires var/ sont accessibles en écriture par le serveur web
# Utilisez le propriétaire du serveur web (www-data sur Ubuntu/Debian, _www sur macOS)
sudo chown -R www-data:www-data var/
sudo chmod -R 775 var/
# Pour le développement local, vous pouvez utiliser votre utilisateur
sudo chown -R $USER:www-data var/
sudo chmod -R 775 var/Utilisez le serveur web intégré de Symfony :
symfony server:startOu si vous n'avez pas le CLI Symfony installé :
php -S localhost:8000 -t public/L'application sera accessible à l'adresse : http://localhost:8000
Le projet inclut un fichier compose.yaml configuré pour utiliser MariaDB.
# Démarrer les services Docker
docker compose up -d
# Vérifier les logs
docker compose logs -f database
# Arrêter les services
docker compose downPour Docker, créez un fichier .env.local avec les variables d'environnement :
# .env.local pour Docker
DATABASE_URL="mysql://gameset_user:votremotdepasse@database:3306/gameset?serverVersion=11.4-MariaDB&charset=utf8mb4"
# Variables pour Docker Compose (optionnel, pour personnaliser)
MARIADB_VERSION=11.4
MYSQL_DATABASE=gameset
MYSQL_USER=gameset_user
MYSQL_PASSWORD=votremotdepasse_securise
MYSQL_ROOT_PASSWORD=rootpassword_securise# Vider le cache
php bin/console cache:clear
# Créer une nouvelle migration
php bin/console make:migration
# Exécuter les migrations
php bin/console doctrine:migrations:migrate
# Créer un nouveau contrôleur
php bin/console make:controller
# Créer une nouvelle entité
php bin/console make:entity
# Lister toutes les routes
php bin/console debug:router
# Vérifier la configuration
php bin/console aboutPour déployer en production :
- Configurez les variables d'environnement :
APP_ENV=prod
APP_DEBUG=0- Optimisez l'application :
composer install --no-dev --optimize-autoloader
php bin/console cache:clear --env=prod
php bin/console cache:warmup --env=prod
php bin/console asset-map:compile- Configurez votre serveur web (Apache/Nginx) pour pointer vers le répertoire
public/
# Exécuter tous les tests
php bin/phpunit
# Exécuter un fichier de test spécifique
php bin/phpunit tests/Controller/HomeControllerTest.php
# Exécuter les tests avec couverture de code
php bin/phpunit --coverage-html var/coverageLes tests utilisent une base de données séparée. Assurez-vous de configurer votre .env.test.local :
# .env.test.local
DATABASE_URL="mysql://gameset_user:votremotdepasse@127.0.0.1:3306/gameset_test?serverVersion=11.4-MariaDB&charset=utf8mb4"Créez la base de données de test :
php bin/console --env=test doctrine:database:create
php bin/console --env=test doctrine:schema:createGameSet/
├── assets/ # Assets JavaScript et CSS
├── bin/ # Scripts exécutables (console Symfony)
├── config/ # Configuration de l'application
│ ├── packages/ # Configuration des bundles
│ └── routes/ # Configuration des routes
├── migrations/ # Migrations de base de données Doctrine
├── public/ # Point d'entrée web et assets publics
│ └── index.php # Contrôleur frontal
├── src/
│ ├── Controller/ # Contrôleurs de l'application
│ ├── Entity/ # Entités Doctrine (modèles)
│ ├── Repository/ # Repositories Doctrine
│ └── Kernel.php # Noyau de l'application
├── templates/ # Templates Twig
├── tests/ # Tests PHPUnit
├── translations/ # Fichiers de traduction
├── var/ # Fichiers générés (cache, logs)
├── vendor/ # Dépendances Composer
├── .env # Variables d'environnement (défaut)
├── .env.local # Variables d'environnement locales (non versionné)
├── composer.json # Dépendances PHP
├── compose.yaml # Configuration Docker Compose
└── symfony.lock # Fichier de verrouillage Symfony Flex
Merci de votre intérêt pour contribuer à GameSet !
- Forkez le dépôt
- Créez une branche pour votre fonctionnalité :
git checkout -b feat/ma-fonctionnalite
- Commitez vos changements :
git commit -m "feat: description de la fonctionnalité" - Poussez vers votre fork :
git push origin feat/ma-fonctionnalite
- Ouvrez une Pull Request
- Suivez les standards PSR-12 pour le code PHP
- Utilisez des noms de variables et de fonctions explicites
- Commentez le code complexe
- Ajoutez des tests pour les nouvelles fonctionnalités
- Mettez à jour la documentation si nécessaire
Utilisez les préfixes suivants pour vos commits :
feat:pour une nouvelle fonctionnalitéfix:pour une correction de bugdocs:pour la documentationstyle:pour le formatage du coderefactor:pour la refactorisationtest:pour l'ajout de testschore:pour les tâches de maintenance
Si vous rencontrez une erreur de connexion à MariaDB :
# Vérifiez que MariaDB est en cours d'exécution
sudo systemctl status mariadb
# Vérifiez vos identifiants
mysql -u gameset_user -p gameset
# Vérifiez la configuration dans .env.local
cat .env.local | grep DATABASE_URLSi vous rencontrez des erreurs de permissions :
# Assurez-vous que var/ est accessible en écriture par le serveur web
# Option 1: Utiliser le groupe du serveur web
sudo chown -R $USER:www-data var/
sudo chmod -R 775 var/
# Option 2: En développement local, utiliser votre utilisateur
sudo chown -R $USER:$USER var/
sudo chmod -R 755 var/Si vous rencontrez des erreurs de classes non trouvées :
# Régénérez l'autoloader de Composer
composer dump-autoload
# Videz le cache Symfony
php bin/console cache:clearSi le port 8000 est déjà utilisé :
# Utilisez un autre port
php -S localhost:8080 -t public/
# Ou trouvez quel processus utilise le port
lsof -i :8000Ce projet est sous licence propriétaire. Tous droits réservés.
Pour toute question, suggestion ou problème, contactez :
- Auteur : @lenyLBG
- GitHub : https://github.com/lenyLBG/GameSet
Note : Ce README a été complété avec des instructions détaillées d'installation incluant la configuration complète de MariaDB. Assurez-vous d'adapter les informations de connexion à votre environnement spécifique.