Book Progress
Book Progress helps you track your reading progress and watch what others are reading.
Source • Demo (login: countolaf, password: demo) • Back
The Problem
Reading is my favorite hobby. Just like every book lover, I try to read a couple of hours every day. Book Progress is the web manifestation of my offline progress tracking habits.
The Technology
Book Progress is based on a REST API implemented in Sinatra, and a single page app implemented in React. It is an experiment in writing an ideal semi-complicated application while exploring a wide variety of things.
Backend
- Clean JSON REST API using Sinatra (Ruby) and PostgreSQL. Specifically keeping in mind response codes and communicating errors.
 - Testing JSON APIs using RSpec, specifically in a TDD manner.
 
Frontend
- Explore more of React, including the Portal API.
 - Explore correct modelling of promise chaining, async await, and exception handling among dependent promises.
 - More data down, state lifting, state sharing scenarios across components.
 - Explore more ES6 and ES7 features, for example Class Properties.
 - BEM CSS
 
Tooling
- Linting via HoundCI: Rubocop, ESLint and SCSS-Lint.
 - Continuous Integration and deployment via Azure Pipelines and Heroku.
 - SimpleCov to measure test coverage.
 - Monitoring via NewRelic.