Booked is a book app that allows users to search for books, add books to book lists, share book lists, and chat in online book clubs.
The backend repo is deployed via Heroku, and the frontend repo (here) is deployed via Netlify. Visit the site at https://booked.netlify.app.
You can watch a live demo of the app here or visit the site at https://booked.netlify.app.
- React
- Redux
- Websockets via ActionCable
- Google Books API
- Custom infinite scroll
- React Router
- Semantic UI
- Custom CSS
- JWT Authentication
- Ruby on Rails
- PostgreSQL database
- ActiveModel Serializer
The GitHub repo for the frontend can be found here.
Booked allows users to:
- Create an account
- Securely log in to an existing account
- Create a new book list
- Share a book list with another user
- Delete a book list
- Search for books by title, author, or genre - makes live calls to the Google Books API
- Automatically load next 40 books from search when user reaches the bottom of the page
- Click the back to top button to take the user back to the top of the search page
- Add a book to one of their book lists
- Remove a book from one of their book lists
- Create a new book club
- Chat with other users in real-time in a book club
- Delete a book club
- Securely log out
- Delete their account
Visit the site at https://booked.netlify.app.
To test on your own machine:
- While logged into a Google account, go to https://console.developers.google.com/apis/library/books.googleapis.com and click Enable
- Follow the subsequent steps to generate an API key
- Clone this repository
- Switch to Ruby version
2.6.1
- Make sure
postgreSQL
is running on your computer, if not, download and run it - Create an
.env
file in the top level directory - In the
.env
file, create a constant variableJWT_SECRET_KEY
and set it equal to whatever you want your secret key to be. Ex:
JWT_SECRET_KEY=test123
- In the
.env
file, create a constant variableGOOGLE_BOOKS_API_KEY
and set it equal to your API key - In terminal run
bundle install
rails db:create
rails db:migrate
rails s
- Follow instructions here to run the frontend
- You will need to update
config/initializers/cors.rb
to accept origin requests from wherever your frontend will be hosted