https://github.com/yann-github/oc-lespetitsplats
OC - P7 - Les Petits Plats - Site de recettes de cuisine
https://github.com/yann-github/oc-lespetitsplats
algorithm benchmark flowchart javascript oop
Last synced: 3 months ago
JSON representation
OC - P7 - Les Petits Plats - Site de recettes de cuisine
- Host: GitHub
- URL: https://github.com/yann-github/oc-lespetitsplats
- Owner: Yann-GitHub
- Created: 2022-07-22T06:13:59.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2022-10-11T07:54:06.000Z (over 2 years ago)
- Last Synced: 2025-02-13T20:41:40.628Z (5 months ago)
- Topics: algorithm, benchmark, flowchart, javascript, oop
- Language: JavaScript
- Homepage:
- Size: 11.7 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Les Petits Plats - Site web de recettes de cuisine
> OpenClassrooms - "Développeur d'application - JavaScript React".
> Développez un algorithme de recherche en JavaScript.
## Objectifs
Après avoir édité des livres de cuisine pendant plusieurs années, l’entreprise 'Les Petits Plats' a décidé de se lancer dans un nouveau projet : réaliser son propre site de recettes de cuisine à l’instar de Marmiton ou 750g.
L’équipe a déterminé que l’un des éléments pouvant faire la différence avec la concurrence était la fluidité du moteur de recherche. Il faudra donc porter une attention particulière sur les performances de ce dernier, pour obtenir une recherche rapide voire instantanée !
Le moteur de recherche permettra de filtrer les recettes en saisissant un ou plusieurs mots dans l'input de recherche, et/ou en sélectionnant des tags (ingrédients, appareils et ustensiles).## Livrables
**Prototype**
- Réalisation du [prototype](https://yann-github.github.io/OC-LesPetitsPlats/) du site en respectant la maquette [FIGMA](https://www.figma.com/file/xqeE1ZKlHUWi2Efo8r73NK).
- Implémenter les fonctions de recherche (input text & tags) en se référant au document de '[description du cas d’utilisation de recherche](./docs/description_utilisation_recherche.pdf)'.**Documents et synthèse**
- Réaliser 2 implémentations de l'algorithme de recherche sur 2 branches Git distinctes afin de les analyser. Ces deux implémentations doivent se focaliser uniquement sur le champ de recherche principal.
- Réaliser un Flowchart/Algorigramme afin de décrire l'enchaînement des étapes de l'algorithme [Doc](./docs/Flowchart_algo_recherche.pdf).
- Tester et analyser les performances des 2 algorithmes de recherche via l'outil [Jsbench.ch](https://jsben.ch/) et déterminer le plus efficace.
- Réaliser une fiche d’investigation de fonctionnalité qui regroupera le Flowchart, les éléments de benchmarking et une synthèse exposant le choix d'un algorithme en fonction de ces performances [Doc](./docs/fiche_investigation_fonctionnalit%C3%A9.pdf).## Contraintes Techniques
- Vanilla JavaScript
- Approche Desktop First
- Principe de 'Separation of Concerns'
- Pas de librairie additionnelle
- Utilisation du framework CSS Bootstrap (optionnel)## Compétences évaluées
- La programmation orientée objet en JavaScript ([schéma de classes](./docs/schema_classes.png))
- Les bases de l'algorithmique
- Elaboration d'un Flowchart/algorigramme ([draw.io](https://app.diagrams.net/))
- Utilisation d'outils de benchmark de performance JS ([Jsben.ch](https://jsben.ch/))
- Comparer deux approches algorithmiques et réaliser un document de synthèse.
- Gestion dynamique de données
- Les différentes méthodes de l'objet ARRAY (filter(), map(), reduce()...)
- Git branching