A fully-functioning book tracking website—my own LibraryThing, basically.
Latest commit 7177af7 Oct 12, 2018

README.md

booklist

A fully functioning book collection website hosted at http://mylibrary.io/

I made this as a way to learn and try out modern development tools I'm interested in, and also to track my own library. Progress is limited to whatever time I can find, which means parts of this may be incomplete at any given time. Currently you can create an account; scan in books, which are looked up via AWS; view, edit, filter, and tag your books with (hierarchical) subjects as desired; and most recently I've added a drag and drop UI to manage these hierarchical subjects. I've just started adding in some settings management, like enabling (if you want) public read-only access to your library, password reset, etc.

The books view looks something like this

main desktop table view

and there's a somewhat decent mobile view

mobile friendly view 1


I initially made this with the goal of creating iterations of the site with React, Angular, Aurelia, etc. So far I've felt no desire to leave React or stop iterating on the (single) React version. Nonetheless, it's designed so that all iterations will share the same data, data access, controllers, and AWS access code. Most controllers are sniffed out and wired with my easy-express-controllers , though that's slowly but surely being converted to GraphQL with my mongo-graphql-starter and micro-graphql-react projects. Data access is through Mongo, and all book info is looked up with my own AWS credentials, subject to an unfortunate one-request-per-second limit imposed by Amazon.

The current React iteration uses Redux, and is in the react-redux directory, with TypeScript recently added to help keep my reducers and selectors straight. My own, simple-react-bootstrap provides React bindings for the Bootstrap components Modal, NavBar and Tab. I've also added react-dropzone to support uploading book cover images (for when AWS doesn't have it for some reason), and drag and drop via react-dnd for the subjects screen. Lastly, the homepage has some very basic D3 visualizations of your library.

Future iterations may potentially look at ... whatever is thriving whenever the React version is done, if it ever is...