La messagerie joue un rôle essentiel dans une application de covoiturage en permettant aux utilisateurs de communiquer et de coordonner leurs trajets de manière efficace. En offrant une possibilité de communication directement dans l’application, la messagerie facilite la coordination des détails, tels que les horaires, les points de rencontre et les préférences des passagers.
Cette fonctionnalité permet également de renforcer la confiance entre les utilisateurs. Les messages échangés peuvent servir de moyen de vérification des informations et de confirmation des arrangements convenus. Les utilisateurs peuvent poser des questions, discuter et clarifier les détails importants avant le voyage. La messagerie contribue ainsi à améliorer l’expérience globale des utilisateurs en favorisant une communication transparente et fluide.
Entité
L’entité « Message » joue un rôle central dans la messagerie de cette application web. Elle permet la gestion des messages échangés entre les utilisateurs. Cette entité permet ensuite de créer la table message dans la base de données où il sera stocké tous les messages que les utilisateurs s’échangent.
L’entité « Message » comprend plusieurs attributs, tels que :
- « id » : un identifiant unique pour chaque message.
- « msg » : le contenu textuel du message.
- « created_at » : la date et l’heure de création du message. Afin de pouvoir trier par date de publication
- « is_read » : un indicateur booléen pour indiquer si le message a été lu ou non.
- « sender » : un lien vers l’utilisateur qui a envoyé le message. Cette relation est définie par l’annotation « @ORM\ManyToOne(targetEntity=User::class, inversedBy= »sent ») ». Elle indique que plusieurs messages peuvent être liés à un même expéditeur (utilisateur) et que cet attribut est inversé par le champ « sent » de l’entité « User » afin de pouvoir récupérer les messages que l’utilisateur a envoyé.
- « recipient » : un lien vers l’utilisateur qui reçoit le message. De même un attribut receive est créé dans user afin d’aussi récupérer les messages qu’un utilisateur a envoyé facilement.
- « title » : le titre du message.
La liaison avec l’entité « User » est essentielle pour plusieurs raisons. Tout d’abord, elle permet d’associer chaque message à un utilisateur spécifique, tant pour l’expéditeur que pour le destinataire. Cela facilite l’identification des utilisateurs impliqués dans la communication et simplifie la gestion des messages;
de plus, la liaison avec l’entité « User » permet d’utiliser les fonctionnalités fournies par cette entité, telles que l’accès aux informations utilisateur; permettant de voir ce que l’utilisateur à publié comme voyage ou le rôle qu’il possède par exemple.
Gestion des messages reçus
La messagerie de l’application de covoiturage offre aux utilisateurs la possibilité de recevoir et de gérer leurs messages. Le contrôleur « MessagesController » contient des actions spécifiques pour la gestion des messages reçus, voici les différentes actions qui gèrent la messagerie.
- La fonction « received » est responsable de l’affichage de la boîte de réception de l’utilisateur connecté. Lorsque cette fonction est utilisée alors, nous renvoyons l’utilisateur à un template qui affichera tout ses messages reçus et mettent en gras ceux qui n’ont pas été encore lu, ceci ce faits par le biais de variable de l’utilisateur comme « receive ». Les utilisateurs pourront alors visualiser le message ce qui renverra à l’action « read ».
- La fonction « read » est utilisée pour lire un message spécifique. Elle permet de voir son contenu ainsi que le titre, l’expéditeur et la date d’envoi. L’utilisateur peut accéder à cette fonction en cliquant sur le titre d’un message dans la boîte de réception pour que ceci soit mit en évidence, le message est alors surligné en bleu afin d’indiquer un lien. Lorsque la fonction « read » est utilisée en cliquant sur le lien alors le message devient lu, son statut est donc mis à jour dans la base de données.
- La fonction « delete » permet à l’utilisateur de supprimer un message de sa boîte de réception. Lorsque cette fonction est utilisée, le message correspondant est supprimé de la base de données et l’utilisateur est redirigé vers sa boîte de réception mise à jour. Mais pour qu’il fasse ceci, une vérification est effectuée si l’utilisateur est bien l’auteur ou le destinataire.
Formulaire et messages envoyés
La messagerie permet également aux utilisateurs d’envoyer des messages aux autres membres. Cette fonctionnalité est gérée par le formulaire et la fonction « send » qui traite ce formulaire.
Fonction « send » permet à l’utilisateur de composer et d’envoyer un nouveau message. Lorsque l’utilisateur accède à cette action, un nouveau formulaire est créé à partir de la classe « MessagesType » et la fonction traitera ce formulaire ci. Le formulaire contient des champs tels que le titre du message, le contenu et le destinataire, qui est sélectionné parmi les utilisateurs enregistrés. Lorsque le formulaire est soumis et validé, le message est enregistré dans la base de données avec l’utilisateur connecté en tant qu’expéditeur. Ensuite, l’utilisateur est redirigé vers la page principale de la messagerie avec un message flash indiquant que le message a été envoyé avec succès.
L’avantage des formulaires en symfony, comme dans le formulaire « MessageType » permettent de collecter les informations nécessaires auprès des utilisateurs (par exemple comme ici le contenu, le titre, et le destinataire). Les formulaires offrent des fonctionnalités intégrées pour valider les données saisies, telles que la vérification des formats, les contraintes de longueur, les valeurs obligatoires, etc. Cela garantit que les données soumises sont cohérentes et conformes aux attentes.
Menu
La messagerie possède un menu unique qui permet de naviguer avec cohérence. Sur toutes les pages, deux boutons seront affichés : « Envoyer un message » afin que l’utilisateur puisse se rendre facilement sur le formulaire d’envoi, et « Mes dossiers » qui permet d’afficher un menu sur la droite pour naviguer entre les différentes pages, notamment la boîte de réception, les éléments envoyés et l’accueil de la messagerie. Ce menu permet également de montrer sur quelle page nous nous situons. Ceci est réalisé avec Bootstrap.
Sur les différents menus, le nombre de messages reçus, envoyés et les messages non lus (différenciés en gras) seront également affichés. Dans la navbar, une enveloppe sera affichée pour le menu « Messagerie ». Elle deviendra bleue en cas de messages non lus et affichera le nombre correspondant au message non lu.