This Book Library app was designed & built by Jasmine Elkins and Kristen Cadacio for our Phase 4 project at Flatiron School.
PROJECT REQUIREMENTS:
- Use a Rails API backend with a React frontend.
- Have at least three models on the backend, that include:
- at least one one-to-many relationship
- at least one many-to-many relationship
- full CRUD actions for at least one resource
- Have at least three different client-side routes using React Router. Be sure to include a nav bar or other UI element that allows users to navigate between routes.
- Implement authentication/authorization, including password protection. A user should be able to log in to the site with a secure password and stay logged in via user ID in the session hash.
TO-DO LIST:
- DONE user's book collections also have info modals
- DONE user can update profile
- DONE deleting a book automatically re-renders the book list
- DONE left/right buttons to scroll collections
- DONE clicking a book opens modal with more info
- DONE icon changes depending on shelf: plus(add to list), bookmark(want to), heart(read), book(currently)
- DONE user can remove a book from their shelf
- DONE if no image links, don't show book on home page
- DONE user can rate/review a book
- DONE user can add book to different shelves: Currently Reading, Want To Read, Have Read
- DONE show user's books by "shelf"
- DONE back end CRUD methods (done for users & books, need for shelves)
- DONE book 'collections' scroll horizontally, like Netflix
- DONE render books on page and make them pretty :)
- DONE React Router
- DONE authorization, add users
- DONE don't show password as it's being entered
- DONE password validations
- DONE only login OR signup is showing
- DONE user can add books to shelf
- DONE only show Home page if user logged in
- DONE 'passwords don't match' better error message
- DONE add a Profile & link to NavBar
- DONE add name to sign up for & welcome message
- DONE format form inputs & labels
LITTLE DETAILS TO FIX....
- clear book search results in between page loads?
- home page: signup/login. clicking signup pops up form - modal maybe ?
STRETCH GOALS:
- user can submit an actual review & rating
- user can import goodreads data
- recommendations based on genre
- user can add custom-named shelves
- pagination - show 10 results from API, click next to see 10 more
- import top bestseller's list & generate collection on home page
LEARNINGS:
CREDITS: React Toastify: https://www.npmjs.com/package/react-toastify
Importing CSV to React tutorial: https://dev.to/pankod/how-to-import-csv-file-with-react-4pj2