book-worm-be is the server-side application of BookWorm. It stores some information on users and the books they are reading as well as their 'bookmarks'. This app consumes the Google Books API and exposes relevant information for the front-end side of BookWorm.
Consumed Google Books API
Robust unit and integration testing to ensure data quality
Navigate working together with a larger application base with many moving parts
Learned application design from the perspective of users' needs
Setup continuous integration and deployment with CircleCI
Deployed on Heroku(see endpoints)
-
Ruby 2.7.1
-
Rails 6.1.3.1
Table of Contents
- Fork and Clone the repo
git clone [email protected]:book-worm/book-worm-be.git
- Install gems
bundle install
- Setup the database:
rails db:setup
GET https://book-worm-be.herokuapp.com/api/v1/students/login
{"email": "[email protected]",
"name": "Example Student"}
GET https://book-worm-be.herokuapp.com/api/v1/students/books
{"id": "123",
"status": "reading"}
status options - 'reading', 'finished', 'abandoned'
no status defaults to all books
GET https://book-worm-be.herokuapp.com/api/v1/books
{"title": "Harry Potter and the Sorcerer's Stone",
"author": "J. K. Rowling"}
POST https://book-worm-be.herokuapp.com/api/v1/student_books
{"student_id": 1,
"prediction": "This is my prediction",
"book": {
"title": "Harry Potter and the Goblet of Fire",
"author": "J.K. Rowling",
"pages": 345,
"isbn": "233872373",
"image": "https://..."} }
POST https://book-worm-be.herokuapp.com/api/v1/bookmarks
{"student_id": 1,
"book_id": 1,
"date": "this is a date",
"minutes": 30,
"page_number": 45,
"notes": "these are notes",
"reaction": "this is a reaction"}
GET https://book-worm-be.herokuapp.com/api/v1/students/bookmarks
{"student_id": 1,
"book_id": 1}
PATCH https://book-worm-be.herokuapp.com/api/v1/student_books/:id
{"student_id": 123,
"book_id": 4,
"status": "finished",
"review": "4",
"review_comment": "A pretty good book, but I didn't like the ending."}
Web push notifications when a friend starts and finishes a book.
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request