Upload
fairly
View
31
Download
0
Tags:
Embed Size (px)
DESCRIPTION
BTM. BOOK TRADE MARKET. Akram Agbaria Jean-David Gibrat. Introduction. The number and success of Trade sites drastically increased during the last years. Websites like E-bay or CraigsList are today part of our lifestyle. - PowerPoint PPT Presentation
Citation preview
Akram Agbaria
Jean-David Gibrat
Introduction
• The number and success of Trade sites drastically increased during the last years.
• Websites like E-bay or CraigsList are today part of our lifestyle.
• We believe, it will be both useful and educational to construct a BOOK TRADE MARKET (BTM) website.
• The BTM data base will allow any user to exchange books with a community of peers.
• BTM’s project has been primarily designed for the Technion students. According to its success, however, it can be ultimately extended to a much larger community.
• BTM is an educational project which has been conducted in the Technion Institute of Technology EE-software lab. IIT, Haifa.
Outline
In our presentation we shall describe:
1) BTM’s goals and applications;
2) BTM’s programming modules;
3) BTM’s data base tables;
4) BTM’s rules and regulations;
5) BTM’s brief demonstration.
BTM’s System Goals• BOOK TRADE MARKET or BTM is a software application that will allow
its users to exchange books within a book community library.
• BTM will act as a large-scale library without facing its practical limits.
• BTM grows according to the size of its community.
• BTM enables people to exchange items with each other (P2P) in a free and non-monetary way.
• BTM keeps an updated Data Base information on each user, on his or her items, on his or her present and past book transactions in order to guarantee an exchange security and reliability.
• As a result, BTM suppresses the need for any physical infrastructure, and thus creates an outstanding flexibility and growing potential in the system.
A B
C
Harry Potter
Bible
Lonely Planet
A wants to exchange his “Lonely Planet” with “Harry Potter”
B wants to exchange his “Harry Potter” with the “Bible”
C wants to exchange his “Bible” with the “Lonely Planet”
DEAD LOCK !!!!
A B
C
Harry Potter
Bible
Lonely Planet
BTM system
C sends his Bible to BTM
C borrows Lonely Planet from BTM
B borrows the Bible from BTM
B sends his Harry Potter to BTM
A borrows Harry Potter from BTM
A sends his Lonely Planet to BTM
BTM Users’ Objectives
• The BTM’s system will help its users to satisfy the following objectives:
• It is easy to use and immediately welcoming as no money is involved.
• It guarantees safe exchange operations as they are supervised by the BTM’s system.
• It offers a large choice of books’ sharing.• It allows a fast search for specific books.• It is of free access: books are freely exchanged according to the
client’s personal “buki value” (personal credit).
signUp
PersonalHomePage
Logout
request
evaluation
insertNewBook
searchNewBook itemDetails
homePage
userDetails
bookList in
bookList out
bookList in hand
requests
Future transactions
my bookList
Edit profile
userInfo
itemInfo
bookInfo
present
Trans
past
Trans
user
PHP & MySQL
• We decided to use the PHP programming language and the MySQL storing tables in order to meet the BTM’s goals.
• PHP and MySQL are both free sources.• PHP supports:
– wide GUI operations– large-scale MySQL tools– an object-oriented programming.
• MySQL supports:– insert, select, update, drop operations– atomic operations in parallel threads– a refined and fast search with its own index system– primary and foreign keys that allow consistent information stored
in the DB tables.
BTM’s Programming Architecture
• 6 GUI• 4 GUI ReadOnly• 4 GUI action • 10 INTERFACE specific• 1 INTERFACE general• 1 INTERFACE DB• 1 INTERFACE MySQL• 4 MODULE• 3 CLASS• 1 IMAGE FOLDER• 1 CSS FOLDER
Basic Structure
signUp
GUI
signUp_interface
INTERFACE
signUp_action
GUI ACTION
general_interface
INTERFACE
DB_interface
Mysql_interface
MYSQL
CheckOut = falseCheckOut = true
user
submit
3 - elements basic structure
2 - elements basic structure
BTM’s Data Base Tables
BTM’s Data Base is composed with 5 Tables:
• userInfo => 17 columns• bookInfo => 11 columns• itemInfo => 12 columns• presentTrans => 11 columns• pastTrans => 18 columns
Table’s Links
userID
Bigint
(20)
pastTransaction
presentTransaction
bookID
Bigint
(20)
itemID bookID userID transID
Bigint
(20)
Bigint
(20)
Bigint
(20)
Bigint
(20)
transID ownerID borrowerID itemID
Bigint
(20)
Bigint
(20)
Bigint
(20)
Bigint
(20)
pastTransID ownerID borrowerID itemID transValid
Bigint
(20)
Bigint
(20)
Bigint
(20)
Bigint
(20)
Bigint
(20)
userInfo
bookInfo
itemInfo
userInfo TableuserID Username password email firstName lastName birthday Address
Bigint
(20)
Varchar
(30)
Varchar
(30)
Varchar
(30)
Varchar
(30)
Varchar
(30)
date Varchar
(40)
Phone
Number
info isPrivate Gender gradeAs
Owner
gradeAs
Borrower
oCount bCount bukiCredit
Varchar
(30)
tinytext enum enum Tinyint
(4)
Tinyint
(4)
Int
(10)
Int
(10)
Int
(11)
: Foreign Key
: Primary Key
bookInfo Table
bookID title authorFirst authorLast publisher edition format
Bigint
(20)
Varchar
(30)
Varchar
(30)
Varchar
(30)
Varchar
(30)
enum enum
pagesNum language publicationDate dimension
Int
(11)
Enum Int
(4)
Enum
: Foreign Key
: Primary Key
itemInfo Table
itemID bookID userID transID genre description timeToLend
Bigint
(20)
Bigint
(20)
Bigint
(20)
Bigint
(20)
text text Smallint
(6)
Physical
Cond
bukiValue count available Insertion
Date
Tinyint
(4)
Tinyint
(4)
Int
(11)
Enum timestamp
: Foreign Key
: Primary Key
presentTransaction Table
agreement transaction oEvaluation
Submited
bEvaluation
Submited
enum enum Enum Enum
transID ownerID borrowerID itemID transStart
Date
transFinish
Date
message
Bigint
(20)
Bigint
(20)
Bigint
(20)
Bigint
(20)
date date TinyText
: Foreign Key
: Primary Key
pastTransaction Table
pastTransID ownerID borrowerID itemID Trans
Confirm
transValid
Bigint
(20)
Bigint
(20)
Bigint
(20)
Bigint
(20)
Enum Bigint
(20)
Book
Comment
Book
Condition
Trans
StartDate
Trans
FinishDate
text Tinyint
(4)
date date
Borrower
In
Agreement
Borrower
In
Transaction
Borrower
InGeneral
Borrower
Comment
ownerIn
Agreement
ownerIn
Transaction
ownerIn
General
Owner
Comment
Tinyint
(4)
Tinyint
(4)
Tinyint
(4)
text Tinyint
(4)
Tinyint
(4)
Tinyint
(4)
text
: Foreign Key
: Primary Key
How Can I Increase my Buki Credit ?
• I insert some New Books in the BTM’s library.
• I perform transactions as the Book’s Owner (my “buki credit” increases until the borrower returns my item to me).
• I receive good evaluation grades as an Owner for my already performed transactions.
• I receive good evaluation grades as a Borrower for my already performed transactions.
How Can my Buki Credit Decrease ?
• I remove some of my Books from the BTM’s library.
• I perform transactions as the book’s Borrower (my “buki credit” decreases until I give the item back to its owner).
• I receive bad evaluation grades as an Owner for my already performed transactions.
• I receive bad evaluation grades as a Borrower for my already performed transactions.
How Can I Increase my Item “Buki Value” ?
• Don’t worry about that .• the BTM system is running a private & fair and & secret ;) algorithm
in order to prevent from hackers and other bad guies to cheat ;)
• GUI components Sequence Diagrams
• BTM’s demonstration
Sign Up GUI Sequence Diagram
signUp signUp_action homePage
Check out
incorrect
time
GUI php pages
homePage
Personal Home Page GUI Sequence Diagram
itemDetails
time
GUI php pages
Edit profile
my book list
books in
books out
books in my hand
future Transactions
requests
personalHomePagetransactionsrequestpersonalHomePage
General Menu
Insert New Book GUI Sequence Diagram
itemDetails insertNewBook insertNewBook_action
time
GUI php pages
personalHomePage
General Menu
OR Check out incorrect
Search New Book GUI Sequence Diagram
searchNewBook searchNewBook_action userDetails
time
GUI php pages
itemDetails
Check out incorrect
request
insertNewBook
userDetails
General Menu
Request GUI Sequence Diagram
request personalHomePage
Check out incorrect :
BTM rejects the request
time
GUI php pages
itemDetails
Check out correct :
BTM records the request
EvaluationGUI Sequence Diagram
Evalution_action personalHomePage
time
GUI php pages
Evaluation
BTM records the evalution
General Menu
itemDetails
itemDetails is used in several processes:
• insertNewbook• searchNewBook• request• Evaluation• Several bookLists in personalHomePage• userDetails
userDetails
• userDetails is used in several processes:
• searchNewBook
• request
• Evaluation
• Several bookLists in personalHomePage
• itemDetails
BTM’ s Limits and Potential Improvements
Limits:• Minimal trust in users (P2P system, bad users are detected and rejected by
the BTM’s community).• Practical Book exchange :
– BTM should use a reliable shipping company to send its clients’ items– or BTM should create its own shipping infrastructure.
Potential Improvements:• Updating the “buki credit” as well as the “buki value” and the users’ grades
=> improve the grading functions in the evaluation_interface page.• Quick detection of the “bad’ users => according to the history kept in the
past Transaction Table.• Increasing Prevention from outside aggressions => improve the checkOut
function in each GUI.
Conclusion
• BTM is an educational project designed and implemented at the Technion Electrical Engineering Software lab.
• BTM enables its users to insert, search, exchange, and share books with the BTM’s community after they signed in.
• BTM has been developed using the PHP and MySQL programming languages.
• BTM has been developed with an object-oriented concern which allows a particularly large modularity.
• Akram and Jean-David express their gratitude to Uri Schonfeld for its time and wise guidance.