A python/Flask web app for book lovers. Learn more about the developer here or see Readerboard in action.
- Project Summary and Screenshots
- Tech Stack
- MVP User Stories
- 2.0 and next steps
- Testing Coverage/Instructions
- Project Structure
- Setup Instructions
Readerboard is a web app that gives readers a central location for tracking their reading habits and finding new books. The search feature utilizes the Goodreads API, allowing the reader to view details about a book, add it to their shelves, and write a Goodreads book review. Every book search also shows a list of friends on Goodreads who have read the book. The reader can see the book's availability at the library via the Overdrive API. Each reader can view charts containing data about their reading habits and progress on custom reading challenges. Readerboard retrieves user data from Goodreads via OAuth and relies on Chart.js to create meaningful, personalized content.
A full list of project dependencies can be found in requirements.txt.
- Python
- Flask
- PostgreSQL
- Javascript
- HTML/CSS
- Bootstrap
- jQuery
- Goodreads
- Overdrive
- SQLAlchemy
- untangle (xml parsing)
- Chart.js
- rauth
- Jinja2 templating
- werkzeug SimpleCache
MVP Goals | Status |
---|---|
User can login and access GR account information via OAuth. | Completed ✅ |
User can see the books on their shelves. | Completed ✅ |
User can add a book to their shelves, and changes will be reflected in their goodreads account. | Completed ✅ |
User can search for a book, and see if GR friends have marked it as read. | Completed ✅ |
User can search for a book and see it's availability as an ebook at the local library. | Completed ✅ |
User can see their reading challenge progress. | Completed ✅ |
User can add an additional reading challenge to their account. | Completed ✅ |
User can submit a book review. | Completed ✅ |
User can see data about their reading habits and history. | In progress 🚧 |
Goal Description | Status |
---|---|
Finish Deployment | On Hold |
Keep working on weird bugs within the current features | In progress 🚧 |
Get testing coverage up to 80% | In progress 🚧 |
Optimize the data retrieval and data update processes with celery/celerybeat | On Hold |
Goal Description | Status |
---|---|
Incorporate the Overdrive Circulation API so users can check out a book or place a copy on hold from within the app | On Hold |
Add a "watch list" feature that alerts the user when a book added to their list drops below a specific price threshold (Will use Twilio and Amazon Product APIs for this) | On Hold |
convert the reading history page to React | On Hold |
Add more data vis with Chart.js | On Hold |
Unit and integration tests written with the python unittest
library. Testing is still in progress.
- install python
- ...
- profit
- (real instructions coming soon!)