Click here to try out ShelfShare on herokuapp!
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
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.
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!
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
After running your migrations, your schema will look something like this!
To view and explore the project board we used for the architecture and wireframing of ShelfShare, please visit our Miro Board here.
- Get a free Google Developer API Key here
- 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
- Install Gems
bundle exec install
bundle exec figaro install
- 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'
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.
The Books tab is where you will go to find the books your friends own.
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!
For more examples, please refer to this demonstration [Documentation](Enter Video Link HERE!)
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.
The second snippet can be found in the borrow request controller under the show method.
See the open issues for a list of proposed features and known issues.
Contributions are what make this community such an amazing and fun place to learn, grow, and create! Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch
git checkout -b feature/NewGreatFeature
- Commit your Changes
git commit -m 'Add some NewGreatFeature'
- Push to the Branch
git push origin feature/NewGreatFeature
- Open a new Pull Request!
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.
Jonathan Wilson - - GitHub - Email
Project Link: ShelfShare