SpaceX Launch Viewer est une application web développée avec Vue.js 3, permettant de visualiser les lancements SpaceX en temps réel. L'application interagit avec l'API officielle de SpaceX pour afficher :
- Le prochain lancement avec un compte à rebours dynamique
- Une liste complète des lancements passés et futurs avec filtrage avancé
- Vue.js 3 avec Composition API et TypeScript
- Vite pour un bundling rapide et moderne
- Tailwind CSS pour une interface responsive et modulaire
- CSS Custom Properties pour la thématisation
- API SpaceX v5
- TypeScript interfaces pour la type safety
- date-fns pour le traitement des dates
App.vue
: Composant principalNextLaunch.vue
: Compte à rebours du prochain lancementLaunchFilter.vue
: Filtres interactifsLaunchList.vue
: Liste des lancementsLaunchModal.vue
: Détails complets en modal
- Service centralisé pour les appels à l'API
- Gestion des erreurs et états de chargement
- Compte à rebours en temps réel
- Filtrage dynamique (Tous / Réussis / Échoués)
- Modal interactive avec vidéos intégrées
- Responsive Design optimisé pour tous les écrans
- Node.js ≥ 18
- npm ou yarn
npm install
npm run dev
npm run build
npm run lint
Plus grande flexibilité, meilleure séparation des préoccupations, logique réutilisable
Meilleure maintenabilité, détection précoce des erreurs
Possibilité d'effectuer des requêtes complexes avec
populate
Rapidité de prototypage + Thématisation avancée
- Problème : Synchronisation et memory leaks
- Solution :
onMounted
,onUnmounted
,clearInterval
propre
- Problème : UX fluide malgré la latence API
- Solution : États
isLoading
,isError
bien définis et réactifs
- Problème : Navigation clavier et fermeture intuitive
- Solution : Focus trap, gestion touche
Escape
- Problème : Adaptation multi-écran
- Solution : Grille CSS + breakpoints Tailwind
- Problème : Installation initiale avec
npx tailwindcss init
ne générait pas la configuration attendue - Solution : Résolution via la documentation officielle et les forums. Adaptation manuelle du fichier
tailwind.config.js
- Dyma.fr : Formation suivie en Vue.js 3 et Tailwind CSS
- Documentation Vue.js 3 : https://vuejs.org/
- Documentation Tailwind CSS : https://tailwindcss.com/docs
- API SpaceX v5 : https://github.com/r-spacex/SpaceX-API
- date-fns
- Vite
- TypeScript
- ESLint
- Vue DevTools
Ce projet a été réalisé dans le cadre d’un test technique pour un stage de deux mois en développement web. Il illustre les bonnes pratiques du développement moderne avec Vue 3, une architecture modulaire et évolutive, ainsi qu’un focus sur l’expérience utilisateur, l’accessibilité et la performance.