Sie sind auf Seite 1von 19

Final Report for TextbookTrader Project

Group# 4
Austin Dorenkamp Bryan Passini Taylor Greiner Erich Kuerschner

Version
1

Date
12/6/13

Author
AD, BP, TG, EK

Change
Initial Document

12/7/13

AD, BP, TG, EK

Final Document

Table of Contents
1! Introduction ............................................................................................................................................ 3-4!
1.1! Purpose ...................................................................................................................................................................... 3! 1.2! Scope ......................................................................................................................................................................... 3! 1.3! Definitions, Acronyms, Abbreviations ...................................................................................................................... 4! 1.4! Design Goals ........................................................................................................................................................... 4!

2! References .................................................................................................................................................. 5! 3! User Interface Description .................................................................................................................... 6-9! 4! Decomposition Description ............................................................................................................... 10-12!
4.1! Module Decomposition ........................................................................................................................................... 10! 4.2! Concurrent Process .................................................................................................................................................. 11! 4.3! Data Decomposition ................................................................................................................................................ 11! 4.4! OverALL System Specification .............................................................................................................................. 12!

5! Dependency Description ......................................................................................................................... 13!


5.1! Intermodule Dependencies ...................................................................................................................................... 13! 5.2! InterProcess Dependencies ...................................................................................................................................... 13! 5.3! Data Dependencies .................................................................................................................................................. 13!

6! Interface Description .............................................................................................................................. 14!


6.1! Module Interface ..................................................................................................................................................... 14! 6.2! Process Interface...................................................................................................................................................... 14!

7! Design Rationale ................................................................................................................................ 15-16!


7.1! Backend Design ....................................................................................................................................................... 15! 7.2! Database Schema ..................................................................................................................................................... 16!

8! Tracability ............................................................................................................................................... 17! 9! Language/Framework/Tools Used ........................................................................................................ 18! 10! Individual Responsibilities ................................................................................................................... 19!
10.1! Austin .................................................................................................................................................................... 19! 10.2! Bryan ..................................................................................................................................................................... 19! 10.3! Taylor .................................................................................................................................................................... 19! 10.4! Erich ...................................................................................................................................................................... 19!

TextbookTrader

Introduction

Page 2 of 19

1 Introduction

1.1

PURPOSE

Our project is a website that coordinates buying, selling, and trading textbooks and other class supplies between students at Iowa State. Through our website, students can list books they are trying to sell and browse books that they are looking to buy. Then, when a connection is made between a potential buyer and a seller, our website will facilitate contact between the two parties. This site can be thought of as a Craigslist for textbooks. This project will require some backend work (a database, etc.) to enable complete functionality. The target user of our project is an Iowa State student. Every semester students have to go through the hassle of buying and selling textbooks. Currently, students can buy and sell textbooks from two primary sources: the Bookstore or websites (Amazon, Chegg, etc.). Both have their downsides: the Bookstore overcharges when students buy and underpays when students sell. Websites are more reasonable with prices but involves the hassle of shipping and not always knowing what you are getting. The project will allow students to buy and sell textbooks among each other here at Iowa State. By removing the middleman, students can get the best deals whether they are a buyer or a seller.

1.2

SCOPE

The primary focus of this project was to develop a user-friendly site that allows Iowa State students to easily buy and sell textbooks. The deliverables are as follows: 1. Ability to search books based on multiple criteria (author, title, ISBN, condition, etc.) 2. Restricted to ISU students (a valid netID will be required for the creation of a sellers profile) 3. Ability for sellers to create and manage their account 4. Ability for sellers to list multiple items 5. Ability to rate sellers based on past experience 6. Required picture for every item being sold 7. Ability to browse and buy without needing an account 8. One click contact for buyer to reach seller 9. Show compare prices next to item being sold 10. Automatic book discovery (seller lists ISBN and all information is gathered automatically) 11. If local search turns up empty, buyer will have option to link directly to a similar search on a corresponding website (amazon, chegg, etc.)

TextbookTrader

Introduction

Page 3 of 19

1.3 Term

DEFINITIONS, ACRONYMS, ABBREVIATIONS Description


PHP Hypertext Processor Asynchronous Javascript and XML Hyper-Text Markup Language Cascading Style Sheets A relational database management system A collection of tools for enhancing website appearance A web API for Voiceover IP and SMS messaging JavaScript library used to enhance functionality of website Provides programmatic access to Amazons product selection and discovery functionality Representational State Transfer

PHP AJAX HTML CSS MySQL Twitter Bootstrap Twilio jQuery Amazon Product Advertising API REST

1.4

