This repository contains a Ruby on Rails API as one of two compatible backends for the following project: React-Redux Book Library
This is a full-stack project where you can add, delete, and edit books from the library as well as keep track of your current progress through your books.
The frontend of this project was built using:
- React as the frontend library + ReactStrap
- Redux for state control
And the backend was built using one of two compatible sets of technologies:
- Ruby on Rails as the backend server
- SQLite3 as the database
OR - An alternate compatible backend located here which uses:
- Express.js and Node.js as the backend server
- MongoDB (through MLab) as the database
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes using the Ruby on Rails API with SQLite3 database. You will also want to run the frontend client from this repository.
This project requires:
- Node.js
- Ruby 2.4.1
- Ruby on Rails 5.2.0
- Clone this repository
- cd into the folder
- Run
bundle install
to install the necessary gems - Run
rails db:migrate
- Run
rails s -p 5000
to start the backend server on Port 5000. Leave this terminal open.
If you open your browser to http://localhost:5000/books
you should see the database, initially consisting of an empty array []
.
- You must also then clone the frontend repository from here
- Open a separate terminal window/tab and cd into this folder and enter
npm run client-install
to install the necessary packages - Run
npm run client
. This should open the UI in your browser at address:http://localhost:3000/
You can now interact with the application. Add books, edit them etc. You will also see the updates to the database if you refresh your browser's http://localhost:5000/books
tab as you make changes.
You can deploy the project on Heroku using the following steps:
- Create a Heroku Account
- On the terminal, run
heroku create
to create a new app - Run
git push heroku master
to start a deployment on Heroku. - Visit your project URL as assigned by Heroku (
heroku open
) to see a live deployment of the app.
- Paul Rail - PolarisTLX
- Kyle Lemon - jklemon17