WeatherApp est une application de visualisation d'informations météorologiques de différents endroits (Villes, lieux dits ...)
Pour installer l'application veuillez suivre les instructions suivantes :
Pour lancer l'application :
- make
- php >= 7 avec les extensions pdo_sqlite and curl
- composer
Pour lancer les tests ou les fonctionnalités de developpement :
- nodeJs >= 6 avec yarn et npm
-
A la racine du projet lancez la commande
make install
-
Veuillez renseigner le fichier .env avec les informations suivantes : OPENWEATHER_API_KEY and GOOGLEMAP_API_KEY
- A la racine du projet lancez la commande
make start
et rendez vous dans votre navigateur sur l'adresse 127.0.0.1:8000
-
A la racine du projet lancez la commande
make tests-unit
pour lancer les tests unitaires -
A la racine du projet lancez la commande
make tests-func
pour lancer Cypress et executer les tests fonctionnels
Vous arrivez par défaut sur le dashboard vide de l'application. Pour visualiser des widgets Meteo il vous faut vous
connecter via le menu Administration
.
Voici les identifiants de demonstration pour la connection à l'application :
Pseudo : admin Password : admin
Vous êtes automatiquement redirigé vers l'interface d'adminitration des widgets.
Cliquez sur le bouton Ajouter
dans l'interface d'administration.
Vous arrivez sur le formulaire de création de widget.
Vous pouvez ici renseigner manuellement les informations de celui-ci : Nom, coordonnées de latitude et longitude
Vous pouvez aussi utiliser l'assistant pour retrouver les coordonnées d'un lieu via le champs formulaire 'Aide à la geolocalisation' qui se chargera de remplir automatiquement les champs du formulaire.
Cliquez ensuite sur 'Sauvegarder'. Votre widget sera maintenant visible depuis votre dashboard.
Cliquez sur le bouton Supprimer
dans l'interface d'administration sur la ligne correspondante au widget à supprimer.
Vous pouvez à tout moment basculer la langue de l'application entre Francais et Anglais en cliquant sur les boutons respectifs situés à droite dans le menu de l'application.
Le projet est basé sur Symfony 4 et PHP 7.
La donnée est sauvegardée dans une base SQLite.
La generation / compilation des assets est effectuée via Yarn / Webpack.
Les tests unitaires sont réalisés avec PHPUnit, les tests fonctionnels sont réalisés avec Cypress.
CQRS a été implémenté dans l'application afin de découpler completement la logique metier des controlleurs MVC de Symfony. Chaque action correspond à une commande avec la possibilité si on le souhaite de logger chaque appel a celles-ci pour re tracer par exemple un parcours utilisateur.
L'internationalisation de l'application est disponible avec des fichiers pré-remplis pour l'Anglais et le Francais.
- Intégration de docker pour le socle technique et l'hebergement de l'application
- Ajout de langues
- Ajout d'une gestion multi-utilisateurs