Skip to content

The Shelf Life group project is an essential companion to the avid reader. Log the books you've read each year, and then express yourself by arranging them on your digital bookshelf. Made with React and graphQL.

Notifications You must be signed in to change notification settings

lkalliance/shelf-life

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Shelf Life License: MIT

Description

Shelf Life is a dedicated book diary with a creative twist: not only can a user keep track of the books they've read, but can arrange them on a set of virtual bookshelves in creative ways. Not only can they place books on any shelf (and on either side), but they can customize the look of the books, in terms of width, height, color, and style. It's exactly the kind of creative outlet that many book lovers crave!

You can view and use Shelf Life here.

Table of Contents

Installation Instructions

Shelf Life is a web app, and all it requires is a web browser to interact with it. Your web browser must have JavaScript turned on. To interact with any of the features of Shelf Life, you must sign up for a (currently free) account.

Usage Information

Using Shelf Life is simple. First of all, the user must have an account. Visit the site, and click the "Log in/Sign up" link in the upper right. A modal will appear, including a link toggle at the bottom that enables the user to switch between logging in and creating an account. Provide a unique email address and username and a password to create the account.

Upon logging in, the user has two pages with which to interact with their library: a Bookcase page, and a Book List page. For a new account, both their bookcase and book list will be empty. Add a book to your library by clicking the "Add Book" link in the navbar. It will spawn a modal that includes a search field. Search for a title, author, or other keyword to generate a list of results. Click on any result to expose a form to assign various properties to the book: height, thickness, color, style, your personal rating, any note or review to attach, and an audiobook flag. As they adjust the appearance of the book for the bookshelf, the user will get a live preview of what the volume will look like. Click to save the book, and it will appear both on the Book List page, and also in an "unshelved" area below the shelves on the Bookcase page.

Each shelf of the bookcase has two "stacks": one on the left, and one on the right. The user can rearrange their books to their heart's content by dragging and dropping on their bookcase. Shelve books from unshelved, rearrange books along a shelf, move them from one side of a shelf to the other, or move them from shelf to shelf.

If a user attempts to move a book onto a shelf that doesn't have enough room to accommodate it, the book will snap back to its original position. The user can drag a book off of the bookcase entirely by dragging the book into the unshelved area. Or they can double-click a book in the bookcase and it will jump immediately into unshelved. For a quick way to empty a shelf entirely, the user may double-click any empty region of the shelf

The user can place a book already in the bookcase back into the unshelved area by dragging it there, or by double-clicking it. They can also clear an entire shelf, placing all of its books into the unshelved area, by double-clicking any open area of the shelf (including the small area between the top of a book and the shelf above).

To create more room in the bookcase, the user can click the "Add a shelf" button located below the unshelved area. Or, to remove empty shelves, they can click "Delete empty shelves" For layout reasons, there will always be an even number of shelves: "Add a shelf" adds two of them, which on a wide screen go side-by-side and a narrower screen one above the other.

The user can single-click any book in either the bookcase or the unshelved area to launch a modal with some information on the book. From the book list, that modal shows the book summary; from the bookcase it shows the user's rating and comment. If the book is unshelved, the modal also displays a link to "Give book away", that is, remove it entirely from the library.

Using these tools, a user can populate their library with whatever books they please, in the styles they want, and arranged on their bookcase (or not) as they see fit.

In addition to the Bookcase, there is also a card-based Book List, which gives the user a different view of their book diary. Each card has an image of the book's cover, its author(s), and the user's rating and comment.

Application Features

  • Add and remove any book from the library
  • Optionally give each book a rating and a comment
  • Style each book individually to customize its appearance in the user's bookcase
  • Place the books in any order on any shelf of their bookcase by clicking and dragging
  • Rearrange books as you please by clicking and dragging from one location to another
  • View more information on the book either on the Book List page, or by clicking on the book in the Bookcase
  • Clear a shelf with a single double-click to place all its books at once into "unshelved"
  • Add shelves with a button click, and quicly remove empty shelves with another one

Credits

Shelf Life was created by Safia Ali, Ashton Balder, Justin Brueske, Micheala Holthus and Lee Klusky. We built Shelf Life on technologies like React, Node, Express, Tailwind, Recoil, React Beautiful DnD and more. To the contributors to these open-source projects, we give our great thanks.

This application would also not exist if it were not for the help, guidance and wisdom of the instructional staff of the University of Minnesota Full Stack Coding Bootcamp: Jack Linhard, Daniel Vitelli, Dillon Riecke and Konner Hartman.

And of course we owe gratitude to content providers of all types at places like Stack Overflow, the Mozilla Developer Network and W3Schools.

Software License

©2023, Lee Klusky, Justin Brueske, Safia Ali, Ashton Balder and Micheala Holthus

This software is covered by a MIT License.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Questions?

Contact me at lkbootcamp@yahoo.com, or visit my GitHub profile.

About

The Shelf Life group project is an essential companion to the avid reader. Log the books you've read each year, and then express yourself by arranging them on your digital bookshelf. Made with React and graphQL.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published