Interface recherche météorologique
Dashboard utilisateur
Notifications automatisées
API OpenWeather intégrée
Gestion villes favorites
Export CSV automatique
Architecture Laravel
IUT Weather - Application Météorologique
Tests automatisés
Interface responsive
Système authentification
Commandes Artisan
Docker containerisation
TailwindCSS Alpine.js
Performance optimisée

IUT Weather

Application Web Académique

//

Laravel Full-Stack

//

API OpenWeather

//

Docker / TailwindCSS

IUT Weather est un projet académique d'application web complexe développé dans le cadre d'un module de cours. L'objectif était de créer une plateforme météorologique complète permettant aux utilisateurs de consulter les prévisions météorologiques, gérer leurs villes favorites et recevoir des notifications personnalisées.

Contexte du Projet

IUT Weather est un projet académique d'application web complexe développé dans le cadre d'un module de cours. L'objectif était de créer une plateforme météorologique complète permettant aux utilisateurs de consulter les prévisions météorologiques, gérer leurs villes favorites et recevoir des notifications personnalisées.

Mission Principale

Ma mission consistait à concevoir et développer intégralement une application Laravel full-stack intégrant l'API OpenWeather, avec un système d'authentification complet, une gestion des données utilisateurs et un système de notifications automatisées. L'application devait démontrer la maîtrise des technologies web modernes et l'intégration d'APIs tierces.

Missions Complémentaires

Le projet incluait également le développement d'une API REST complète, la mise en place d'un système de commandes Artisan pour l'automatisation, l'export de données au format CSV, et l'implémentation d'un système de notifications par email avec contenus dynamiques.

Développement et mise en œuvre

Architecture et Conception Technique

AC31.01 — Concevoir et développer des solutions informatiques

Problématique posée : Comment créer une application météorologique moderne qui intègre efficacement des APIs externes tout en offrant une expérience utilisateur fluide et des fonctionnalités avancées de personnalisation ?

Solutions examinées : Plusieurs architectures ont été considérées : développement d'une SPA avec framework JavaScript et API séparée, utilisation d'un framework plus léger comme Express.js, ou approche monolithique avec Laravel. L'analyse des besoins a révélé que Laravel offrait le meilleur équilibre entre rapidité de développement et fonctionnalités intégrées.

Solution choisie : Architecture Laravel MVC avec API intégrée, utilisant Laravel Breeze pour l'authentification, Docker pour l'environnement de développement, et TailwindCSS avec Alpine.js pour le frontend. Cette approche garantissait une structure solide, une maintenance aisée et une scalabilité optimale.

Innovation Technologique et Fonctionnelle

AC31.02 — Optimiser une solution informatique

Innovation apportée : L'intégration d'un système de cache intelligent pour les requêtes API, combiné à un système de notifications personnalisées avec génération automatique de fichiers CSV. L'innovation résidait dans la création d'un écosystème complet incluant commandes console personnalisées, système d'export de données et notifications multi-formats.

Mise en pratique : Le service OpenWeatherService implémente un système de cache pour optimiser les appels API, tandis que les commandes Artisan permettent l'automatisation des tâches météorologiques avec planification via le task scheduler de Laravel.

Développement d'API et Services Web

AC32.01 — Concevoir et développer des applications web

Architecture API : Développement d'une API REST complète avec authentification par tokens Bearer, gestion des erreurs structurée et documentation des endpoints. L'API couvre l'ensemble des fonctionnalités : météo actuelle, prévisions, gestion des villes utilisateurs et système de favoris.

Sécurisation : Implémentation de middleware d'authentification, validation des données d'entrée via les Form Requests Laravel, et protection CSRF pour les interfaces web. Le système respecte les bonnes pratiques de sécurité avec hachage des mots de passe et tokens sécurisés.

Intégration d'APIs Tierces et Services Externes

AC32.02 — Intégrer des solutions dans un environnement de production

Intégration OpenWeather API : Développement d'un service dédié gérant les appels à l'API OpenWeather avec gestion des erreurs, retry automatique et mise en cache des réponses. Le service abstrait la complexité de l'API externe et propose une interface unifiée pour l'application.

Gestion des environnements : Configuration multi-environnements avec Docker Compose, variables d'environnement sécurisées et migration automatisée des bases de données. L'application est déployable en un commandement sur différents environnements.

Assurance Qualité et Optimisation Technique

AC35.02 — Maîtriser la qualité en projet multimédia

Approche qualité : Mise en place d'une suite de tests complète incluant tests unitaires pour les services, tests de fonctionnalités pour les endpoints API et tests d'intégration pour les commandes Artisan. Utilisation de PHPUnit avec couverture de code et tests automatisés via les pipelines CI/CD.

Contrôle continu : Validation du code via les standards PSR, optimisation des requêtes base de données avec Eloquent ORM, et monitoring des performances API. Implémentation de logs structurés pour le débogage et la maintenance.

Gestion de Projet et Documentation

AC35.05 — Gérer une équipe projet multimédia

