Shelv is a community based book sharing app, where users are able to upload their book collection to allow them to give, take or swap books with other avid readers in their local area.
The app allows users to easily and quickly add books to be shared using the ISBN barcode number. They are then notified when a user requests that book, and are given the choice to share the book with that individual. The app then shares those users contact information to allow them to meet up and swap books.
The app uses a JavaScript/React front end (client) and a Java/Spring backend (server). To setup the app for personal use:
The server is most easily run through the IntelliJ IDEA Community app. download IntelliJ
An API key is required for the app to be able to communicate with the barcode API and generate books. Get your API key from barcodelookup.com. They offer a 30day free trial.
To add your API key to the app, create a new file in the components
folder called APIkey.java
and add the following code (replacing your_key
with the key for barcodelookup).
package com.codeclan.example.server.components;
public class APIkey {
private String key;
public APIkey() {
this.key = "your_key";
}
public String getKey() {
return key;
}
}
Next in terminal starting from the root:
$ cd server
$ idea .
In IntelliJ right click and 'Run' the file ServerApplication.java
found at server/src/main/java/com/codeclan/example/server/ServerApplication.java
Install node dependencies starting from root folder:
$ cd client
$ npm install
Run the React App:
$ npm start
- Users should be able to both share their books and take books that are being shared.
- App is to be community focused for local people to share unwanted books within a geographical location (i.e. a specific city)
Book will have:
Title
Author
Genre
CurrentOwner
User objectID
/Barcode
SwapHistory
User objects -- Extension
Users will have:
Collection of shared books
Collection of owned books
Community
Requests
- list of requests
- Should be able to view all available books.
- Filter by genre/artist.
- Search by title.
- Request a book that is being shared.
- Should be able to add books to be shared.
- Should be able to delete books if they change their mind.
- Remove books when they are shared.
- Approve a request for a book.
- Book could view available books by location on a map based on a User's postcode outcode (e.g. EH12, EH3)
- Books could be added by scanning their barcode.
- Could be able to swap a book for a book the other user is offering.
- Users can create a 'WishList' of books they would like to swap for.
- Show users likely to swap by compatiblity of shared books and wishlist.
- App to be designed, developed and prototyped over a 7 day sprint.
- Developed by a team of 5 developers.
- App will assume user authentication has already been completed.