You are on page 1of 8

INSY 661 Group Project Deliverable 1: McGill Textbook Database 

 
Overview
Scenario

Facebook deals with data on a massive scale, with a growing number of Facebook Groups pages
structured as a plain text series of “posts”. A Facebook executive, recently graduated from the
Desautels Faculty of Management at McGill University, was reflecting on their time at school.

They recalled that as a poor penniless student, they had to save money wherever possible and
were buying their textbooks second hand. These were often in reasonable condition and much
less expensive than in bookstores. The executive also recalled using the Facebook Groups feature
back in the day to browse various listings of textbooks for sale. There were a multitude, as most
of these textbooks were thoroughly useless after the corresponding course was passed and done
with.

Out of curiosity, the executive visited a few such pages (see Appendix) for a dose of nostalgia.
They immediately noticed the unstructured nature of the posts. Unfortunately, the executive had
completely forgotten what they learned in INSY661, though they had an inkling that something
database-related could be implemented to make the pages more user-friendly.

This brave, unnamed executive contacted us, as they knew that the knowledge we had absorbed
in INSY661 was still freshly coursing through our veins. Their requirement was simple: take the
component elements of plain text posts from the main McGill Facebook textbook trade Group
and organize these elements into a database. Consequently, a new version of this Group page
would be implemented with users entering various textbook data in a more structured way,
making posts easier to navigate and allowing students to quickly locate what they were looking
for. No more scrolling through endless posts.

Details of Scope1

The scope will be limited to the following features.


 
Global: 
 Specific to McGill 
 Course lookup by course code or title 
 Department association
 
Textbook Info: 
 Title
 ISBN13#
 Publisher/Author info, edition
 Number of pages 
 Format (physical book, PDF, eBook, etc.) 
1
Updated since last iteration according to ERD
 Price 
 Price negotiable field (Yes/No) 
 Availability/date sold
 Book Condition (new, used) 
 Language

Buyer and Seller info: 


 Name
 Review rating (basic 5-level system) and details
 Contact info
 Location 

This should provide a basic framework for a structured version of a textbook Groups page.

Mission Statement 
 
The purpose of the McGill textbook database is to add an organizational element to Facebook’s
current groups structure. Instead of plain text entries (posts), users should be able to search for
textbooks for sale according to department, course, price range, and location. This will allow
students to find exactly what they are looking for without having to scroll through dozens of
possibly outdated pages (see Appendix). 
 

Mission Objectives 
 
 - maintain (enter, update, delete) data on courses 
 - maintain (enter, update, delete) data on textbooks 
 - maintain (enter, update, delete) data on buyers and sellers 
 
- perform searches on courses' booklists 
- perform searches on textbooks  
- perform searches on sellers 
- perform searches on prices 
- perform searches based on location 
 
- to track availability status of books  
- to track price of books  
- to track acceptable editions for courses  
- to track no-longer-valid editions 
 
- to report on sellers 
- to report on price fluctuations / averages 
- to report on number of books sold 
- to report on number of books available 
ERD
Assumptions:

Users are both buyers and sellers.


One user can have many transactions, transactions being instances of buying or selling.
One user can have many textbooks for sale, but the physical textbook is unique and can be sold
only once.
A course can have many or no textbooks.
Textbooks for sale are check for validity against courses.
A textbook can be linked to many courses, and a course can be linked to many textbooks.
 
Data Dictionary 
Description of Entities 
Entity Name  Description  Alias  Occurrence 
Textbook_Info  Contains information of   One textbook can be sold and bought
McGill Textbooks  by many users 
Course  Contains identifying   Many courses can have
information of McGill courses  many valid textbooks. We validate
whether a textbook being sold is
valid with these valid textbooks. 
User  Identifies buyers and sellers, their   A user can buy many textbooks from the
respective contact details  seller. A user can have many transactions
for the books purchased. A user can
provide many ratings for other users 
Rating  Contains rating from users    A rating is associated to a unique
transaction. One rating can be provided
by the unique user. 
Transaction  Contains data   A transaction is associated with a unique
about purchase between two user and a transaction can have many
users  textbook sellers  
Textbook_for_Sale  All textbooks being sold/already   A textbook for sale can have many valid
sold from users  course packs and every textbook for sale
can have a unique textbook information 
 

