Loading repository data…
Loading repository data…
Simcornelis / repository
Projet final LINFO1212 : création d'un site web NodeJS
Deuxième partie du projet sur la création d'un site web. A l'aide de HTML, CSS, JavaScript, NodeJS, MongoDB et WebSocket, nous créons un jeu multijoueur sur naviteur et mobile.
Notre application est un jeu multijoueur pour occuper ses soirées en groupe (une fois le confinement terminé). Il propose des parties pour se regrouper, jouer aux jeux créés sur le site et regroupés dans les playlists des utilisateurs.
npm run start lance le serveur avec nodemon (qui redémarre automatiquement dès qu'un changement est fait au fichiers).npm run-script mongod pour lancer la base de données dans un terminal (en ouvrir un autre pour exécuter d'autres commandes).npm run-script initdb nettoye et initialise la base de données avec des examples sous format JSON dans /utils.npm run-script keys génère une paire de clés cert.key et son certificat csr.key. Par facilité, les clés sont déjà inclues.npm run-script env copie le fichier .env.example en un .env qui peut être modifiée avec les paramêtres que l'utilisateur décide.Je recommande de tout faire depuis Visual Studio Code qui est un outil idéal pour le développement web. Le terminal s'ouvre avec le raccourci CTRL+ù. VSC intègre un outil Source Control pour gérer git donc plus besoin de taper git clone, git status, git add, git commit, git pull, git push, etc. ! Je recommande également d'installer les extensions suivantes :
.editorconfig.npm install qui lance env, initdb et start.Les fois d'après il suffit de faire :
npm startAttention : utiliser npm run-script initdb remet la base de données à zéro. Si le but n'est pas de supprimer tous les utilisateurs et reports crées, c'est une commande à éviter !
Pour clone le répertoire la première fois soit :
git clone https://github.com/Simcornelis/ProjetFinal-P2-NodeJS.git
Ou bien dans VSC, dans le 3e onglet à gauche "Source Control" (CTRL+SHIFT+G), on peut "Clone Repository" en étant identifié avec GitHub. Et ensuite, soit en recherchant le répertoire, soit en collant l'url.
Il faut avoir installé NodeJS pour la suite ! Pour s'assurer qu'il est bien installé on peut taper node -v dans le terminal et ça devrait afficher la version de NodeJS.
Le projet installe les packages NPM nécessaires avec la commande npm install lorsqu'on est dans le dossier du projet. Cela devrait installer : dotenv, express, express-session,hogan, https, mongodb, multer, sharp et socket.io. Ainsi que nodemon utile lors du développement pour redémarrer le serveur dès qu'on fait un changement et prettier ainsi que son extension pour fichiers .XML pour formater le code automatiquement.
Afin de lancer le serveur NodeJS, nous utilisons le package nodemon qui permet de relancer le serveur dès qu'il y a un changement dans le code. Un script a été ajouté pour pouvoir faire npm start et que le serveur se lance (il exécute la commande nodemon start.js ou bien npx nodemon start.js si nodemon n'est pas installé en -g).
Maintenant que le serveur tourne, tous les console.log() du JavaScript serveur seront envoyés dans ce terminal. Il n'est pas possible de taper des commandes alors que le serveur tourne. Cela doit se faire dans un autre terminal.
Soit CTRL+C deux fois, soit CTRL+C suivi de Y (yes en Anglais) et ENTER.
Avec source control (3e onglet sur la gauche dans VSC, ou avec CTRL+SHIFT+G) on appuie sur les + pour ajouter des fichiers au commit. Ensuite on donne un message dans le cadre au dessus des fichiers et on commit avec CTRL+ENTER. Maintenant il ne reste plus qu'à push les commits avec le menu (•••) puis "push". C'est là que se situent les autres options intéressantes comme "pull" si jamais des changements ont étés faits depuis le dernier pull.
Pour une lisibilité optimale du code, ainsi qu'une cohérence entre les versions de codes, on utilise un guide de style. On a choisi le guide de Felix Geisendörfer qui est le Node style guide. Il y propose un fichier .editorconfig qui fonctionne par défaut avec Prettier. Nous avons cependant décidé de l'ajuster à nos propres préférences qui suivent.
const autant que possible. Seules les constantes globales sont en majuscules.const playlist = { game: "I like that cut g.", info: "Slap." };
partyRouter.get("/game", (req, res, next) => {
if ("Steak" === 🥩) console.log("Hmmm");
});