Le projet consiste à construire un application de recettes de cuisine qui définis la quantité d'ingrédients pour une portion désirée.
Le but de cet outil est d'éviter les erreurs de dosages dans les recettes , l'oubli d'une recette ou encore d'entasser des livres de recettes dans un coin de la cuisine.
Vous n'avez plus d'excuse pour demander la fameuse recette de hachis parmentier de canard à Mamie !
Charte graphique
| Color | Hex |
| ----------------- | ------------------------------------------------------------------ |
| Primaire | `#008b8b` |
| Secondaire | `#FFFFFF` |
| Tertiaire | `#000000` |
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
/FoodLove
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 Foodlove
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
● Voir les infos d'un utilisateur
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}
GET : api/user/{id de l'utilisateur voulu}
Ci-dessous, la liste des requêtes concernant les recettes de cuisine.
● Ajouter une recette
● Modifier une recette
● Supprimer une recette
● Ajouter un ingrédient
● Modifier un ingrédient
● Supprimer un ingrédient
● Ajouter une étape
● Modifier une étape
● Supprimer une étape
● Voir les infos d'une recette précise
● Voir toutes les recettes
POST : api/recette
PUT : api/recette/{id de la recette voulu}
DELETE : api/recette/{id de la recette voulu}
PATCH : api/recette/ajout-ingredient/{id de la recette voulu}
PATCH : api/recette/modification-ingredient/{id de la recette voulu}
PATCH : api/recette/suppression-ingredient/{id de la recette voulu}
PATCH : api/recette/ajout-etape/{id de la recette voulu}
PATCH : api/recette/modification-etape/{id de la recette voulu}
PATCH : api/recette/suppression-etape/{id de la recette voulu}
GET : api/recette/{id de la recette voulu}
GET : api/recette
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 la connexion doit se faire à partir de quatres éléments : le nom et prénom de l'utilisateur ainsi que son adresse mail et un mot de passe. Rien de plus à prévoir pour le moment.
● Un utilisateur a la possibilité de se déconnecter.
● La session de l’utilisateur persiste pendant qu’il est connecté.
● Les données de connexion sont sécurisées.
● La page d’accueil liste les recettes créés par l'utilisateur. ● Les recettes sont listés de façon antéchronologique (du plus récent au plus ancien). ● L'utilisateur peut rechercher une recette précise à l'aide de la barre de recherche ou des filtres proposés.
● Un utilisateur peut créer une recette.
● Une recette peut contenir du texte et une image.
● Un utilisateur peut voir ou modifier ses informations. ● Il est possible sur cette page de supprimer son compte après confirmation.
● Le header ,après connexion, permet d'accéder à la liste, à notre profil ou encore à une page de création de recette. ● La déconnexion de l'utilisateur se fait en cliquant sur le lien dans le header.
● Cette page permet de détailler une recette précise, sélectionnée dans la liste.
● Un utilisateur peut aussi modifier et supprimer ses recettes.
● Un utilisateur peut se rendre sur une page détaillant les ingrédients ou sur une autre détaillant les étapes.
● Ces pages permettent de détailler chacune les ingrédients ou étapes de la recette sélectionnée dans la liste.
● Un utilisateur peut aussi ajouter, modifier et supprimer ses ingrédients ou étapes.
Dans le but de pouvoir faire de la modération si nécessaire, il faudra créer un utilisateur“administrateur” ; celui-ci aura les droits de modification / suppression sur toutes les recettes de l'application.