DESIGN GOALS
1. Usability - Users can use our site with ease. Specifically, users should be able to buy and sell books with ease. 2. Reliability - Our site will not be down for any extended periods of time. It will be down for at most one hour to allow time for updates to be performed. 3. Security - The site will never release sensitive information unless the user has approved permission. 4. Accessibility/Performance - The server hosting the site has sufficient uplink speed to allow for maximum users to view the site at once. 5. Extensibility - Built using several modules to allow for new modules to be added easily. 6. Portability - The site works on any computer with any browser. The layout may not be scalable all the way down to smart phone size though. 7. Scalability - The database used as our backend has enough capacity to hold a large amount of books.

TextbookTrader

Introduction

Page 4 of 19

2 References
1. 2. 3. 4. 5. Twitter Bootstrap Documentation: http://getbootstrap.com/2.3.2/base-css.html Twilio Documentation: http://www.twilio.com/docs AJAX: http://www.w3schools.com/ajax/ PHP: http://www.w3schools.com/php/ Javascript: http://www.w3schools.com/js/

TextbookTrader

References

Page 5 of 19

3 User Interface Description


When our group started work on TextbookTrader we knew we wanted to keep things as simple and streamlined as possible from a design perspective. Many shopping or retail sites online fall victim to clutter and advertisements and do not provide an organized and relaxed experience. Our goal with TextbookTrader was to design a site which offered a large variety of features while keeping the clutter down, allowing users to navigate through the various pages quickly and find the results they are looking for with as little trouble as possible. 1) Homepage
2. 3.

1.

The TextbookTrader homepage is the first thing visitors will encounter when navigating to our site. This page (more-so than any other) we wanted to make sure was user-friendly and easy to navigate. You will notice the Quick Search bar (1) located right in the middle of the screen. This search bar allows quick and easy access to search results allowing users to find what they are looking for as quickly as possible. Clicking search will forward the user to the Results page which will be explored next. At all times, located in the top right of the site, is the login/logout button (2). The navigation bar (3) on the left side of the screen provides a simple way to guide users from one page to another.

TextbookTrader

User Interface Description

Page 6 of 19

2) Results Page
1.

2.

In the results page, the user may search for a book or item by using the advanced search bar (1) found at all times at the top of the results page. The search bar can be configured to search by book Title or ISBN as well. Once the results appear they are laid out in a clean and organized manner (2), allowing for easy browsing of the various items. If a user, a buyer lets call him/her, is interested in buying a particular item, they may click on said item for details on contacting the seller. Upon clicking the item a small pop-up form will be shown prompting the buyer to provide either their phone number or email so that the seller may get in contact with the buyer. After filling out the form, the provided information is sent via email to the seller alerting the seller of the buyers interest in that item. Another important feature to mention is when a user searches for a particular book by entering the specific ISBN or title of the book. If the book is not found on our service than a custom link is created navigating the user to the detailed product page of that book on Amazon.com (3). If the particular item being searched cannot be found on Amazon than a link to Amazons homepage will be posted.
3.

TextbookTrader

User Interface Description

Page 7 of 19

3) Sellers Page

4.

The Sellers page can be accessed at any time by clicking Sell in the navigation box as long as the user is logged in to their account. On this page a seller can view and edit all of their personal information (1). Also, listed on the page, is every item/book being sold by the seller (2). Like the personal information, book and item information can be edited as well as viewed. In order to keep the design as simple as possible, any information that the seller would like to edit, can be changed instantly by clicking the edit button found in either of the information tables. Clicking edit will change any editable field to a textbox where the seller may update their information seamlessly. Sellers may also post a new book for sale from this page by clicking the Add Item button found in the top right of the page(3). Lastly, under the User Information table, a seller may view the various ratings buyers left for them. In order to maintain an organized and clutter free environment without having to navigate away from the page, clicking View will bring up a pop-up window containing the reviews(4).

TextbookTrader

User Interface Description

Page 8 of 19

4) New Item

1.

2.

The new item form is displayed once a seller clicks the Add Item button on the Seller page. This form can be altered depending on what type of item the user selects in the initial drop down menu (1). The form gives the user an option to post a new book or a new generic item and the form changes accordingly. The biggest feature found on this page is the ISBN auto-fill option (2). If the user has the ISBN number of the book they are posting handy they can check the enable ISBN auto-fill checkbox and have the rest of the books information filled in automatically (Title, Author, Image) by simply typing in the books ISBN. This feature was powered by the Amazon Product advertising API.

TextbookTrader

User Interface Description

Page 9 of 19

4 Decomposition Description

4.1

MODULE DECOMPOSITION

