Skip to content

biancapower/the_book_place

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

70 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The Book Place

Completed as a major assessment in Coder Academy's Fast Track Bootcamp.

View live: https://thebookplace.herokuapp.com/

Table of Contents

Problem Definition and Solution

Problem

There is a need for a better online store dedicated to the buying and selling of preloved books within Australia.

This statement is justified by answering the following questions:

  • Why is there a need for selling and buying preloved books?
  • Why online?
  • Why within Australia
  • What's wrong with the sites that already exist?

Why is there a need for selling and buying preloved books?

As outlined below, the buying and selling of preloved books meet needs categorised within Maslow's Hierarchy as safety, esteem, and self-actualisation

Maslow's Hierarchy of Needs

Fact 1: Many people have books lying around at home that they want to get rid of.

Fact 2: Many people want a cheap way to get books to read.

The buying and selling of preloved books allows owners of books to declutter their home of books while getting some amount of money from these books, while simultaneously offering a way for people who want to acquire books to do so at a lower cost than buying them new.

Saving money on books and/or receiving money for selling preloved books results in:

  • more money is available for meeting basic needs (safety);
  • greater access to books, as more can be acquired for less money.

Additionally, the reading of books (which as stated above is made more possible through the buying and selling of preloved books) can be a means for meeting needs in the categories of esteem and self-actualisation.

Why online?

Shopping online provides convenience, meaning that access to preloved books is not restricted by location (a particular advantage for those living in rural areas), time (e.g. can shop outside business hours), or ability to physically access a store.

It further allows for a reduction in the cost associated with running a store as no physical storefront is needed, allowing greater profits for sellers and less expenses for buyers.

Why within Australia?

Many Australians prefer to buy from within Australia for a number of reasons, not least of which is the speed of delivery within Australia compared to from overseas.

What's wrong with the sites that already exist?

Having already justified a need for an Australian-based two-sided marketplace for preloved books, below is a detailed overview of existing sites selling preloved books within Australia, and why a better solution is needed.

While there are a number of preloved bookshops in existance within Australia,

  • they have a physical presence (not online-only)
  • they're not a two-sided marketplace, they are one store selling the books

Places do exist for selling preloved books person-to-person online (e.g. Ebay, Gumtree, Fishpond, Amazon), but they're not made specifically for books. The exception to this is several sites made specifically for the buying and selling of textbooks (Student VIP; Dusa Bookshop; MQ Bookshop; Zookal).

One website can be found that has the same premise as this one - an Australian two-sided marketplace for preloved books (BookEMart), however it could be improved in a number of areas:

  • Improve overall look of site to be more modern and aesthetically pleasing by following modern design principles
  • Improve ease of navigation
  • Reduce barrier to entry (enable viewing of books prior to signing up)
  • Reduce or eliminate ads, or make them less obtrusive
  • Make it exclusively Australian, so that users do not need to worry about whether the books they are looking at are coming from overseas
  • Use a database for adding books to increase accuracy of book listing as well as increase ease of use for sellers

Solution

Create a better online store dedicated to the buying and selling of preloved books within Australia.

User Stories

Preliminary user stories were collected in Trello, with more detailed user stories subsequently created.

Preliminary User Stories

trello trello trello trello

Detailed User Stories

User should be able to edit their own profile

Feature: Edit Profile

  • As a User
  • I want to edit my profile
  • Because I want to keep my details up to date

Scenario: User edits profile

  • Given I'm a logged in User
  • When I go to the edit profile page for my profile
  • And I change the text in the text fields and/or upload a new profile photo
  • And I click "Update profile"
  • Then I should see my profile page
  • And the details should be updated

User should not be able to edit a profile that is not theirs

Feature: Unable to edit other user's profile

  • As a User
  • I want nobody other than me to be able to edit my profile
  • Because I want to have control over my profile details

Scenario: User attempts to edit another user's profile

  • Given I'm a logged in User
  • When I go to the edit profile page for another user's profile
  • Then I am redirected back to the user's profile view page

User should be able to edit a book listing that is theirs

Feature: Edit Book Listing

  • As a User
  • I want to edit one of my book listings
  • Because I want to improve the accuracy of my book listing

