C'est un projet de développement d'une application mobile par l'organisme MONA , viser à découvrir, photographier et conllectionner de l'art public
J'ai rejoint l'équipe de développement du serveur MONA dans le cadre du cours projet IFT3150 hiver 2023
Ma première rencontre avec l'équipe MONA a commencé avec Lena, elle m'a raconté l'histoire et le développement de ce projet. Après cela, j'en ai appris davantage grâce à des vidéos sur YouTube et en téléchargeant l'application sur mon mobile. Dans une série d'actions de fouille, ouvrir la carte de l'application, localiser, trouver une œuvre d'art, prendre une photo, enregistrer et récupérer des médailles. C'est vraiment une app très très cool.
Ce qui est également cool, c'est que notre équipe est également très bien organisée. La communication de groupe via Element peut améliorer l'efficacité du travail. Le cadre de code complet et clair sur Github me permet de démarrer très rapidement le travail de développement.
Tout d'abord, ma tâche principale est de réajuster la structure du site des rapports. Par exemple, certains collègues mettent leurs rapports sur github. Ce que je dois faire, c'est les unifier sur la domaine picasso.iro.umontreal.ca . Je dois aussi améliorer l'organisation et la fonctionnalité d'interface de l'admin dans la future et à mesure.
Pour cette semaine, j'ai commencé à toucher les codes. Tout d'abord, j'ai créé cette page HTML pour enregistrer mes propres rapports hebdomaires. Et j'ai fais la réunion comme d'habitude, mais cette semaine, j'ai rencontré avec Lena, Simon et Kim. Un grand merci à eux pour me donner une présentation assez détaillés.
Voici une petite résumé et l'image ci-dessous(à compléter)
Avec l'aide de Lena et Simon, ma prochaine étape consistait à avoir un accès via protocole SSH au serveur de production MONA.(Voir le tutorial )
Ce lundi 22 Jan, j'ai rencontré avec Simon par Jitsi, merci à Simon encore une fois. Il a été très patient et méticuleux en m'aidant tout au long du processus d'installation.(à faire: ranger un tutorial pour ça)
Ensuite, je migrerai certains rapports discordants des années précédentes, ainsi que minimiserai et éviter d'utiliser des dépendances
J'ai installer un environnement de développement local à l'aide de Simon Janssen
Cliquez ici pour découvrir les détails pour Installation
Pour IDE, j'ai choisi PhpStorm, car les projets Laravel sont largement soutenus par les fonctionnalités PhpStorm telles quelles.
Cette semaine, on a réalisé un board Miro pour mieux illustrer la structure de notre côté serveur
En même temps, on veut transférer les données ouverts au local csv, ce qui besoins double stocker et documenter seulement sur la coté du serveur. Donc on a pris du temps pour gérer les documentation également.
Voici j'ai exploré admin, et documenté les bogues, fonctionnalités.
Tri
Détail
edit
Filtrer
modification
Cette semaine, j'ai rencontré beaucoup de questions sur le contrôle de version de Git. Tout d’abord, j’ai perdu la connexion à github.com/MaisonMONA. J’ai essayé de me reconnecter plusieurs fois, mais je n’arrive toujours pas, finalement, j'ai réussi en générant avec github personal access token.
Ensuite, j'ai reglé un problème avec le
git reset
à l'aide de Simon Janssen et
un article
de blogue J'ai appris beaucoup de choses sur le contrôle de
version de Git.
PlaceController
pour voir les détails
UserController
../users
, cela réduira considérablement la lisibilité et
l'efficacité d'utilisation de l'interface. Je
suggère donc de le placer dans
../users/{..}
, qui est l'interface après avoir cliqué sur le
bouton "Voir l'utilisateur en détail".
Méthode de modification: enleve Route dans web.php
Route::get('users/{user}', [UserController::class, 'show'] )->name('user.show');
ArtworkGrid
PlaceController
, les méthodes ne sont pas implémenter
Route::get('addTagPhoto', [TagPhotoController::class, 'show']);
Route::get('addTagDiscovery', [TagDiscoveryController::class, 'show']);
Route::put('form-store-preexisting-tag', [TagPhotoController::class, 'storePreexistingTag']);
Route::put('form-store-new-tag', [TagPhotoController::class, 'storeNewTag']);
Route::put('form-store-preexisting-tag-discovery', [TagDiscoveryController::class, 'storePreexistingTag']);
Route::put('form-store-new-tag-discovery', [TagDiscoveryController::class, 'storeNewTag']);
Je crois comprendre que bag s'applique à
identifier photo et discovery autre que les
catégories.
TagPhotoController
,
TagDiscoveryController
De plus, je pense que si nous avons vraiment
besoin de données telles que des balises, alors
nous ajouterons une colonne supplémentaire (en
plus du titre, de la note, du territoire, etc.)
au tableau pour l'afficher.
ArtistGrid
Route::get('heritages/create',
[HeritageController::class, 'create']);
AdjustmentController
et j'ai découvert qu'il ne s'agissait que d'un modèle de
contrôleur dans Laravel. Donc je suppose les
développeurs backend de l'époque voulaient laisser un
template vide pour développer d'autres modèles, tels que
index()
pour obtenir toutes les données du modèle « ajustement »
dans la base de données sont converties en JSON puis
transmises à la vue de
admin.adjustments.index
pour afficher les données dans la liste, mais
évidemment, nous n'avons pas de modèle « ajustement »
dans bd.
Restore
Perdu la connection logger
./vendor/bin/sail artisan migrate
laravel.test-1 | 2024-02-15 03:22:04,954 INFO spawned: 'php' with pid 15 selenium-1 | 03:22:05.093 INFO [LoggingOptions.configureLogEncoding] - Using the system default encoding selenium-1 | 03:22:05.114 INFO [OpenTelemetryTracer.createTracer] - Using OpenTelemetry for tracing selenium-1 | 03:22:05.816 INFO [NodeOptions.getSessionFactories] - Detected 8 available processors selenium-1 | 03:22:05.901 INFO [NodeOptions.report] - Adding chrome for {"browserName": "chrome","browserVersion": "120.0","goog:chromeOptions": {"binary": "\u002fusr\u002fbin\u002fgoogle-chrome"},"platformName": "linux","se:noVncPort": 7900,"se:vncEnabled": true} 1 times selenium-1 | 03:22:05.933 INFO [Node.] - Binding additional locator mechanisms: relative laravel.test-1 | 2024-02-15 03:22:05,957 INFO success: php entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) selenium-1 | 03:22:05.972 INFO [GridModel.setAvailability] - Switching Node 338f38f7-1df6-4736-8f13-4bc842c79722 (uri: http://172.20.0.2:4444) from DOWN to UP selenium-1 | 03:22:05.973 INFO [LocalDistributor.add] - Added node 338f38f7-1df6-4736-8f13-4bc842c79722 at http://172.20.0.2:4444. Health check every 120s laravel.test-1 | PHP Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /var/www/html/app/Console/Commands/RestoreDatabase.php on line 50 laravel.test-1 | PHP Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /var/www/html/app/Console/Commands/RestoreDatabase.php on line 50 laravel.test-1 | PHP Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /var/www/html/app/Console/Commands/RestoreDatabase.php on line 50 laravel.test-1 | PHP Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /var/www/html/app/Console/Commands/RestoreDatabase.php on line 53 laravel.test-1 | PHP Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /var/www/html/app/Console/Commands/RestoreDatabase.php on line 53 laravel.test-1 | PHP Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /var/www/html/app/Console/Commands/RestoreDatabase.php on line 74 laravel.test-1 | PHP Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /var/www/html/app/Console/Commands/RestoreDatabase.php on line 74 laravel.test-1 | PHP Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /var/www/html/app/Console/Commands/RestoreDatabase.php on line 75 laravel.test-1 | PHP Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /var/www/html/app/Console/Commands/RestoreDatabase.php on line 75 laravel.test-1 | PHP Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /var/www/html/app/Console/Commands/MySqlDump.php on line 45 laravel.test-1 | PHP Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /var/www/html/app/Console/Commands/MySqlDump.php on line 45 laravel.test-1 | PHP Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /var/www/html/app/Console/Commands/MySqlDump.php on line 45 selenium-1 | 03:22:06.154 INFO [Standalone.execute] - Started Selenium Standalone 4.16.1 (revision 9b4c83354e): http://172.20.0.2:4444 laravel.test-1 | Starting Laravel development server: http://0.0.0.0:80 laravel.test-1 | [Thu Feb 15 03:22:06 2024] PHP 8.3.2-1+ubuntu22.04.1+deb.sury.org+1 Development Server (http://0.0.0.0:80) started laravel.test-1 | [Thu Feb 15 03:22:10 2024] 192.168.65.1:17008 Accepted laravel.test-1 | [Thu Feb 15 03:22:11 2024] 192.168.65.1:17008 Closing laravel.test-1 | [Thu Feb 15 03:22:11 2024] 192.168.65.1:17009 Accepted laravel.test-1 | [Thu Feb 15 03:22:11 2024] 192.168.65.1:17010 Accepted laravel.test-1 | [Thu Feb 15 03:22:11 2024] 192.168.65.1:17009 Closing laravel.test-1 | [Thu Feb 15 03:22:11 2024] 192.168.65.1:17011 Accepted laravel.test-1 | [Thu Feb 15 03:22:11 2024] 192.168.65.1:17010 Closing laravel.test-1 | [Thu Feb 15 03:22:11 2024] 192.168.65.1:17011 [200]: GET /js/app.js laravel.test-1 | [Thu Feb 15 03:22:11 2024] 192.168.65.1:17012 Accepted laravel.test-1 | [Thu Feb 15 03:22:11 2024] 192.168.65.1:17012 [200]: GET /css/app.css laravel.test-1 | [Thu Feb 15 03:22:11 2024] 192.168.65.1:17012 Closing laravel.test-1 | [Thu Feb 15 03:22:11 2024] 192.168.65.1:17011 Closing laravel.test-1 | [Thu Feb 15 03:22:12 2024] 192.168.65.1:17013 Accepted laravel.test-1 | [Thu Feb 15 03:22:12 2024] 192.168.65.1:17013 [200]: GET /favicon.ico laravel.test-1 | [Thu Feb 15 03:22:12 2024] 192.168.65.1:17013 Closing laravel.test-1 | [Thu Feb 15 03:22:24 2024] 192.168.65.1:17014 Accepted laravel.test-1 | [Thu Feb 15 03:22:25 2024] 192.168.65.1:17014 Closing laravel.test-1 | [Thu Feb 15 03:22:25 2024] 192.168.65.1:17015 Accepted laravel.test-1 | [Thu Feb 15 03:22:25 2024] 192.168.65.1:17015 Closing laravel.test-1 | [Thu Feb 15 03:22:25 2024] 192.168.65.1:17016 Accepted laravel.test-1 | [Thu Feb 15 03:22:25 2024] 192.168.65.1:17016 [200]: GET /js/app.js laravel.test-1 | [Thu Feb 15 03:22:25 2024] 192.168.65.1:17017 Accepted laravel.test-1 | [Thu Feb 15 03:22:25 2024] 192.168.65.1:17017 [200]: GET /css/app.css laravel.test-1 | [Thu Feb 15 03:22:25 2024] 192.168.65.1:17017 Closing laravel.test-1 | [Thu Feb 15 03:22:25 2024] 192.168.65.1:17016 Closing laravel.test-1 | [Thu Feb 15 03:22:25 2024] 192.168.65.1:17018 Accepted laravel.test-1 | [Thu Feb 15 03:22:25 2024] 192.168.65.1:17018 [200]: GET /favicon.ico laravel.test-1 | [Thu Feb 15 03:22:25 2024] 192.168.65.1:17018 Closing meilisearch-1 | [2024-02-15T03:22:33Z INFO actix_web::middleware::logger] 127.0.0.1 "GET /health HTTP/1.1" 200 22 "-" "Wget" 0.000791 meilisearch-1 | [2024-02-15T03:23:03Z INFO actix_web::middleware::logger] 127.0.0.1 "GET /health HTTP/1.1" 200 22 "-" "Wget" 0.000217 meilisearch-1 | [2024-02-15T03:23:33Z INFO actix_web::middleware::logger] 127.0.0.1 "GET /health HTTP/1.1" 200 22 "-" "Wget" 0.000256 laravel.test-1 | [Thu Feb 15 03:23:35 2024] 192.168.65.1:17049 Accepted laravel.test-1 | [Thu Feb 15 03:23:35 2024] 192.168.65.1:17049 Closing laravel.test-1 | [Thu Feb 15 03:23:35 2024] 192.168.65.1:17050 Accepted laravel.test-1 | [Thu Feb 15 03:23:35 2024] 192.168.65.1:17050 [200]: GET /js/app.js laravel.test-1 | [Thu Feb 15 03:23:35 2024] 192.168.65.1:17051 Accepted laravel.test-1 | [Thu Feb 15 03:23:35 2024] 192.168.65.1:17051 [200]: GET /css/app.css laravel.test-1 | [Thu Feb 15 03:23:35 2024] 192.168.65.1:17051 Closing laravel.test-1 | [Thu Feb 15 03:23:35 2024] 192.168.65.1:17050 Closing laravel.test-1 | [Thu Feb 15 03:23:36 2024] 192.168.65.1:17052 Accepted laravel.test-1 | [Thu Feb 15 03:23:36 2024] 192.168.65.1:17052 [200]: GET /favicon.ico laravel.test-1 | [Thu Feb 15 03:23:36 2024] 192.168.65.1:17052 Closing laravel.test-1 | [Thu Feb 15 03:23:46 2024] 192.168.65.1:17053 Accepted laravel.test-1 | [Thu Feb 15 03:23:46 2024] 192.168.65.1:17053 Closing laravel.test-1 | [Thu Feb 15 03:23:46 2024] 192.168.65.1:17054 Accepted laravel.test-1 | [Thu Feb 15 03:23:46 2024] 192.168.65.1:17054 Closing laravel.test-1 | [Thu Feb 15 03:23:46 2024] 192.168.65.1:17055 Accepted laravel.test-1 | [Thu Feb 15 03:23:46 2024] 192.168.65.1:17055 [200]: GET /js/app.js laravel.test-1 | [Thu Feb 15 03:23:46 2024] 192.168.65.1:17056 Accepted laravel.test-1 | [Thu Feb 15 03:23:46 2024] 192.168.65.1:17056 [200]: GET /css/app.css laravel.test-1 | [Thu Feb 15 03:23:46 2024] 192.168.65.1:17056 Closing laravel.test-1 | [Thu Feb 15 03:23:46 2024] 192.168.65.1:17055 Closing laravel.test-1 | [Thu Feb 15 03:23:46 2024] 192.168.65.1:17057 Accepted laravel.test-1 | [Thu Feb 15 03:23:46 2024] 192.168.65.1:17057 [200]: GET /favicon.ico laravel.test-1 | [Thu Feb 15 03:23:46 2024] 192.168.65.1:17057 Closing meilisearch-1 | [2024-02-15T03:24:03Z INFO actix_web::middleware::logger] 127.0.0.1 "GET /health HTTP/1.1" 200 22 "-" "Wget" 0.000524
Je n'ai pas fait une grande chose cette semaine, car j'ai
deux examens à reviser. Cette semaine, j'ai donc réécrit la
sémantique ambiguë du rapport de la semaine dernière, j'ai
continué à essayer de corriger le bug et j'ai essayé de
pouvoir utiliser des fichiers statiques et log in
l'interface admin dans localhost en utilisant
./vendor/bin/sail up --build
,
Générer une paire de clés ssh privé/publique avec la commande (ici ed25519 est id_mona)
ssh-keygen -t ed25519
example:
miliya.ai@miliyaaidemac ~ % ssh-keygen -t ed25519
Generating public/private ed25519 key pair.
Ensuite, il va demander de stocker dans quel dossier et en mettant
~/.ssh/id_mona
example:
Enter file in which to save the key (/Users/miliya.ai/.ssh/id_ed25519):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/miliya.ai/.ssh/id_ed25519
Your public key has been saved in /Users/miliya.ai/.ssh/id_ed25519.pub
Pas très important après...
Finalement, Envoyer le clé publique,le contenu du fichier (~/.ssh/id_mona.pub) et demander à Raouf (bencherr bencherr@iro.umontreal.ca) avec l'appui de Lena
Host arcade
Hostname arcade.iro.umontreal.ca
User {ton-username-du-DIRO} (https://support.iro.umontreal.ca/mdp/)
Host picasso
HostName picasso
ProxyJump arcade
User mona
IdentityFile ~/.ssh/id_mona
ex:
Host arcade
HostName arcade.iro.umontreal.ca
User aimiliya
Host picasso
Hostname picasso
ProxyJump arcade
User mona
IdentityFile ~/.ssh/ed25519
Tout d’abord, afin de mieux utiliser Laravel, le framework de développement web PHP, nous utiliserons Laravel Sail , une interface légère en ligne de commande qui interagit avec l’environnement de développement Docker.
Bien sûr, vérifier si on a bien installé Docker en utilisant
docker-compose --version
Ça l'aire bon si ça affiche comme:Docker Compose version v2.17.3
Téléchargez et exécutez maintenant la commande du script via curl et exécutez le script avec l'interpréteur Bash.
curl -s " https://laravel.build/mona-server?with=mariadb,redis,meilisearch,selenium" | bash
Clonner le dépôt githubgit clone git@github.com:MaisonMONA/mona-server.git
Tourner au ton compt github maintnant, dans le voletSSH and GPG keys, ajouter ton SSH keys
Installez le package laravel/sail dans le projet Laravel Sail et marquez-le comme package de dépendances pour l'environnement de développement.
./vendor/bin/sail composer require laravel/sail --dev
Utilisez Composer pour installer le package laravel/sanctum dans le projet Laravel Sail afin d'utiliser l'authentification Sanctum dans le projet
./vendor/bin/sail composer require laravel/sanctum
Ça devrait bon maintenant, Let's gogogogo
1.
./vendor/bin/sail up
: Cette commande est utilisée pour démarrer l'environnement
Sail. Il démarrera tous les services définis dans le projet
(tels que les serveurs Web, les bases de données, etc.) et
les laissera s'exécuter dans des conteneurs Docker.
Habituellement, l'exécution de cette commande affichera la
sortie du journal du service dans la fenêtre actuelle du
terminal, ce qui facilitera la visualisation de l'état
d'exécution du service.
2.
./vendor/bin/sail up -d
: Cette commande est similaire à la commande précédente,
mais utilise l'option `-d`, qui signifie « détaché » (mode
détaché). Cela entraînera le démarrage de l'environnement
Sail en arrière-plan et la sortie du journal du service ne
sera pas affichée dans la fenêtre du terminal actuel. Cela
maintient la fenêtre du terminal disponible et non occupée
par la sortie du journal du service.
3.
./vendor/bin/sail down
: Cette commande est utilisée pour arrêter l'environnement
Sail. L'exécution de cette commande arrêtera tous les
services définis dans le projet et supprimera les conteneurs
Docker associés. Cela peut être utilisé pour libérer des
ressources lorsque le service n'est plus nécessaire pour
s'exécuter, ou pour nettoyer lorsque l'environnement doit
être redémarré.