Skip to content

BernardoMG/cookbook

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status

CookBook App 🍲

How to build and run the app

  1. Run docker-compose build backend frontend
  2. Run docker-compose up backend frontend
  3. Access localhost:3000

How to run application tests

  1. Run docker-compose run test-backend. (only backend tests.)
  2. Run docker-compose run test-frontend. (only frontend tests.)
Note: I've also setup Travis CI for this repository. You can check its badge on top of this page ✅🚀.

Nov-24-2020 11-34-14

Tech Decisions

Backend

I choose to use Sinatra because its a very lightweight framework. Ideal for these simple functional requirements. If they were a little more complex, I'd choose Ruby on Rails 6 in API mode because I've much more experience with it.

For testing purposes, I've installed Rspec which is the most popular testing framework for Ruby and I use it on a daily basis.

Note: Since the provided gist doesn't have public URLs for recipe images, I tried to use several gems to fetch images using Goggle API but it seems that its deprecated so I didn't found any working gem. That's why these images are static on the client-side.

Frontend

I choose React to develop the client-side. Although I've already a couple of months of experience, it was the first time that I took benefit from the Hooks. It's cool! 🤘🏼. I used Material UI just to easily add some nice UI modules and for testing I've installed several tools such as Enzime and testing-library/react.

Usually, I also set Codacy to perform static code analysis, detect code style errors and calculate test coverage for both backend and frontend code.