Configuration du projet
Merci de lire cette page complétement, vous y trouverez des informations importantes.
Vous travaillerez en équipe et partagerez vos développements/créations via un outil de travail collaboratif : git et
le serveur gitlab de l’université.
Nous vous avons préparé le travail, l’installation de Laravel
est déjà faite.
Un membre de votre groupe a été autorisé à créer une divergence du projet
initiale : marathon 25.
Les outils
Vous devez proposer une application web qui utilise le cadriciel Laravel qui a été étudié en cours. La réalisation du front utilisera l’outil Vite qui est intégré à Laravel. Quelques informations sur Vite sont disponibles ici.
Vous veillerez à appliquer les bonnes pratiques de développement et en particulier les règles de l’architecture MVC proposées dans Laravel.
Vous planifierez la réalisation des tâches de votre projet en utilisant des tickets (voir ici) et des jalons sur votre dépôt GitLab.
Chaque fonctionnalité devra être réalisée sur une branche dédiée, et fusionnée sur la branche dev partagée par
l’ensemble de l’équipe puis sur la branche main une fois terminée et
validée.
Chaque commit devra être associé à la tâche à laquelle il participe. Le dernier commit devra fermer le
ticket (close #n avec
$n$ le numéro du ticket).
Si un bug est découvert après fermeture du ticket, il faut ouvrir un nouveau ticket qui corrigera le bug.
Un commit sur la branche principale (main) provoquera le déploiement de votre projet sur la machine
marathon.
Si vous souhaitez visualiser votre travail en local (pour l’équipe), il est préférable de créer une branche dev qui
permettra à l’équipe de visualiser le travail déjà réalisé avant de le déployer sur la machine marathon.
Organisation du travail
Vous allez travailler en équipe, il est important d’organiser votre équipe dès le début et notamment indiquer le rôle de chacun vis à vis de l’équipe.
Pensez notamment à définir le rôle de validateur qui sera la personne qui validera la qualité du code produit par
un membre de l’équipe et qui l’ajoutera sur la branche principale (main) ou la branche dev (partage pour l’équipe)
de votre projet.
Vous pouvez choisir de faire systématiquement des demandes de fusion (merge request) pour chaque modification
importante ou non. Cela permet de faire relire le code par un autre membre de l’équipe avant de l’intégrer dans la
branche principale (ou dev) et évite les incohérences si c’est toujours la même personne qui intègre les
modifications.
Ce rôle doit être effectué avec diplomatie en indiquant des critiques constructives (Il n’est jamais agréable, même si le résultat n’est pas correct, d’entendre des critiques négatives).
Ce validateur sera le membre de l’équipe qui a créé la demande de divergence (fork) du projet dans sa forme initiale. Ce validateur sera celui qui a été désigné par l’équipe ou de façon aléatoire dans le cours SAÉ S3.A.01.
Tâches du validateur :
-
Faire une demande de divergence du projet marathon 25 (1 seul membre du groupe peut le faire).
-
Ajouter au projet obtenu les droits d’accès aux membres de l’équipe.
- Le droit Reporter obligera les membres du groupe de demander la modification du projet par “Merge Request”
- Le droit Developper autorisera les membres de faire les modifications sans vérification par le validateur.
C’est à vous de déterminer le meilleur fonctionnement.
-
Ajouter les droits reporter aux enseignants informatique (M.Audemard, M. Dubois, M. Hemery, M. Hsu, M. Tabary, M. Wallon)
-
Configuration de l’intégration continue
Pour que le déploiement se déroule bien, il faut configurer deux variables dans votre projet sur gitlab.
-
Une variable
NAMEqui doit contenir votre nom de login (but25_groupeXXavecXXvotre numéro de groupe) sur la machine marathon qui vous a été délivré en début de marathon. -
Une variable
SSH_PRIVATE_KEYqui doit contenir votre clé privée qui a été calculée pour vous et qui se trouve dans le fichier~/.ssh/id_rsasur la machine marathon.Pour récupérer sa valeur et configurer la connexion ssh sans avoir besoin de saisir un mot de passe par la suite, il faut donc se connecter sur la machine marathon (
172.31.146.106) avec la commandessh but25_groupeXX@172.31.146.106Utiliser le mot de passe qui vous a été fourni pour vous connecter puis :
- Tapez la commande suivante pour autoriser la connexion à distance :
saisir votre mot de passe et valider.
ssh-copy-id but25_groupeXX@172.31.146.106 - Visualiser la clé privée avec la commande
cat ~/.ssh/id_rsapar exemple.
- Tapez la commande suivante pour autoriser la connexion à distance :
Pour modifier ces 2 variables, il faut
-
afficher dans votre navigateur, la page de votre projet sur gitlab.
-
Puis sélectionner Paramètres ou Setting et l’entrée intégration et livraisons continues ou CI/CD.
-
Créez la variable
NAME(votre identifiant de login)AttentionSélectionnez l'option "Visible" dans la catégorie "Visibility, protection et masquage" pour que la variable soit accessible dans les _pipelines_ de votre projet. -
Créez la variable
SSH_PRIVATE_KEY(la valeur est le contenu du fichier~/.ssh/id_rsasur la machine marathon)AttentionSélectionnez l'option "Visible" dans la catégorie "Visibility, protection et masquage" pour que la variable soit accessible dans les _pipelines_ de votre projet.
Chaque modification de la branche
mainde votre projet entraine le déploiement vers la machine marathon à l’adressehttp://172.31.146.106/~but25_groupeXX, avecXXvotre numéro de groupe. -
-
Si vous avez choisi la validation du code par une personne à l’aide de merge request, le propriétaire du projet ( validateur) devra accepter la demande pour modifier le projet.
Commandes sur la machine marathon
Après avoir effectué le premier déploiement (git push origin main), vous devez initialiser l’environnement de votre site sur le serveur marathon.
Les commandes qui sont indiquées dans la suite ne doivent être exécutées qu’une seule fois.
La connexion avec la base de données est un exemple de l’adaptation du contexte de votre application au serveur qui va
la mettre à disposition des utilisateurs.
Pour cela vous devez créer le fichier .env.
Les commandes à taper lors du premier déploiement :
Dans un premier temps, il faut vous connecter sur la machine marathon avec la commande :
ssh but25_groupeXX@172.31.146.106
Ensuite se déplacer dans le répertoire www :
cd www
Et exécuter les commandes qui suivent :
# liaison avec le SGBD et la base de données utilisée
cp .env.example .env
#########################################################
#
# Dans le fichier .env, il faut modifier en particulier les variables suivantes
#
# A MODIFIER
#
# DB_CONNECTION=mysql
# DB_HOST=127.0.0.1
# DB_PORT=3306
# DB_DATABASE=but25_groupeXX
# DB_USERNAME=but25_groupeXX
# DB_PASSWORD=password_but25_groupeXX
#
# A MODIFIER
#
# APP_URL=http://localhost:8000
#
#########################################################
Après la copie du fichier .env.example dans le fichier .env, il faut de faire la suite :
- Donner les bonnes valeurs pour la connexion à la base de données associée avec votre projet sur la machine marathon ( Les informations vous ont été distribuées avec votre identifiant et votre mot de passe),
- Il faut modifier la valeur de la variable
APP_URL, elle doit indiquer l’adresse de votre application sur la machine marathon, par exemple, vous développez le projet pour le groupebut25_groupeTest, la valeur de la variableAPP_URLdoit être :APP_URL=http://172.31.146.106/~but25_groupeTest
# Génération de la clé initiale
php artisan key:generate
# génération des tables dans votre base de données
php artisan migrate
# ou pour ré-initialiser
php artisan migrate:fresh
# Initialisation des données de départ
cp -r resources/images storage/app/public
# Création du lien physique en storage/app/public et public/storage
php artisan storage:link
# Ajout de données aléatoire dans les tables de la base de données
php artisan db:seed
À partir de là, votre site doit être visible avec l’url : http://172.31.146.106/~but25_groupeXX avec XX votre numéro
de groupe.
Modifications
Toutes les modifications pushées sur la branche main du projet seront visibles sur le serveur du marathon et donc
sur http://172.31.146.106/~but25_groupeXX.
Bien entendu, lorsque qu’un membre de votre groupe valide ses modifications (push sur la branche main sur gitlab), les
autres membres de l’équipe devront intégrer ces modifications le plus rapidement possible dans lors projet local.
C’est pourquoi il est important de toujours travailler sur une branche particulière (fixbug-xx, ticket-xx) quand on
travaille sur un ticket.
Base de données
Un serveur mysql de base de données est à votre disposition sur la machine 172.31.146.106.
Vous disposez d’une base (LOGIN_GROUPE) pour le projet.
Les identifiants de connexion à ces bases vous ont été distribués.
Vous pouvez directement les utiliser même à partir de votre ordinateur personnel (attention de bien renseigner le
champ DB_HOST avec la valeur 172.31.146.106).
Un accès via phpmyadmin est disponible à
l’adresse : http://172.31.146.106/phpmyadmin.
-
L’accès à la machine marathon n’est possible qu’à partir d’une machine connectée sur le réseau de l’université ( filière ou wifi).
Cela signifie que la base de données de la machine marathon n’est pas accessible si vous utilisez le réseau internet à partir de votre connexion GSM.
-
La page Votre poste de développement vous donne les commandes pour configurer votre poste de travail pendant la phase de développement.