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.