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


Another walkthrough discussing the implementation of the 'Add Book' feature