Skip to content

ErikOstlund/mybookshelf

Repository files navigation

System Requirements

All of these must be available in the project PATH. To verify things are set up properly, run this:

node -v  or  node --version
npm -v  or  npm --version

Setup

npm install

Running the app

npm start

Go to: http://localhost:3000/

Running the tests

npm test

This will start Jest in watch mode.

App Data Model

  • User

    • id: string
    • username: string
  • List Item

    • id: string
    • bookId: string
    • ownerId: string
    • rating: number (-1 is no rating, otherwise it's 1-5)
    • notes: string
    • startDate: number (Date.now())
    • finishDate: number (Date.now())

For convenience, our friendly backend engineers also return a book object on each list item which is the book it's associated to. Thanks backend folks!

/me wishes we could use GraphQL

If "database" gets out of whack, you can purge it via:

window.__bookshelf.purgeUsers()
window.__bookshelf.purgeListItems()
  • Book

    • id: string
    • title: string
    • author: string
    • coverImageUrl: string
    • pageCount: number
    • publisher: string
    • synopsis: string

References

This project was inspired by Kent C. Dodds