410 likes | 563 Views
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.
E N D
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. • 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: • BTM’s goals and applications; • BTM’s programming modules; • BTM’s data base tables; • BTM’s rules and regulations; • 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 wants to exchange his “Lonely Planet” with “Harry Potter” A B Lonely Planet Harry Potter C wants to exchange his “Bible” with the “Lonely Planet” B wants to exchange his “Harry Potter” with the “Bible” C Bible DEAD LOCK !!!!
A borrows Harry Potter from BTM B sends his Harry Potter to BTM A B Lonely Planet Harry Potter BTM system B borrows the Bible from BTM A sends his Lonely Planet to BTM C borrows Lonely Planet from BTM C sends his Bible to BTM C Bible
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 requests Edit profile userInfo Future transactions homePage my bookList itemInfo PersonalHomePage bookList in user bookInfo bookList out insertNewBook bookList in hand present Trans searchNewBook itemDetails request past Trans evaluation userDetails Logout
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 MYSQL Mysql_interface DB_interface general_interface INTERFACE signUp_interface INTERFACE submit CheckOut = true CheckOut = false signUp GUI signUp_action GUI ACTION user
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 presentTransaction bookInfo userInfo itemInfo pastTransaction
userInfo Table : Foreign Key : Primary Key
bookInfo Table : Foreign Key : Primary Key
itemInfo Table : Foreign Key : Primary Key
presentTransaction Table : Foreign Key : Primary Key
pastTransaction Table : 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 homePage GUI php pages Check out incorrect time
Personal Home PageGUI Sequence Diagram personalHomePage request transactions itemDetails personalHomePage GUI php pages General Menu Edit profile my book list books in books out books in my hand future Transactions requests time
Insert New Book GUI Sequence Diagram itemDetails insertNewBook insertNewBook_action personalHomePage GUI php pages OR Check out incorrect General Menu time
Search New Book GUI Sequence Diagram searchNewBook searchNewBook_action userDetails itemDetails GUI php pages General Menu Check out incorrect request userDetails insertNewBook time
Request GUI Sequence Diagram personalHomePage request itemDetails GUI php pages Check out incorrect : BTM rejects the request Check out correct : BTM records the request time
EvaluationGUI Sequence Diagram personalHomePage Evalution_action Evaluation GUI php pages General Menu BTM records the evalution time
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.