Skip to content

Manuel développeur

Saodus edited this page Dec 18, 2024 · 4 revisions

Manuel Développeur

Jaton David, Naddeo Eddy, Villarejo Maxime

Ce manuel développeur contient toutes les informations nécessaires pour le développement et la maintenance de T-Caps. Il présente notamment les aspects techniques liés à l’implémentation. Pour des informations sur la procédure pour démarrer le développement sur ce projet, un fichier README.md est également disponible.


Table des matières

  1. Framework
  2. Dépendances
  3. Implémentation
  4. Arborescence
  5. Structure de l’application

Framework

  • Laravel : v11.26.0
  • TailwindCSS : v3.1.0

Dépendances

Toutes les bibliothèques et dépendances utilisées sont listées dans les fichiers package.json et composer.json.


Implémentation

Gestion des utilisateurs

Pour la gestion des utilisateurs, Laravel propose le package Laravel Breeze, qui permet d’implémenter facilement une gestion utilisateur de base. Ce package a été utilisé pour créer une implémentation simple basée sur le modèle MVC.

Base de données

Voici le schéma de la base de données :

Schéma base de données


Arborescence

  • Contrôleurs : app/Http
  • Modèles : app/models
  • Vues : resources/views
  • Routes : routes
  • Médias uploader dans l'application par les utilisateurs : public/source/media
  • Photo de profile : public/storage/avatar

Structure de l’application

Contrôleurs

Auth

Les contrôleurs relatifs à l’authentification des utilisateurs se trouvent dans le répertoire app/Http/Auth. Ils sont générés automatiquement par Laravel Breeze lors de l’initialisation du projet. Aucune modification n’a été apportée.

ChatController

Ce contrôleur gère la logique liée aux discussions entre utilisateurs. Il implémente les différentes méthodes CRUD pour les chats, les messages et les capsules temporelles.

FriendshipsController

Ce contrôleur gère la logique des relations d’amitié entre utilisateurs. Il implémente les méthodes CRUD pour gérer les amis ainsi que des fonctionnalités supplémentaires, comme le blocage d’un utilisateur.

ProfileController

Ce contrôleur, généré automatiquement par Laravel Breeze, implémente les fonctionnalités de lecture, mise à jour et suppression d’un profil. Une modification a été apportée pour permettre à un utilisateur de choisir une photo de profil.


Modèles

  • Chat : Représente l’interface entre la table chats de la base de données et l’application.
  • Friendship : Représente l’interface entre la table friendships de la base de données et l’application.
  • Message : Représente l’interface entre la table messages de la base de données et l’application.
  • User : Représente l’interface entre la table users de la base de données et l’application.
  • UserChat : Représente l’interface entre la table user_chat de la base de données et l’application.

Vues

Auth

Le répertoire Auth contient toutes les vues générées par Laravel Breeze. Ces fichiers n’ont pas été modifiés.

Components

Ce répertoire contient tous les composants utilisés dans l’application.

  • Les composants à la racine sont ceux générés par Laravel Breeze.
  • Le sous-répertoire friendships contient l’UI pour la barre de navigation sur la page des amis.
  • Le sous-répertoire messaging contient l’UI pour les messages et les discussions.

Friendships

Les vues du répertoire friendships implémentent l’UI pour les fonctionnalités liées aux amis :

  • Ajouter, retirer ou bloquer un ami.
  • Visualiser les demandes d’amis en attente et la liste des amis.

Layout

Les vues du répertoire Layout implémentent le design général du site.

Profile

Les vues du répertoire Profile implémentent l’UI pour la gestion des profils utilisateurs. Ces fichiers sont générés automatiquement par Laravel Breeze, avec peu de modifications.

Dashboard

La vue Dashboard implémente l’UI de la partie principale de l’application. Elle comprend :

  • La liste des discussions.
  • L’affichage des messages d’une discussion.
  • L’envoi et la réception de messages en temps réel.

Routes

Auth

Ces routes concernent l’authentification des utilisateurs et sont générées automatiquement par Laravel Breeze.

Console

Cette route est générée automatiquement par Laravel.

Web

Les routes du fichier web.php concernent les utilisateurs authentifiés.