Scenario: User edits book listing

  • Given I'm a logged in User
  • When I go to the edit page for a book listing that is mine
  • And I change the text in the text fields and/or upload a new book image
  • And I click "Update book"
  • Then I should see the detailed view page for that book
  • And the details should be updated

User should not be able to edit a book listing that is not theirs

Feature: Unable to edit other user's book listing

  • As a User
  • I want nobody other than me to be able to edit my book listings
  • Because I want to have control over my book listings

Scenario: User attempts to edit another user's book listing

  • Given I'm a logged in User
  • When I go to the edit book page for another user's book listing
  • Then I am redirected back to the detailed view page for that book listing

User should be able to delete a book listing that is theirs

Feature: Delete Book Listing

  • As a User
  • I want to delete one of my book listings
  • Because I have decided not to sell it

Scenario: User deletes book listing

  • Given I'm a logged in User
  • When I go to the edit page for a book listing that is mine
  • And I click 'delete book'
  • Then the book listing should be deleted from the database

User should not be able to open a message conversation with themselves

Feature: Unable to message self

  • As a User
  • I do not want to see an option to message myself
  • Because this would be pointless functionality

Scenario: User visits messages page

  • Given I'm a logged in User
  • When I go to the messages page
  • Then my username is not listed as an option to message

User should not see a 'message reader' button on their own profile

Feature: No 'message reader' button on own profile

  • As a User
  • I do not want to see an option to message myself
  • Because this would be pointless functionality

Scenario: User visits their profile page

  • Given I'm a logged in User
  • When I go to my profile page
  • Then I do not see a 'message reader' button

User should be able to view book listings on homepage without logging in

Feature: Homepage viewable without login

  • As a User
  • I want to view book listings without signing in
  • Because I want to know it's worth signing up before I do so

Scenario: User visits homepage

  • Given I'm a logged out user
  • When I go to the homepage
  • Then I can view the book listings

User should be able to view detailed book listing without logging in

Feature: Detailed book view viewable without login

  • As a User
  • I want to view book listings without signing in
  • Because I want to know it's worth signing up before I do so

Scenario: User visits detailed book view page

  • Given I'm a logged out user
  • When I go to the detailed book view page
  • Then I can view the detailed book view page

User should not be able to view Messages page without logging in

Feature: User must be logged in to view messages page

  • As a User
  • I want to know that only users who are logged in can message me
  • Because I don't want to get spammed

Scenario: User visits messages page

  • Given I'm a logged out user
  • When I go to the messages page
  • Then I am redirected to the login page

User should not be able to view New Book form page without logging in

Feature: User must be logged in to see the add new book form

  • As site Admin
  • I want users to be required to log in in order to add a book listing
  • Because I want to encourage users to create an account on the site

Scenario: User visits add new book page

  • Given I'm a logged out user
  • When I go to the add new book page
  • Then I am redirected to the login page

When logged in, user should not be able to view any page other than 'create profile' until they have created a profile

Feature: User must create a profile upon signup in order to interact on the site

  • As site Admin
  • I want all users to be required to have a profile
  • Because it builds a sense of community

Scenario: User without a profile attempts to visit any page

  • Given I'm a logged in user
  • And I don't have a profile
  • When I go to any page other than the create profile page
  • Then I am redirected to the create profile page

Workflow

The original workflow was conceptualised in the diagram below. Some minor alterations were made during development as needed. These will be reflected in a future version of this diagram.

workflow

Style Guide

Colours and fonts were chosen as below.

colours

fonts

Gentium Book Basic is set at a slightly heavier weight than Gentium basic, and is used for publishing books at small point sizes.

Open Sans was designed with an upright stress, open forms and a neutral, yet friendly appearance. It was optimised for print, web, and mobile interfaces, and has excellent legibility characteristics in its letterforms.

Wireframes

Content-first mockups were created using Figma and can be viewed here.

mockup mockup mockup mockup mockup mockup mockup mockup mockup mockup mockup mockup mockup mockup

ERD

The original conception was as follows:

erd

After revisions necessary for creation of a MVP, the current ERD is as below.

erd

Trello

Trello was used from the beginning of this project to track ideas and tasks, as well as completion dates.

See this project's Trello board for details.

A snapshot at one moment in time is provided below.

trello trello