Cette petite application permet de fournir des informations sur des pays.
Dans cette version, seuls les pays européens sont disponibles
Les données sont récupérées du site https://restcountries.eu.
- Framework backend PHP : Laravel 8.
- Framework front JS :
- Framework front CSS : Bulma 0.9.3.
La gestion de la navigation se fait avec Vue Router, ainsi que le stockage des données locales via Vuex.
- Cette route ne prend aucun paramètre.
- Elle récupère simplement les pays européens dans la base de données.
- Cette route ne prend aucun paramètre.
- Elle met à jour ou ajoute les pays du site https://restcountries.eu dans la base de données.
- Cette route est conçue pour une mise à jour via cron job. Retour de succès ou d'erreur en JSON.
-
Page d'accueil de l'application. On y trouve une liste des pays récupérés ainsi que leurs drapeaux.
-
Si la table 'countries' dans la base de données est vide, on lance la récupération et l'insertion en base avant d'arriver sur la page d'accueil.
- Page de présentation d'un pays. Le paramètre
code
dans la route permet via le code à 3 lettres du pays de récupérer le pays souhaité et d'afficher les détails.
- Installer PHP 7.4 minimum.
- Installer NodeJS 12 minimum.
- Clôner ce repo en local.
- Se rendre dans le dossier nouvellement créé.
- Lancer l'installation des modules NodeJs avec
npm i
- Lancer l'installation des vendors PHP avec
composer install
- Renommer le fichier
.env.example
en.env
- Dans un terminal, lancer la commande
php artisan key:generate
- Dans un terminal, lancer la commande
php artisan serve
et rendez-vous sur l'adresse indiquée.
- Dans un terminal, lancer la commande
npm run watch
. La compilation CSS et JS se fera automatiquement à chaque modification. - Quand tout est bon, lancer la commande
npm run production
. Cela aura pour effet de compiler le CSS et le JS.
- Internationaliser l'application.
- Ajouter une pagination sur la page principale pour alléger le chargement.
- Ajouter un champ "recherche" dans la barre de navigation.
- Pouvoir filtrer par pays avec un système de filtre dans la barre de navigation.
- Transformer la page qui présente le pays sous forme de dashboard interactif avec des données graphiques.
- Ajouter des tests unitaires en front et côté back.