
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.