Implémenter des concepts simples
L’implémentation du système de gestion des bateaux et du système de notation est un bon exemple de mise en place de concepts simples mais essentiels. Chaque utilisateur peut ajouter, modifier ou supprimer ses bateaux avec des caractéristiques définies comme l’immatriculation, la vitesse et la couleur. De plus, le système de notation permet d’attribuer une note de 1 à 5 avec un commentaire, facilitant la transparence et la confiance entre passagers et conducteurs.

Elaborer des concepts simples
La création du répertoire des ports illustre bien la démarche de conception d’un concept simple mais utile. Chaque port est associé à son nom, son île et ses coordonnées GPS, ce qui permet ensuite de calculer les distances entre eux. Cette fonctionnalité a nécessité la réflexion sur la structure de la base de données et l’intégration de ces informations dans l’interface utilisateur.

Faire des essais et évaluer leurs résultats en regard des spécification
L’un des défis techniques a été l’implémentation de la pagination sur la page des trajets sans rechargement de la page. Plusieurs essais ont été réalisés avec différentes approches avant d’aboutir à une solution fluide et efficace. L’envoi d’e-mails de validation a également nécessité plusieurs tests pour s’assurer que les liens étaient bien envoyés et fonctionnels, en tenant compte des restrictions des services de messagerie.

Développer des interfaces utilisateur
L’expérience utilisateur était une priorité dans BlaBlaBoat. La page d’accueil affiche clairement les trajets disponibles, avec des options de tri et de filtres dynamiques. De plus, l’interface du chat (BlaBlaChat) permet aux utilisateurs d’échanger des messages, photos et documents de manière fluide, sans quitter l’application.

Elaborer et implémenter les spécifications fonctionnelles et non fonctionnelles à partir des exigences
La mise en place du système de réservation a nécessité de bien définir les spécifications fonctionnelles : un trajet doit être réservable uniquement s’il reste des places disponibles, et l’utilisateur doit voir ses réservations dans son compte. Des contraintes non fonctionnelles ont aussi été prises en compte, comme l’optimisation des requêtes pour éviter les ralentissements.



Appliquer des principes d'accésibilité et d'ergonomie
Des efforts ont été faits pour rendre l’application intuitive et accessible. Par exemple, les informations essentielles sur les trajets (prix, heure de départ, disponibilité) sont bien visibles, et les filtres permettent une navigation efficace. L’interface respecte des principes d’ergonomie, comme des boutons bien espacés et des couleurs adaptées pour une meilleure lisibilité.

Adopter de bonnes pratiques de conception et de programmation
L’utilisation d’APIs tierces, comme OpenWeather pour la météo et Brevo pour les appels, a été faite en suivant des pratiques de conception solides.
Vérifier et valider la qualité de l’application par les tests
Des tests ont été réalisés pour vérifier la fiabilité du système de notation et du tri des trajets. Par exemple, un utilisateur ne pouvait pas noter un trajet qu’il n’avait pas effectué. De plus, les tris devaient être testés pour garantir qu’ils s’appliquaient correctement aux résultats affichés.
Choisir et implémenter les architectures adaptées
La base de données a été conçue pour gérer efficacement les relations entre utilisateurs, trajets et bateaux. L’architecture du chat a été pensée pour minimiser la latence et stocker les messages de façon organisée.
Faire évoluer une application existante
L’application a évolué avec l’ajout d’un système de météo en direct et l’amélioration de la gestion des escales. Ces ajouts ont nécessité des modifications dans la base de données et l’interface utilisateur, montrant la capacité d’adaptation du projet.
Intégrer des solutions dans un environnement de production
Le déploiement du projet sur un hébergeur web a nécessité des ajustements, notamment à cause des limitations d’un hébergement gratuit. L’intégration de Brevo pour les appels a permis de professionnaliser le service en donnant aux utilisateurs un moyen direct de contacter le support.