Skip to content
ReadMe dashboard with profile, book shelf, currently reading and yearly stats

ReadMe

FULL-STACK READING TRACKER • REACT, EXPRESS, MYSQL

ReadMe: a home for a reader's books

Role: Solo project: React interface, Express API, and MySQL data layer

Stack: React, Vite, Node.js, Express, MySQL, Google Books API

Readers often split their reading lists, progress notes, and book discoveries across different places. ReadMe brings those tasks into one app. I built the React interface, Express API, and MySQL-backed data layer for the complete reading flow.

The product flow

  • Discover: Search the Google Books catalogue and add a title to a personal library.
  • Track: Move books between Want to Read, Currently Reading, and Read; record page progress and favorites.
  • Reflect: Write and edit reviews, and see ratings and reviews attached to the same book.

Implementation decisions

I kept the interface and data access separate. React handles the reading experience, while Express routes manage accounts, books, and reviews. MySQL stores each user's library and progress; Google Books supplies discovery data rather than replacing the user's own records.

Protected routes validate authentication tokens, and passwords are hashed with bcrypt. This project gave me hands-on practice connecting a responsive frontend to an API, an external data source, and a relational database.

Current status

The source code and screenshots are available here. The original university-hosted demo is currently unavailable; restoring a live version will require a compatible database and new hosting.