Vous trouverez ci-joint le rapport de rattrapage où les extensions ajoutées sur ce site web sont également ajoutées dans le rapport avec une mention "NEW".
- Résumé
- Préparation de la machine host
- Initialisation du dossier et lancement de la base de donnée
- Installation des modules
- Préset de la base de données [optionnel]
- Préset
- Utilisateurs
- News
- Forum
- Lancement du serveur
- Pages du sites
- Fonctionnalitées
Ce projet a été initié dans le cadre du cours LINFO1212 de l'UCLouvain.
Il a pour but de prouver les connaissances d'un groupe de 3 élèves sur les
technologies de base du web tel que la triade html css et JavaScript et
leur module propre tels que nodeJs Bootstrap et MongoDB.
Nous avons donc décidé d'implémenter un site dédié à la communauté d'un jeu vidéo
du moment: AmongUs
Pour ce projet veillez donc a bien avoir installer NodeJs et MongoDB sur votre machine. Si vous ne pouvez pas executer les commande npm veillez à ce que celui-ci soit correctement installer sur votre machine aussi
Nous utilisons beaucoup de modules NodeJs, veillez donc a les avoirs correctement installé avant de lancer le serveur. Ces modules sont:
- express
- express-session
- body-parser
- mongodb
- ejs
- multer
- http
- https
- path
- fs
- bcrypt
- crypto
- nodemailer
- socket.io
- langs
- country-state-picker
Une fois nodeJs et mongoDB installer sur votre machine vous pourrez passez à cette partie:
Si une des commandes cité ne fonctionne pas veuillez vérifier votre installation nodeJS et mongoDB.
Une fois ce dossier téléchargé accéder à un terminal / shell / powerShell / bash
afin d'accéder à ce dossier en tapant la commande
cd path/to/this/dir/appsinf_groupeQ_final/
puis taper la commande
npm init
celle-ci a initialisé votre dossier pour accueillir et lancer les différents
modules utilisé par nodeJS.
vous aller ensuite créer un dossier afin de faire tourner mongodb
(ce dossier contiendra après commande beaucoup de fichiers veuillez
donc à ne pas lancer cette commande dans n'importe quel dossier).
touch mongodir && cd mongodir //création du dossier
mongod --dbpath . //lancement de la db
Ceci fait garder ce terminal ouvert et ouvrez en un autre pour le restant du setup car dans celui-ci tourne maintenant les 'listener' de mongodb dont nous aurons besoin afin de communqiuer avec la base de donnée.\
Les modules peuvent être installer par une simple commande npm\
npm install <module-name>
par exemple :
npm install express-session
Veuillez installer tous les modules requis avant d'essayer de lancer le serveur, celui-ci pourrait ne pas correctement tourné, voir ne pas se lancer du tout, si tous les modules ne lui sont pas fournis!
Les présets ne sont pas obligatoire mais sachez que sans un utilisateur administrateur vous ne pourrez pas accéder à la plupart des fonctionnalités du sites web comme ajouter un sujet dans le forum, et comme les post sont lier à un sujet s'il n'y a pas de sujet disponible les utilisateurs lambda ne pourront rien poster.
Ensuite seul les administrateurs sont autorisé à ajouter des 'news' sur la page d'accueil depuis
une page similaire à celle du post sur le forum, donc s'il n'y a pas d'aministrateurs aucune news
(hors présets) ne pourra être ajouter.
Vous pouvez aussi après avoir inscrit un utilisateurs modifier manuellement les valeurs suivantes
afin que celui-ci accède à toutes les fonctionnalités du site web.
Un utilisateurs à peine inscrit, qui n'a pas confirmer son inscription via le lien reçu par email ressemble à ceci dans la base de données:\
{
"activated" : false,
"master" : false,
"admin" : false,
"mail" : "YOUR MAIL @ SFTP . EXT",
"pseudo" : "YOUR PSEUDO",
"password" : "YOUR PASSWORD HASH",
"uniqKey" : "YOUR UNIQ KEY HASH",
"picture" : null,
"birthday" : null,
"publicKey" : "YOUR PUBLIC SSH KEY",
"privateKey" : "YOUR PRIVATE SSH KEY",
"favoriteMap" : null,
"favoriteColor" : null,
"country" : null,
"language" : null,
"friends" : [],
"friendRequests": [],
"friendReceived": [],
"notifications": []
}
Vous devrez setup les trois premiers attributs sur true comme dans l'exemple suivant:
{
"activated" : true,
"master" : true,
"admin" : true,
"mail" : "YOUR MAIL @ SFTP . EXT",
"pseudo" : "YOUR PSEUDO",
"password" : "YOUR PASSWORD HASH",
"uniqKey" : "YOUR UNIQ KEY HASH",
"picture" : null,
"birthday" : null,
"publicKey" : "YOUR PUBLIC SSH KEY",
"privateKey" : "YOUR PRIVATE SSH KEY",
"favoriteMap" : null,
"favoriteColor" : null,
"country" : null,
"language" : null,
"friends" : [],
"friendRequests": [],
"friendReceived": [],
"notifications": []
}
Vous pouvez le faire en lançant un terminal mongo depuis n'importe quel terminal de votre machine
Une fois ce terminal standart ouvert tapé:
mongo
et le shell mongo s'ouvrira vous permettant de communquer avec la database.
Vous pourrez alors taper:
use amagus
afin d'utiliser la base de données liée à notre site internet.
ensuite taper la commande suivante en remplaçant <pseudo> par le pseudo de votre compte.
db.forum.updateOne({pseudo: <pseudo>}, {$set:{activated: true, admin: true, master: true}})
Les présets ont pour but de remplir le site (partie news et forum) et d'obtenir des utilisateurs presets au plus haut
d'administration (master) le seul moyen d'obtenir ce grade est en passant par la base de données manuellement.
Nous ne pouvons donc pas vous assurez de l'accès à toutes les fonctionnalitées si vous n'utilisez pas de compte préset.
En réalité une seule fonctionnalitée est indisponible au administrateur par rapport au master : la possibilité de
derank un admin au simple rôle d'utilisateur.
Quatre utilisateurs sont disponible :
Pseudo | mot de passe | rôle |
---|---|---|
RainMaker | rootpass | master |
GGisOnline | rootpass | master |
Czacio | rootpass | admin |
RainMaker17 | rootpass | activated |
Commande d'import :
mongoimport -d amagus -c users path/to/appsinf_groupeQ_final/server/database/users.json --legacy
Quelques news afin d'illustrer le fonctionnement et la disposition de celles-ci sont disponible dans le fichier news.json
.
Commande d'import :
mongoimport -d amagus -c news path/to/appsinf_groupeQ_final/server/database/news.json --legacy
Quelques sujets de base pour le forum et uqelques post afin de remplir
Commande d'import :
mongoimport -d amagus -c forum path/to/appsinf_groupeQ_final/server/database/forum.json --legacy
Si vous avez correctement suivit les étapes jusqu'ici il vous suffira d'aller à la racine du projet:
cd path/to/dir/appsinf_groupeQ_final/
et de lancer cette commande afin de lancer le server
node server/server.js
Si tout se lance correctement la console affichera
------CONNECTED------
Home + News + lien jeu
Forum + page de post + page pour lire un post en particulier.
Page utilisateur personelle (sert aux autres users: distinction selon la requete) + edition d'information.
Page about-us donnant le contexte et les noms des membres de l'équipe + lien gitHub + widget discord.
- Lire les news
- Lire le forum
- Lire les news
- Lire le forum
- Poster sur le forum
- Répondre à un post sur le forum
- Ajouter un ami
- Envoyer un message à un ami
- Possibilités des user connectés et activés +
- Ajout de news sur la page principle
- Ajout de sujet dans le forum
- Promouvoir un administrateur TODO
- Possibilités des administrateurs +
- Démote un administrateur TODO