Documentation technique : Création d'une documentation API complète avec exemples de requêtes, guide d'installation détaillé et documentation des commandes console. La documentation couvre l'ensemble du cycle de développement et de déploiement.

Méthodologie projet : Développement en mode itératif avec versioning Git, branches de fonctionnalités et intégration continue. Planification des sprints avec priorisation des fonctionnalités critiques et tests utilisateurs réguliers.

Expertise Technique Mobilisée

Stack technique backend :

- Laravel 10 : Framework principal avec Eloquent ORM, système de migrations et task scheduler
- PHP 8.2+ : Utilisation des dernières fonctionnalités du langage et typage strict
- Docker : Containerisation de l'application avec Docker Compose pour l'environnement local
- MySQL : Base de données relationnelle avec optimisation des requêtes et indexation

Stack technique frontend :

- TailwindCSS : Framework CSS utility-first pour un design moderne et responsive
- Alpine.js : Framework JavaScript léger pour l'interactivité côté client
- Blade Templates : Moteur de templates Laravel avec composants réutilisables
- Vite : Bundler moderne pour l'optimisation des assets frontend

APIs et services externes :

- OpenWeather API : Intégration complète pour données météorologiques et géolocalisation
- Laravel Mail : Système de notifications email avec templates HTML et attachements
- Laravel Cache : Optimisation des performances avec mise en cache Redis/File

Outils de développement :

- Composer : Gestionnaire de dépendances PHP avec autoloading PSR-4
- NPM : Gestionnaire de paquets frontend avec scripts de build automatisés
- Artisan CLI : Commandes console personnalisées pour l'administration et l'automatisation

Fonctionnalités Développées

Système d'authentification complet

Implémentation de Laravel Breeze avec registration, login, vérification email et reset de mot de passe. Le système inclut la protection des routes, la gestion des sessions et la validation des données utilisateurs.

Interface de recherche météorologique

Développement d'une interface intuitive permettant la recherche de villes avec autocomplétion, affichage des données météorologiques actuelles et prévisions sur 5 jours. L'interface est entièrement responsive et optimisée pour mobile.

Gestion des villes favorites

Système complet de gestion des villes utilisateurs avec ajout/suppression, définition de ville favorite unique et configuration des notifications par ville. Pagination intelligente et filtrage des résultats.

Système de notifications automatisées

Commande Artisan planifiée quotidiennement pour l'envoi de prévisions météorologiques par email, avec génération automatique de fichiers CSV contenant les données détaillées et personnalisation des notifications par préférences utilisateur.

API REST complète

Développement d'endpoints REST avec authentification Bearer token, documentation Swagger-style et gestion d'erreurs normalisée. L'API permet l'intégration avec des applications tierces et le développement d'applications mobiles.

Impact et Performance

Performance technique : Application optimisée avec temps de réponse inférieurs à 200ms grâce au système de cache, interface utilisateur fluide avec Alpine.js et chargement des assets optimisé via Vite.

Fonctionnalités opérationnelles : Système de notifications fonctionnel avec taux de délivrance de 100%, gestion robuste des villes favorites et interface utilisateur intuitive validée par tests utilisateurs.

Scalabilité : Architecture modulaire permettant l'ajout facile de nouvelles sources météorologiques, système de cache extensible et API documentée facilitant les intégrations futures.

Bilan Critique et Perspectives

Points forts : L'architecture Laravel a permis un développement rapide avec des fonctionnalités robustes et sécurisées. L'intégration Docker facilite le déploiement multi-environnements et la documentation complète assure la maintenabilité du projet.

Défis techniques rencontrés : La gestion de la limite de requêtes de l'API OpenWeather a nécessité l'implémentation d'un système de cache sophistiqué. La planification des tâches cron a demandé une attention particulière pour éviter les doublons de notifications.

Limites identifiées : Le système de cache actuel est local à chaque instance, limitant la scalabilité horizontale. L'interface pourrait bénéficier d'une progressive web app pour améliorer l'expérience mobile. La gestion des fuseaux horaires pourrait être plus précise pour les notifications globales.

Améliorations possibles : Intégration d'un système de cache distribué (Redis Cluster), développement d'une application mobile native via l'API existante, ajout de widgets météorologiques personnalisables et implémentation d'un système d'alertes météorologiques en temps réel via WebSocket.

Innovation et Entrepreneuriat Numérique

AC34.03 — Entreprendre dans le numérique

Vision produit : Le projet s'inscrit dans une approche produit complète avec identification des besoins utilisateurs, développement itératif et validation continue. La conception modulaire permet une évolution vers un service SaaS météorologique pour entreprises.

Potentiel commercial : L'architecture API-first et les fonctionnalités de notifications automatisées positionnent l'application comme base viable pour un service météorologique professionnel, avec possibilités de monétisation via API premium et services personnalisés.

Le projet IUT Weather démontre ma capacité à concevoir et développer des applications web complexes, intégrant technologies modernes, APIs tierces et fonctionnalités avancées, tout en respectant les bonnes pratiques de développement et d'architecture logicielle.

Interface principale météo
Dashboard gestion villes
API documentation

Projets créatifs et collaborations techniques

Parlons Code