4.1.1 Buyer Description This module contains all functionality that relates to a user buying a book. Through this module a user can search for items that he or she wishes to buy. They can search by book title, author or ISBN. Through this module users can also contact the seller of an item directly. The seller is contacting through an email. Once this email is sent through TextbookTrader, TextbookTrader no longer has any obligations with the purchase. TextbookTrader is a site that connects buyers and sellers, and does not handle the transaction of the purchase. This module needs to interact with the server module in order to query items from the database. 4.1.2 Seller Description The seller module contains all functionality related to a user selling a book. The user is able to sign up and create an account. From there they are able to sell books by filling out a form and supplying the title, author, 10 digit ISBN, condition, and price. The user also has the option of supplying just the 10 digit isbn and having the title, author, and image auto-populate. Once the information is supplied the book is then listed in the database for a buyer to search. This module needs to interact with the server module in order to insert users and new items into the database. 4.1.3 Server Module The server module contains all of the php scripts. This is where queries are executed. This module interacts with the buyer module, seller module, and the database module.

TextbookTrader

Decomposition Description

Page 10 of 19

4.1.4 Database Module The database module contains all functionality that relates to data storage for TextbookTrader. The database is a MySQL database that is hosted on Iowa States server. This module can be accessed through PHP query scripts located in the server module. The database has the following tables: 1. User - Stores information about users that have an account with TextbookTrader. 2. Item - Stores information about every item being sold on the site; holds information such as description, condition, etc. 3. Book - A sub-table of the item table that holds all book specific information, such as author, title, etc. 4. Rating - Stores all information that is used when rating users.

4.2

CONCURRENT PROCESS

The project is implemented using PHP on an Apache server. All threading is automatically handled by the server.

4.3 4.3.1 4.3.2

DATA DECOMPOSITION User Description Item Description

Information about users that have accounts on TextbookTrader.

Information about Items that are being sold on TextbookTrader. This contains information such as the price, description, and condition of the item.

4.3.3

Book Description

Information about specific books being sold. This contains information such as title, author, ISBN number. Books are an extension of Items.

4.3.4

Rating Description

Information containing a sellers rating based on a transaction. The buyer is able to rate the seller after the transaction has been completed.

TextbookTrader

Decomposition Description

Page 11 of 19

4.4

OVERALL SYSTEM SPECIFICATION

A buyer and seller interacting requires two specific things, a seller signing up and posting an item and a buyer searching for an item. First, the seller creates an account on the website. After they have created an account they then post their items they wish to sell to TextbookTrader. Second, a buyer will use the search function to find a textbook based on ISBN or title. If the site contains that specific item a search result will display with an option to contact the seller. If a buyer decides to contact a seller, the seller will receive a notification indicating someone is interested in their item. After this point the buyer and seller will contact each other to determine when they want to meet to exchange the item. When the transaction has been completed, the buyer will rate the seller using a transactionID.

TextbookTrader

Decomposition Description

Page 12 of 19

5 Dependency Description

5.1

INTERMODULE DEPENDENCIES

Search page reads (depends on Items and Sellers) 1. the returned items from Items 2. if search bar is empty, all available items from Items 3. if Items contains no items, a URL to the amazon page for searched item

5.2 N/A 5.3

INTERPROCESS DEPENDENCIES

DATA DEPENDENCIES
1. A User is a seller on the site composed of their email address and password. 2. Each Item consists of a price, description, and condition 3. Each Book is an Item consisting of additional information author, title, and ISBN

TextbookTrader

Dependency Description

Page 13 of 19

6 Interface Description
6.1 6.1.1
1. 2.

MODULE INTERFACE Buyer Interface


index.php a. Is the first page that the buyer sees results.php a. Allows the buyer to search for and display items

6.1.2
1. 2. 3. 4.

Seller Interface
loginPage.php a. Allows the seller to login and create an account myaccount.php a. Allows the seller to manage their account newItem.php a. Allows the seller to post a new item ratingspage.php a. Allows the seller to be rated

6.1.3
1. 2.

Server Interface
AmazonECS.class.php a. Allows client-side page to call Amazon API via server-side connection logout.php a. Allows the client-side page to logout the current user on the server session

6.1.4
1. 2.

Database Interface
insertNewItem.php a. Handles database connection for adding a new item insertNewUser.php a. Handles database connection for adding a new user

6.2 N/A

PROCESS INTERFACE

TextbookTrader

Interface Description

Page 14 of 19

7 Design Rationale

7.1

BACKEND LANGUAGE

