frontMkmPy est une application web Symfony moderne dédiée au suivi professionnel de l'évolution des prix des cartes Magic: The Gathering.
Elle sert d'interface front-end sophistiquée pour la base de données du projet mkmpy et intègre l'intelligence artificielle de MKMOraclePy pour des prédictions de prix avancées.
- ✨ Fonctionnalités
- 🛠️ Stack technique
- 📋 Prérequis
- 🚀 Installation
- 🌐 Utilisation
- 📁 Structure du projet
- 🔧 Configuration
- 🤝 Contribution
- 🔗 Liens utiles
- 📄 Licence
- Graphiques interactifs Chart.js avec évolution des prix et prédictions IA
- Statistiques en temps réel avec animations de compteurs sur la homepage
- Rankings dynamiques : top gainers/losers en absolu et pourcentage (1j/7j/30j)
- Système de cache intelligent en base de données (TTL 25h, warmup automatique)
- Comparaisons historiques et analyse de tendances
- Export de données en CSV et autres formats
- Design responsive Bootstrap 5 avec support mobile complet
- Thème adaptatif clair/sombre avec détection automatique du système
- Navigation SPA ultra-rapide avec Turbo.js
- Animations fluides et transitions élégantes
- Homepage impactante avec sections modulaires
- Recherche avancée multi-critères avec filtres intelligents
- Navigation fluide avec URLs localisées (EN/FR)
- Pagination optimisée avec KnpPaginator
- Tri dynamique des tables avec localStorage
- Support multilingue complet (Français/Anglais)
- Sélecteur de langue avec drapeaux et URLs localisées
- Traductions dynamiques dans les contrôleurs et templates
- Interface adaptative selon la locale
- Intégration Scryfall pour images et métadonnées
- Hover d'images avec prévisualisation des cartes
- Gestion des extensions avec comptage automatique des cartes
- Support des cartes foil et versions alternatives
- Flip cards avec animations CSS
- Symfony 7.3 - Framework PHP moderne
- Doctrine ORM 3.5+ - Mapping objet-relationnel
- PHP 8.2+ - Dernières fonctionnalités du langage
- MySQL/MariaDB - Base de données relationnelle
- Twig 3.x - Moteur de templates modulaire
- Bootstrap 5 - Framework CSS responsive
- Turbo.js - Navigation SPA sans JavaScript complexe
- Chart.js 4.x - Graphiques interactifs
- Bootstrap Icons - Iconographie cohérente
- AssetMapper - Gestion d'assets moderne sans Webpack
- Symfony UX - Composants réactifs (Turbo, ChartJS, TwigComponent)
- Composants Twig - Architecture modulaire et réutilisable
- JavaScript modulaire - Code organisé en modules ES6+
- PHP >= 8.2 avec extensions :
pdo_mysql,intl,opcache - Composer 2.x - Gestionnaire de dépendances PHP
- MySQL 8.0+ ou MariaDB 10.6+
- Symfony CLI (recommandé pour le développement)
- Git pour le versioning
git clone https://github.com/gschmirgal/frontMkmPy.git
cd frontMkmPycomposer install# Copier le fichier de configuration
cp .env .env.local
# Éditer .env.local et configurer DATABASE_URL
# DATABASE_URL="mysql://user:password@127.0.0.1:3306/frontmkmpy"# Créer la base de données
php bin/console doctrine:database:create
# Appliquer les migrations
php bin/console doctrine:migrations:migrate# Compiler les assets
php bin/console asset-map:compile# Générer le cache initial pour les statistiques et rankings
curl http://localhost:8000/cache/warmup
# Ou via la commande console
php bin/console app:stats-cache:invalidate# Avec Symfony CLI (recommandé)
symfony server:start
# Ou avec PHP built-in server
php -S 0.0.0.0:8000 -t public- Homepage :
/(redirige vers/enou/fr) - Extensions :
/fr/expansions - Cartes d'une extension :
/fr/expansion/{id} - Détail d'une carte :
/fr/card/{cardid}/{expansionid} - Rankings :
/fr/rankings?timeframe=7d&foil=normal - Recherche :
/fr/search?search=motclef - Administration :
/fr/admin/logs/mkmpy
- Changement de langue via le sélecteur dans la navbar
- Thème sombre/clair automatique ou manuel
- Rankings de prix : visualisez les plus fortes hausses/baisses sur différentes périodes
- Filtres avancés : normal/foil, variations absolues/relatives, 1j/7j/30j
- Export CSV depuis les tables de données
- Graphiques interactifs sur les pages de détail des cartes
- Cache automatique pour des performances optimales
frontMkmPy/
├── src/
│ ├── Command/ # Commandes console (cache, stats)
│ ├── Controller/ # Contrôleurs avec logique métier
│ ├── Entity/ # Entités Doctrine ORM
│ ├── Repository/ # Requêtes optimisées (rankings, stats)
│ ├── Service/ # Services métier (cache, stats)
│ └── Twig/Components/ # Composants Twig réutilisables
├── templates/
│ ├── components/ # Composants UI modulaires
│ │ └── home/ # Composants de la homepage
│ ├── card/ # Pages des cartes
│ ├── expansion/ # Pages des extensions
│ └── ranking/ # Pages des rankings
├── assets/
│ ├── js/ # JavaScript modulaire
│ └── styles/ # Styles CSS personnalisés
├── config/
│ ├── packages/ # Configuration des bundles
│ └── routes.yaml # Routes localisées
├── translations/ # Fichiers de traduction (EN/FR)
└── migrations/ # Migrations de base de données
DATABASE_URL="mysql://user:pass@host:3306/db"
APP_ENV=prod
APP_SECRET=your-secret-key# Invalider et régénérer tous les caches
php bin/console app:stats-cache:invalidate
# Nettoyer les entrées de cache expirées
php bin/console app:stats-cache:clean
# Warmup via HTTP (pour cron)
curl https://votre-domaine.com/cache/warmup# Optimisation pour la production
php bin/console cache:clear --env=prod
php bin/console asset-map:compile
# Permissions (Linux/Unix)
sudo chown -R www-data:www-data var/
sudo chmod -R 775 var/
# Configuration cron recommandée (warmup quotidien)
0 1 * * * curl -s https://votre-domaine.com/cache/warmup > /dev/null 2>&1- Forkez le projet
- Créez une branche feature (
git checkout -b feature/ma-feature) - Commitez vos modifications (
git commit -m 'Ajout ma feature') - Poussez la branche (
git push origin feature/ma-feature) - Ouvrez une Pull Request
- mkmpy - Script Python de collecte de données CardMarket
- MKMOraclePy - Intelligence artificielle pour prédictions de prix
- Portfolio - Portfolio du développeur
- Scryfall API - Données et images Magic
- CardMarket API - Prix et marketplace
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.