Septième projet du parcours Développeur web d'OpenClassroom.
Le projet consiste à construire un réseau social interne pour les employés de Groupomania.
Le but de cet outil est de faciliter les interactions entre collègues.
Charte graphique
| Color | Hex |
| ----------------- | ------------------------------------------------------------------ |
| Primaire | `#FD2D01` |
| Secondaire | `#FFD7D7` |
| Tertiaire | `#4E5166` |
Police d'écriture : Lato
Backend
Le backend a été crée avec Node.js, Express.js et MongoDB comme base de données.
- Dans le terminal de VSCODE, situez-vous dans le dossier
/backend
. - Démarrer
npm install
pour installer toutes les dependences du backend. - Dans le dossier
/backend/config
, créer un fichier.env
. - Dans le fichier `.env, veuillez renseigner les informations suivantes :
PORT=5000 CLIENT_URL=http://localhost:4200 DB_USER_PASS={lien url de connexion obtenu après étape de connexion de base de donnée} TOKEN_SECRET={random_string_to_encode_tokens}
- Démarrer
npm start
pour avoir accès au serveur de développement. L'application va se recharger automatiquement si vous modifiez un fichier source.
- Se rendre sur
https://www.mongodb.com/atlas
. - Se créer un compte et retenir les informations d'authentification.
- Créer la database
groupomania
et un cluster en cliquant surcreate
et en suivant les indications. - Se rendre dans
Database Access
sur la gauche de l'écran et cliquer surAdd new database user
. - Indiquer les informations d'authentification et le type de droits autorisés (
readWriteAnyDatabase@admin
). - Se rendre dans
Network Access
sur la gauche de l'écran et cliquer surAdd IP adress
. - Selectionner
0.0.0.0/0 (includes your current IP address)
. - Se rendre dans
Database
sur la gauche de l'écran et cliquer surConnect
. - Choisir
Connect your application
puis le driver (Node.js
) et sa version (4.1 or later
). - Copier l'url de connexion de la base de donnée et l'indiquer comme
DB_USER_PASS
dans le fichier/backend/config/.env
.
Frontend
Le frontend a été crée avec Angular.
-
Dans le dossier
/frontend/groupomania
démarreznpm install
pour installer toutes les dépendances du frontend. -
Démarrer
ng serve -o
pour avoir accès au serveur de développement. L'application va se recharger automatiquement si vous modifiez un fichier source.
Pour tester les droits d'ADMIN, l'utilisateur doit se connecter avec sa base de donnée et choisir la table des utilisateurs.
Puis il devra choisir ou créer un nouvel utilisateur qui prendra le role d'Administrateur.
Il faudra alors modifier l'utilisateur en lui ajoutant un role ADMIN.
role : "ADMIN"
Requêtes de l'application Groupomania
Ci-dessous, la liste des requêtes concernant les utilisateurs.
● Inscription d'un utilisateur
● Connexion d'un utilisateur
● Déconnexion d'un utilisateur
● Suppression d'un utilisateur
● Modification d'un utilisateur
● Suivre un utilisateur
● Ne plus suivre un utilisateur
● Voir les infos d'un utilisateur
● Voir tous les utilisateurs
POST : api/user/register
POST : api/user/login
GET : api/user/logout
DELETE : api/user/{id de l'utilisateur voulu}
PUT : api/user/{id de l'utilisateur voulu}
PATCH : api/user/follow/{id de l'utilisateur connecté}
PATCH : api/user/unfollow/{id de l'utilisateur connecté}
GET : api/user/{id de l'utilisateur voulu}
GET : api/user
Ci-dessous, la liste des requêtes concernant les publications.
● Ajouter une publication
● Modifier une publication
● Supprimer une publication
● Aimer une publication
● Ne plus aimer une publication
● Ajouter un commentaire
● Modifier un commentaire
● Supprimer un commentaire
● Voir les infos d'une publication précise
● Voir toutes les publications
POST : api/post
PUT : api/post/{id de la publication voulu}
DELETE : api/post/{id de la publication voulu}
PATCH : api/post/like-post/{id de la publication voulu}
PATCH : api/post/unlike-post/{id de la publication voulu}
PATCH : api/post/comment-post/{id de la publication voulu}
PATCH : api/post/edit-comment-post/{id de la publication voulu}
PATCH : api/post/delete-comment-post/{id de la publication voulu}
GET : api/post/{id de la publication voulu}
GET : api/post
Spécifications
Une page de connexion permettant à l’utilisateur de se connecter, ou bien de créer un compte s’il n’en possède pas.Ici il faut demander le minimum d’informations, la connexion doit se faire à partir de deux éléments : le mail de l’employé, et un mot de passe. Rien de plus à prévoir pour le moment.
● Un utilisateur doit avoir la possibilité de se déconnecter.
● La session de l’utilisateur persiste pendant qu’il est connecté.
● Les données de connexion doivent être sécurisées.
La page d’accueil doit lister les posts créés par les différents utilisateurs. On voudra que les posts soient listés de façon antéchronologique (du plus récent au plus ancien).
● Un utilisateur doit pouvoir créer un post.
● Un post doit pouvoir contenir du texte et une image.
● Un utilisateur doit aussi pouvoir modifier et supprimer ses posts.
Un utilisateur doit pouvoir liker un post, une seule fois pour chaque post.
Dans le but de pouvoir faire de la modération, il existe un utilisateur “administrateur” ; celui-ci a les droits de modification / suppression sur tous les posts du réseau social.