In this lab you will create a web app where the user will be able to see a list of beers or check one randomly. For the exercise, we will work with the PunkAPI database, through it's NPM Package. The package has some methods that retrieve beers with some info about them and fits perfect for our example.
- Fork this repo
- Then clone this repo.
- Upon completion, run the following commands
$ git add .
$ git commit -m "done"
$ git push origin master
- Create Pull Request so your TAs can check up your work.
Our starter code brings the basic configuration to run our server. The / route is set to render the index file, but first, we need to create our layout.
Inside the views folder, create a layout.hbs file. Our layout should look like this:
You will find the colors and fonts on the css file. Remember to add the {{{ body }}} and link the css file to your main layout.
The navbar includes three elements:
- Home. ----> Should navigate to
/. - Beers. ----> Should navigate to
/beers. - Random Beer. ----> Should navigate to
/random-beers.
On the index.hbs file you should include the beer image you have on the /public/images, with two buttons: Check the Beers! and Check a Random Beer. Both should navigate to the same routes we have on our nav.
Create a /beers route inside the app.js file. You will also need a beers.hbs file to render every time we call this route.
Inside the /beers route, call to the getBeers() method of our PunkAPI package. The package will return you an array of 25 beers, and you should pass that array to the beers.hbs view.
punkAPI.getBeers()
.then(beers => {
})
.catch(error => {
console.log(error)
})Remember you should call the render method after getting the beers from our package. That means, inside the then.
On the beers.hbs view, loop over the beers array using the {{#each beers}} {{/each}} block helper.
At the end of this iteratiom, your website should be like this:
Finally, let's create our /random-beer route. Inside our route you should call the getRandom() method of the PunkAPI package and after receiving the info, render the randomBeer.hbs file and pass the data of the beer.
punkAPI.getRandom()
.then(beers => {
})
.catch(error => {
console.log(error)
})On the randomBeer.hbs you should print the random beer you get. You should display an image, name, description, tagline, food pairing and brewer tips. It should look like the following:
Happy Coding! ❤️