Description of Attributes 
Entity Name  Attributes  Description  Data Type  Nulls  Multi- Derived  Default 
Valued 
Textbook_Info  ISBN13  Identifier for 14 chars  No  No  No  None 
Textbook 
  Title  Title of 30 variable chars  No  No  No  None 
Textbook   
  Publisher  Textbook 30 variable chars  No  No  No  None 
publisher 
  Language  Language of the 20 variable chars  No  No  No  None 
text 
  Pages  Number of Small int  No  No  No  None 
pages of the
text 
  Author  Author(s) of the 14 chars  No  Yes  No  None 
book 
User  User ID  Identifier for the Small int  No  No  No  None 
user 
  Name  Name of user  50 variable chars  No  No  No  None 
  Location  Location of 50 variable chars  Yes  No  No  None 
user 
  Contact  Contact info for 50 variable chars  No  No  No  None 
user 
Entity Name  Attributes  Description  Data Type  Nulls  Multi- Derived  Default 
Valued 
Rating  RatingID  Identifier for the Small int  No  No  No  None 
rating 
  Grade  User’s rating  Small int  No  No  No  None 
  Description  Description of 100 variable chars  Yes  No  No  None 
User’s rating 
Transactions  TransactionID  Identifier for 14 chars  No  No  No  None 
transaction  
  DateSold  Date book was Datetime   No  No  No  None 
sold 
  Location  Location book 50 variable chars  No  No  No  None 
was sold 
  NegPrice  Negotiated price Float  No  No  No  None 
of book 
Textbooks for SellerBookID  Identifier of Small int  No  No  No  None 
Sale  Textbook for
sale 
  Condition  Condition of the 20 variable chars  No  No  No  None 
book 
  Availability  Whether or not 20 variable chars  No  No  No  None 
the book is for
sale or has been
sold 
  Format  Format of the 20 variable chars  No  No  No  None 
book  
  Price  Price of the Float  No  No  No  None 
book 
  Discount  Discount off the Float  No  No  No  None 
price 
Course  CourseID  Identifier of the Small int  No  No  No  None 
course 
Name Official course 20 variable chars  No No No None
name
CourseCode Official course 15 variable chars No No No None
code
Department Associated 20 variable chars  No No No None
department
  ISBN13  Valid textbooks 14 chars  No  Yes No  None 
for the course 

 
Relational Schema
 
Textbook_Info(ISBN13, Title, Publisher, Language, Pages)
Author( ISBN13 , Name)
FK: ISBN13 references Textbook_Info(ISBN13)

CourseTextbooks( ISBN13 , CourseID )


FK: ISBN13 references Textbook_Info(ISBN13)
FK: CourseID references Course(CourseID)

Course(CourseID, Name, CourseCode, Department)

Validity( SellerBookID , CourseID , Validity)


FK: SellerbookID references Textbook_for_Sale(SellerBookID)
FK: CourseID references Course(CourseID)

Textbook_for_Sale(Seller Book ID, ISBN13 , TransactionID , UserID , Condition,


Availibility, Format, Course ID, Price, Discount)
FK: ISBN13 references Textbook_Info(ISBN13)
FK: TransactionID references Transaction(TransactionID)
FK: UserID references User(UserID)
User(User ID, Name, Location, Contact)

Rating(RatingID, UserID , TransactionID , Grade, Description)


FK: UserID references User(UserID)
FK: TransactionID references Transaction(TransactionID)

Transaction(TransactionID, UserID , Date Sold, Location, NegPrice)


FK: UserID References User(UserID)
 
 
 
 
 
 
 
 
 
Appendix 
 
Sample group for McGill textbooks can be found at: 
https://www.facebook.com/groups/189803501139224/ 
 
Sample listings, all in plain text: 

 
 

 
 

You might also like