GithubHelp home page GithubHelp logo

anthonybianay / top-chef Goto Github PK

View Code? Open in Web Editor NEW

This project forked from 92bondstreet/top-chef

0.0 1.0 0.0 2.9 MB

Find the best deal for a French starred restaurant

Home Page: https://92bondstreet.github.io/top-chef

CSS 2.47% JavaScript 97.53%

top-chef's Introduction

WARNING

don't forget to use :

npm install

to run the server side

TOP CHEF

Eat well and cheaper than usually

Table of Contents generated with DocToc

Introduction

Each year, Michelin publish the Michelin Red Guide which awards Michelin stars to some restaurants.

The criteria for the stars are:

  1. Michelin star "A very good restaurant in its category" (Une très bonne table dans sa catégorie)
  2. Michelin stars: "Excellent cooking, worth a detour" (Table excellente, mérite un détour)
  3. Michelin stars: "Exceptional cuisine, worth a special journey" (Une des meilleures tables, vaut le voyage)

Ther average price for a starred restaurant could start from 50€ up to more than 400€.

Thanks the LaFourchette, you can book a restaurant at the best price and get exclusive offers and discount up to 50%.

michelin

lafourchette

Objective - Workshop in 1 sentence

Get the current deal for a France located Michelin starred restaurants.

How to do that?

By creating a link between restaurant.michelin.fr, lafourchette.com and the end-user.

Stack

Node.js + React + Material Design (mdl, bootstrap, foundation...) + ES6 [+ docker + redis ...]

Just tell me what to do

  1. Fork the project via github
  2. Clone your forked repository project https://github.com/YOUR_USERNAME/top-chef
cd /path/to/workspace
❯ git clone [email protected]:YOUR_USERNAME/top-chef.git
  1. Follow the steps
  2. commit your different modifications:
cd /path/to/workspace/top-chef
❯ git add -A && git commit -m "feat(restaurants): fetch list of starred restautants"

(why following a commit message convention?)

  1. Don't forget to push before the end of the workshop and before the end of the 2 dedicated sessions
❯ git push origin master

Note: if you catch an error about authentication, add your ssh to your github profile.

  1. If you need some helps on git commands, read git - the simple guide

Examples of steps to do

Investigation

Michelin Restaurant

  1. How it works https://restaurant.michelin.fr
  2. What are the given properties for a starred restaurant: name, adress, town, stars, chef... ?
  3. ...

Some things to do:

  1. Browse the website
  2. define the JSON schema for a restaurant
  3. ...

Example of Restaurant: https://restaurant.michelin.fr/2abl39j/le-chiberta-paris-08

Deals from LaFourchette

  1. How it works https://www.lafourchette.com
  2. What are the properties that we need to provide to lafourchette.com to get a deal ?
  3. How to identify a deal on the page ?
  4. ...

Some things to do:

  1. Browse the website
  2. Check how that you can get the deal: api etc.... (check network activity)
  3. define the properties required to get a deal
  4. define the JSON schema for a deal
  5. ...

Example of a deal: https://www.lafourchette.com/restaurant/le-chiberta-stephane-laruelle-guy-savoy/2828

The web application

Some things to do:

  1. How to create a link between the starred restaurant and lafourchette?

Server-side with Node.js

require('michelin')

Create a module called michelin that return the list of restaurant

const michelin = require('michelin');

console.log(michelin.get());

Some things to do:

  1. scrape list of France located starred restaurants
  2. store the list into JSON file, nosql database (like redis, mongodb...)
  3. create a node module that return the list

require('lafourchette')

Create a module called lafourchette that return the available deal for a given restaurant

const lafourchette = require('lafourchette');
...
const restaurant = {...};


console.log(lafourchette.getDeal(restaurant));

Some things to do:

  1. create the calls (api, http) to get the restaurant page
  2. get the deal (by scraping or decoding api response)
  3. return the deal

Client-side with React

MVP to do:

  1. List France located starred restaurant and their current deals

Next features:

  1. Add filters:
  • filtering by name
  • sorting by stars
  1. Bonus: Display on a map only the starred restaurants with an active deal

Notification (bonus)

Some things to do:

  1. Notify me (discord or slack) a new deal for any starred restaurant
  2. Monitor and notify a new deal for a given restaurant

Don't forget

Focus on codebase and UX/UI

Licence

Uncopyrighted

top-chef's People

Contributors

anthonybianay avatar 92bondstreet avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.