An open API service indexing awesome lists of open source software.

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

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.

![Website Mockup](./assets/logoXL.png)

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