7.1.1 Description When we first started building our website, we knew that we would need a backend that had the ability to communicate with the database. Much of our front end design depended on querying from the database. That being said, a big issue of ours was deciding what technologies to use to build our backend. There are many server side languages that we could pick from; PHP, JSP, ASP.net, etc. We just needed to decide which one to use. 7.1.2 Factors affecting Issue The biggest factor that affected our decision was our experience. We were hoping to choose a language that some of us had experience coding in. This way it would be easier to develop our backend. The languages that some of us had developed in were PHP, ASP.net. 7.1.3 Alternatives and their pros and cons
A. PHP Pros: 1. Some experience developing in 2. Open source and free to get 4. Easy to learn and develop in 5. Allows for object oriented design 6. Can easily integrate with java B. JSP Pros: 1. Can easily integrate with java 2. Allows for easy development of servlets Cons: 1. No experience developing in 2. Harder to learn than PHP C. ASP.net Pros: 1. Some experience developing in Cons: 1. Works best with C#, not many of us knew C#

TextbookTrader

Design Rationale

Page 15 of 19

7.1.4

Resolution of Issue

After listing the pros and cons of each server side language, we decided to go with PHP. We chose this language because of one main factor: its reputation. It has a very good reputation for being easy to use and easy to learn; this was very important to us because only one of our group members had used PHP before.

7.2 7.2.1

DATABASE SCHEMA Description

A major part of our website was data storage. We needed a way to store all sorts of information: user information, item/book information, etc. We knew that we could get a MySQL database from ISU, so that was not the issue. The issue was how we were going to design the database schema to efficiently and effectively store all information.

7.2.2

Factors affecting Issue

There was one main factor affecting our decision of how to develop our database schema: scalability. We needed the database to have the ability to store mass amounts of information without having to maintain it. We did not want to have to add columns to a table because a user was selling more books than we estimated them to.

7.2.3

Alternatives and their pros and cons

A. Keep everything about a user in one table. Pro: This would make our database very easy to query from. All we would need is a key for a user and then we would have all the information about a user: their email, what books they were selling, etc Con: This database would not have to ability to store mass amounts of information. Example: We would have to guess at how many columns to create for holding book information. We would need to create several columns for each book and then x amount of those column groups for each book being sold. This will create one of two problems. Either we create too many columns and there is wasted space in our database or we create too few columns and users may not have the ability to list as many book as they would like to. B. Have several different tables: User Table, Item Table, Book Table, Rating Table Pro: This option would be much expandable than the previous solution because databases can grow (in theory) infinity larger in terms of rows. Con: This would make our query statements much more complicated because we would have to query from multiple tables in order to obtain all information about a user.

7.2.4

Resolution of Issue

We decided to go with the option of having our database store information in several different tables as opposed to one large table. We chose this option because it would be the most versatile when it comes to storing information. We did not want to worry about having to add columns later if a user ran out of columns to store their information in.

TextbookTrader

Design Rationale

Page 16 of 19

8 Tracability

No Use Case/ Non-functional Description


1 2 3 4 5 Contact Sellers Rate Seller based on past experience List new items Manage existing items Search for items

Subsystem/Module/classes that handles it


Button on results page allows buyers to contact the seller using the Twilio API Buyers may rate a seller whom they have purchased from using the ratings page Sellers can post new items using the new Item page; this is made easier with the ISBN auto-fill feature Sellers can edit existing items in the Seller page by clicking the Edit button users can search for items using serveral different criteria

TextbookTrader

Tracability

Page 17 of 19

9 Language/Framework/Tools Used
Languages HTML/CSS Javascript/Jquery PHP AJAX Frameworks Twitter Bootstrap Tools

Twilio API Amazon Product Advertising API

TextbookTrader

Language/Framework/Tools Used

Page 18 of 19

10 Individual Responsibilities

10.1 AUSTIN
1. 2. 3. 4. 5. Responsible for modules: Buyer, Server Site authentication and page access Menu implementation and linking pages Quick search and detailed item searches General webpages: Homepage, About Us, Contact Us

10.2 BRYAN 1. 2. 3. 4. Responsible for modules: Buyer, Database Implementation of the rating system. All functionality and features of the My Account page Design and maintenance of the Database

10.3 TAYLOR 1. 2. 3. 4. 10.4 ERICH 1. 2. 3. 4. 5. Responsible for modules: Seller, Server, Database Integrated the Amazon Product API with the project Designed the ISBN auto-fill feature New Item, Login, Create Account pages Designed multiple queries for sending item and user data to the DB Responsible for modules: Buyer, Server Use of SMS and email to allow buyer to contact seller Buyer contact form in item searches Adding files to web host

TextbookTrader

Individual Responsibilities

Page 19 of 19

Das könnte Ihnen auch gefallen