Table of Contents
- 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.
Other libraries and tools
- untangle (xml parsing)
- Jinja2 templating
- werkzeug SimpleCache
MVP User Stories
|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
|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|
|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.
server.py - Core of the flask app, lists all routes
model.py - database structure and db creation.
parser.py - handles most Goodreads requests and in cases where xml is returned, parses response.
helpers.py - small helper functions and most Overdrive API request functions found here.
- install python
- (real instructions coming soon!)