Users can scroll through trending/new books on the homepage and be able to select a book to get general details about it as well as ratings from other people. Users have their own profile to save book titles and add friends who also use the app!
[Evaluation of your app across the following attributes]
- Category: Books
- Mobile: iOS, but could possibly develop into a functional website.
- Story: Users can keep track of book titles they want to read and be able to get information about it. Users can also use the book's discussion board and talk to other people.
- Market: People of all ages can enjoy this app. People who love to read will find this very helpful as well.
- Habit: Users can use the app frequently to get latest updates on trending books. Users can use the app whenever they feel like discussing about a book they've read.
- Scope: This started off as a way for Users to track books they are interested in and get general info/ratings on the book. But can eventually become a social app to friend and engage with other people who love books and have similar interests.
Required Must-have Stories
- User can log in
- User can scroll through trending books page
- User can search for specific book titles
- User can select book to get more information
- User can view book information and ratings
- User can save book titles
- User can navigate between tabs in tab bar
- User can view profile
- User can view saved book titles list
- User can view Book's discussion board
Optional Nice-to-have Stories
- User can sign up
- User can add friends
- User can message friends
- User can edit their saved list
- User can add books to a "Have Read" list
- User can have access to settings
- Login Screen
- User can log in
- Homepage Screen
- User can scroll through trending books page
- User can select book to get more information
- Book Details Screen
- User can save book titles
- User can view book information and ratings
- User can view book's discussion board
- Search Screen
- User can search for specific book titles
- Library Screen
- User can view saved book titles list
- User can add books to a "Have Read" list
- Profile Screen
- User can view profile
Tab Navigation (Tab to Screen)
- Homepage
- Search
- Library
- Profile
Flow Navigation (Screen to Screen)
- Login Screen
- => Homepage
- Homepage Screen
- => Book Details Screen, once you click on a book cell
- Search Screen
- => Book Details Screen
- Profile Screen
- => Settings Screen, this is implements later as bonus
| Property | Type | Description |
|---|---|---|
| bookId | String | unique id for the book (default field) |
| authorName | String | author of book |
| bookCoverImage | String | image of book cover |
| bookTitle | String | title of the book |
| bookDescriptionText | String | book synopsis |
| recommendationsCount | Int | number of people recommending the book |
| yearOfRelease | Int | year the book was released |
| bookGenre | String | genre of the book |
| user | Pointer to User | book associated to registered User |
| Property | Type | Description |
|---|---|---|
| username | String | unique id for the user's account (default field) |
| userEmail | String | email linked to user's account |
| password | String | user's password |
| profileImage | File | profile image for user |
| userBio | String | bio desription of user |
| commentsCount | Int | number of comments that has been posted by user |
| friendsCount | Int | number of likes for the post |
| groupCount | Int | number of groups that user is in |
- Collection Screen: queries all book titles saved by current logged in user
let user = PFUser.current()!
let query = PFQuery(className:"Books")
query.whereKey("user", equalTo: user)
query.findObjectsInBackground { (myBooks, error) in
if myBooks != nil {
self.myBooks = myBooks!
self.myBooksCollectionView.reloadData()
}
}- Reviews Screen: Create a new Review object for a selected book
let review = PFObject(className: "Reviews")
review["text"] = text
review["author"] = PFUser.current()!
review["title"] = bookReviews["title"]
let industryIdentifierArray = bookReviews["industryIdentifiers"] as? [NSDictionary]
let industryIndentifier = industryIdentifierArray?[0]["identifier"] as! String
review["identifier"] = industryIndentifier
review.saveInBackground { (success, error) in
if (success) {
print("review saved")
}
else {
print("error saving review")
}
}
reviewTableView.reloadData()
reviewBar.inputTextView.text = nil
showsReviewBar = false
becomeFirstResponder()
reviewBar.inputTextView.resignFirstResponder()Sprint 3 = GIF Walkthrough
Sprint 1 - GIF Walkthrough



