Skip to content

Shelf-Share-BEE-Mod3/shelf-share-rails

Repository files navigation

ShelfShare

Click here to try out ShelfShare on herokuapp!

Contributors Forks Stargazers Issues Build Status


Logo

Shelf Share

ShelfShare is a platform for sharing books via mail.
You can borrow and lend books with your friends!
Explore the docs »

View Demo · Report Bug · Request Feature

Table of Contents

About The Project

about-screenshot

ShelfShare wants to help you save money by allowing you to borrow and lend out books you own to your friends. We put those dusty books in your collection to use!

Here's why:

  • Most of us are guilty of buying that book we "have to have" just to read it once and stash it on a shelf somewhere.
  • Save money! Shelf share is a free service. Once you find a book you are interested in on a friend's shelf, request to borrow the book, pay for shipping, and you are ready to go!
  • Convenience. ShelfShare is simplistic in design, no walking around the library trying to find a book. Simply look through the books that your friends own and request a book! Easy! 😄

A list of commonly used resources and references that our team found helpful in the creation of this project are listed in acknowledgements.

Built With

Getting Started

To use ShelfShare locally, you can fork or clone these two repos. The ShelfShare Web App is the application itself, while BookBuddy is the micro-service we will be using to find the book information we need to add books to our shelf!

Prerequisites

Below are the commands you will need to run in your terminal once you are inside the shelf share directory. You will need to run the following commands inside the book buddy service as well.

Ruby version 2.5.3

Rails version 5.2.4.4

  • Bundle Install
bundle exec install
  • Set up Database
rake db:create
rake db:migrate

Schema

After running your migrations, your schema will look something like this!

database

Architecture

To view and explore the project board we used for the architecture and wireframing of ShelfShare, please visit our Miro Board here.

Installation

  1. Get a free Google Developer API Key here
  2. Clone the repos if you have not already
  • Shelf Share
git clone git@github.com:Shelf-Share-BEE-Mod3/shelf-share-rails.git
  • Book Buddy
git clone https://github.com/Shelf-Share-BEE-Mod3/book_buddy.git
  1. Install Gems
bundle exec install
bundle exec figaro install
  1. Add your both your google client id and google client secret key in application.yml
GOOGLE_CLIENT_ID: = 'ENTER IN YOUR API KEY'
GOOGLE_CLIENT_SECRET: 'ENTER IN YOUR SECRET API KEY'

Usage

Run rails s in your terminal and navigate to http://localhost:3000/ in your local browser.

Once you sign in with Google, you will be asked to allow ShelfShare access to your Google Books. This consent will only be triggered the first time you log in.

Your Dashboard is a convenient place to view all the books you have borrowed or lent out, as well as new friend and book requests. dashboard-screenshot

The Books tab is where you will go to find the books your friends own. books-screenshot

To add books that you own to your shelf, navigate to the Profile tab, where you will see buttons to add books to your shelf, update your address, and view the books you have already added to your shelf! profile-screenshot

For more examples, please refer to this demonstration [Documentation](Enter Video Link HERE!)

Optimization

We are using the active record method .includes to implement eager loading in two separate controllers. You can find these implementations below in the following code snippets.

The first snippet can be found in the book controller under the index method.

database

The second snippet can be found in the borrow request controller under the show method.

database

Roadmap

See the open issues for a list of proposed features and known issues.

Contributing

Contributions are what make this community such an amazing and fun place to learn, grow, and create! Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch git checkout -b feature/NewGreatFeature
  3. Commit your Changes git commit -m 'Add some NewGreatFeature'
  4. Push to the Branch git push origin feature/NewGreatFeature
  5. Open a new Pull Request!

License

DISCLAIMER:
 The ShelfShare platform is a proof-of-concept and not likely to be maintained over time. Thus, any address information submitted will remain in our database indefinitely unless you delete it.
 For concerns regarding your privacy, please do not submit any real location information to this website.

Contact

     Phillip S - LinkedIn - GitHub - Email

     AJ Tran - LinkedIn - GitHub - Email

    Lito White - LinkedIn - GitHub - Email

 Jonathan Wilson - LinkedIn - GitHub - Email

Project Link: ShelfShare

Acknowledgements

About

The ShelfShare Web App for sharing your physical books

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •