Skip to content

Helenepagniez/Groupomania

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Groupomania, application réseau social interne à une entreprise

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

Charte graphique de l'application

 | 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.

Installation

  • 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.

Base de donnée

  • 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 sur create et en suivant les indications.
  • Se rendre dans Database Access sur la gauche de l'écran et cliquer sur Add 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 sur Add 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 sur Connect.
  • 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.

Installation

  • Dans le dossier /frontend/groupomania démarrez npm 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.

Droits Admin

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

Requêtes concernant les utilisateurs

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

Inscription d'un utilisateur

POST  : api/user/register

Connexion d'un utilisateur

POST  : api/user/login

Déconnexion d'un utilisateur

GET  : api/user/logout

Suppression d'un utilisateur

DELETE  : api/user/{id de l'utilisateur voulu}

Modification d'un utilisateur

PUT  : api/user/{id de l'utilisateur voulu}

Suivre un utilisateur

PATCH  : api/user/follow/{id de l'utilisateur connecté}

Ne plus suivre un utilisateur

PATCH  : api/user/unfollow/{id de l'utilisateur connecté}

Voir les infos d'un utilisateur

GET  : api/user/{id de l'utilisateur voulu}

Voir tous les utilisateurs

GET  : api/user

Requêtes concernant les publications

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

Ajouter une publication

POST  : api/post

Modifier une publication

PUT  : api/post/{id de la publication voulu}

Supprimer une publication

DELETE  : api/post/{id de la publication voulu}

Aimer une publication

PATCH  : api/post/like-post/{id de la publication voulu}

Ne plus aimer une publication

PATCH  : api/post/unlike-post/{id de la publication voulu}

Ajouter un commentaire

PATCH  : api/post/comment-post/{id de la publication voulu}

Modifier un commentaire

PATCH  : api/post/edit-comment-post/{id de la publication voulu}

Supprimer un commentaire

PATCH  : api/post/delete-comment-post/{id de la publication voulu}

Voir les infos d'une publication précise

GET  : api/post/{id de la publication voulu}

Voir toutes les publications

GET  : api/post
Spécifications

Spécifications fonctionnelles attendues

Page de connexion

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.

Détails de la fonctionnalité de connexion

● 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.

Page d’accueil

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).

Création d’un post

● 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.

Système de like

Un utilisateur doit pouvoir liker un post, une seule fois pour chaque post.

Rôle administrateur

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.