Gamer's Log, an undergraduate database course project and PHP web application, is a trading card game and blogging social network for Yu-Gi-Oh! And Magic: The Gathering players to share experiences, showcase accomplishments and "fan" one another.
2. 1
Table of Contents
I. Needs Assessment 3
1.1 Brief Description of Motivation 3
1.2 Environment or Scenario 4
1.3 Users 4
1.4 Data/Information Needs 4
1.5 “Mini-World” Description 4
a. Entity Description 4
b. Business Rules for Entities 5
II. Conceptual Design 6
2.1 Entity Definition and List of Attributes 6
2.2 List of Entity Relationships 7
2.3 Conceptual Design EER Diagram 8
III. Relational Design 9
IV. Prototype 10
4.1 Database Table Screenshots 10
a. Hobby Category Table 10
b. Hobby Table 10
c. User Table 10
d. User Log Category Table 10
e. Log Table 11
f. Log Gametix Table 11
g. User Profile Table 11
h. Magic The Gathering Table 11
i. Yugioh Profile Table 12
j. Fan User Table 12
4.2 Queries and Database Table Screenshots 12
V. Web Application Screenshots 14
5.1 Screenshots of Webpages 14
a. Landing Page 15
b. Login Page 15
c. Gamer’s Profile for a Specific User with Yugioh Profile 15
d. List of all Members on Gamer’s Log Website 15
e. List of all Members on Gamer’s Log Website 16
f. User’s Home Page displaying Logs of written in Yugioh Hobby 16
g. Members with a Yugioh Profile 16
h. Members with a Magic the Gathering Profile 1
3. 2
Needs Assessment
1.1 Brief Description of Motivation
As contemporary society becomes more social media driven and individuals have the
ability to easily communicate and share topics of interest to them, online communities
related to trading card games are becoming ubiquitous. A trading card game is also
commonly referred to as a collectible card game, customizable card game or CCG.
Essentially a trading card game (TCG) combines the collectability of trading cards with
strategic play. Since a match in TCGs require a minimum of two players to engage in a
duel, online communities presented a place where users can congregate to purchase and
trade cards, find opponents and tournaments, exchanging deck ideas, market information,
and the metagame related to TCGs.
There are two demographics for trading card gamers: the younger and older generation.
The younger group composes of children between the age of six and fourthteen, while the
latter consists of children and adults ages sixteen and older. Due to my interest in creating a
social network for trading card gamers, the demographics of TCG message boards are
paramount in understanding what card games should Gamer’s Log focus and how active are
gamers’ activities on forums. A study conducted in a paper titled “Trading Card Game
Industry White Paper: From the T to the C to the G”, collected information from fourteen
English based online message boards in May 2009 where 1,138,510 players collectively
contributed 29, 396, 134 posts. From this data the report concluded that market percentage
of TCGs discussed online is over 51% for Yu-Gi-Oh!, followed by Pokémon 35% and 7.7%
for Magic: The Gathering. However, both Yu-Gi-Oh and Magic: The Gathering is
immensely competitive with hosting regular national and regional tournaments every month.
Due to trading card games popularity, websites emerged to cater to players thirst for
wanting to purchase cards and exchanging strategies. Therefore, I believe since Yu-Gi-Oh!
and Magic constantly host events that attract hundreds of players, there is more of a need to
properly prepare for tournaments which require market information and exchange of deck
strategies. Contemporary trading card game websites, such as TrollAndToad.com and Alter
Reality Games, primary focus is selling hobby items, promoting tournaments, allowing
professional card gamers to write articles and permitting gamers to exchange information
through forums and/or commenting to articles, however, this is a secondary service.
Although message boards are a common means of communication, it is also very limited. If
no other users’ comment on a topic, then the forum remains idle and soon closed by
administrators. Consequently, a player who was seeking advice or assistance does not
receive it.
4. 3
Websites that permit professional gamers to write articles will not allow novice or
intermediate skilled gamers to post articles on their websites. Normally gamers who post on
these websites are paid and sponsor by websites. While sites such as Pojo.com, allow any
user to submit deck ideas, permit volunteer users to act as feature writers, offer card of the
day reviews and messages boards. With ever changing technology that enables for
instantaneous response, Pojo.com has not embraced it, therefore, users complain about
message boards. However, as mentioned earlier, forums limitations lie in gamers not
commenting to a user’s post. For gamers who want to discuss information, they use
platforms such as Tumblr, BlogSpot, Facebook, and other social networks.
There is not a website dedicated primarily to building a network of gamers, thus I
purpose the creation of a trading card gamer social network that acts as a profile and
communication platform. A profile, a digital resume, will enable users to share TCGs pet
peeves and fetishes for games they play. Our communication platform is a blogging system
where card gamers can exchange deck ideas, market information, the metagame and
opinions about collectible card games. Our initial market is for Yu-Gi-Oh! and Magic: The
Gathering players.
As a result, my two primary motivators for creating Gamer’s Log are:
1. There is not a dedicated social network service for trading card gamers.
2. Strip barriers or privilege away from gamers who want to share knowledge or
express opinions about trading card games.
3. Allow users to digitally record their accomplishments and TCG information.
1.2 Environment or Scenario
The environment is a real world application of a social network database for individuals that
play trading card games, primarily Yu-Gi-Oh! and Magic: The Gathering.
1.3 Users
The users are trading card gamers that play either or both Yu-Gi-Oh and Magic: The
Gathering.
1.4Data/Information Needs
The multivalued attributes for Log’s Hobby Category is Trading Card Game. The
multivalued attribute for Hobbies are TCGs: Yu-Gi-Oh!, Magic: The Gathering, Cardfight!
Vanguard, Pokémon, Dragon Ball Z, Naruto, World of Warcraft, Kaijudo, Legend of the
Five Rings, and Vampire: The Eternal Struggle.
1.5 “Mini-World” Description
a. Entity Descriptions
5. 4
A USER contains an individual that information is collected upon registration of the social
network. The USER attributes consists of User Id (primary identifier), User First Name, User
Last Name, User Email, and User Password.
A LOG is an article also refereed to on the web as a web log. The LOG attributes are
composed of Log Id (primary identifier), Log Title, Log Synopsis, Log Text, Trading Card
Game Id, User Log Category Id, and User Id. Trading Card Game and User Log Category are
multivalued attributes. Trading Card Game attribute includes Hobby Category and Hobby.
User Log Category includes User Log Category Name.
A LOG GAMETIX is a comment in response to a web log. The LOG GAMETIX attributes
consist of Log Gametix Id (primary identifier),Log Gametix Text., Log Id and User Id.
A FAN USER is when a user decides to “fan” another user, commonly referred to as
“follow” on Twitter and “subscribe” on YouTube. This entity consists of three attributes Fan
User Id (primary identifier), User Id, and Fanned Id.
A USER PROFILE is personal information of a user that related to either both or one of the
TCGs: Yu-Gi-Oh! and Magic: The Gathering. A USER PROFILE is a super type that
consists of two subtypes: YUGIOH PROFILE and MAGIC THE GATHERING. It is an
overlap subtype discriminator that is overlap. The USER PROFILE attributes consists of
User Profile Id (primary identifier), and User Profile Type that is contains Yugioh Profile Id
and Magic The Gathering Profile Id. The attributes of the YUGIOH PROFILE is Yugioh Pet
Peeves and Yugioh Fetishes. MAGIC THE GATHERING PROFILE consists of Magic Pet
Peeves and Magic Fetishes.
b. Business Rules for Entities
USER/LOG
A USER may write multiple LOGs.
A LOG must be submitted by one USER.
USER/LOG GAMETIX
A USER may write many LOG GAMETIXs.
A LOG GAMETIX must be written by one USER.
LOG/LOG GAMETIX
A LOG may have many LOG GAMETIXs.
A LOG GAMETIX must belong to one LOG.
USER/FAN USER
A USER may fan multiple FAN USERs.
A FAN USER must be controlled by one USER.
USER/ USER PROFILE
6. 5
A USER must control one and only one USER PROFILE.
A USER PROFILE must be controlled by one and only one USER.
Relationships between ENTITIES
USER/LOG GAMETIX/LOG
A USER writes LOG GAMETIXs that belongs to a LOG.
A LOG has many LOG GAMETIXs that is written by a USER.
FAN USER
Both User One Id and User Two Id are the User Id’s (primary identifier) of an USER.
Conceptual Design
2.1 Entity Definition and List of Attributes
USER
Type Strong
Indentifer UserId
Name Description Data Type Length Allowable/DefaultValues NullStatus Data Constraints
User_Id Uniquelyidentifes the user Integer 10 NotNull Required
UserFirstName User's FirstName Varchar 25 NotNull Required
UserLastName User's LastName Varchar 25 NotNull Required
UserEmail User's EmailAddress Varchar 100 NotNull Required
UserPassword User's Password Varchar 100 NotNull Required
LOG
Type Strong
Indentifer LogId
Name Description Data Type Length Allowable/DefaultValues NullStatus Data Constraints
LogId Uniquelyidentifes the web log Integer 10 NotNull Required
LogSynopsis Descriptionoflog Varchar 225 NotNull Required
LogTitle Title oflog Varchar 225 NotNull Required
LogText Article Words Varchar 5000 NotNull Required
Hobby Name ofcategory Varchar 225 NotNull Required
HobbyCategory The type ofhobby Varchar 225 NotNull Required
UserLogCategoryName Name ofusercreated category Varchar 225 NotNull Required
7. 6
2.2 List of Relationships Between Entities
LOG GAMETIX
Type Weak
Indentifer LogGametixId
Name Description Data Type Length Allowable/Default Values NullStatus Data Constraints
LogGametixId Uniquelyidentifes the comment Integer 10 Not Null Required
LogGametixText Words ofthe comment Char 180 Not Null Required
FAN USER
Type Weak
Indentifer FanUserId
Name Description Data Type Length Allowable/DefaultValues NullStatus Data Constraints
FanUserId Identifes the userfanninganother Integer 10 NotNull Required
UserId Id ofUSER's table Integer 10 NotNull Required
FannedId Id ofUSER's table Integer 10 NotNull Required
USERPROFILE
Type Strong
Indentifer UserProfileId
Name Description Data Type Length Allowable/DefaultValues NullStatus Data Constraints
Yugioh Keyto YugiohProfile Integer 10 Null NotRequired
Magic The Gathering Keyto Magic The GatheringProfile Integer 10 Null NotRequired
YugiohPetPeeves Things user dislikes inYugioh Varchar 500 Null NotRequired
YugiohFetishes Things user likes inYugioh Varchar 500 Null NotRequired
MagicPetPeeves Things user dislikes inMagic Varchar 500 Null NotRequired
MagicFetishes Things user likes inMagic Varchar 500 Null NotRequired
Entity Name Entity Name Relationship Name Degree Max Cardinality Min Cardinality
USER LOG One to Many N-ary One Many
USER LOG GAMETIX One to Many N-ary One Many
USER FAN USER One to Many N-ary One Many
USER USER PROFILE One to One Unary One One
List of Relationships
9. 8
Relational Design
HOBBY CATEGORY
Hobby Category Id Hobby Category
HOBBY
USER LOG CATEGORY
User Log Category Id User Log Category Name User Id
LOG
Log Id Log Synopsis Log Text Log Title User Id Hobby Id User Log Category Id
USER
User Id User First Name User Last Name User Email User Password
LOG GAMETIX
Log Gametix Id Log Gametix Text Log Id User Id
USER PROFILE
User Profile Id User Id Yugioh Profile Id Magic The Gathering Profile Id
YUGIOH PROFILE
Yugioh Profile Id User Profile Id Yugioh Pet Peeves Yugioh Fetishes
MAGIC THE GATHERING PROFILE
Magic Profile Id User Profile Id Magic Pet Peeves Magic Fetishes
FAN USER
Hobby Id Hobby Hobby Category Id
10. 9
Fan User Id User Id Fanned Id
USER ‘s User Id
4.1 Database Table Screenshots
a. Hobby Category Table
b. Hobby Table
c. User Table
d. User Log Category Table
11. 10
e. Log Table
f. Log Gametix Table
g. User Profile Table
h. Magic The Gathering Table
12. 11
i. Yugioh Profile Table
j. Fan User Table
4.2 Queries and Database Table Screenshots
A. Display log title, log text, user ‘s log category, user’s first name and last name,
and hobby type for all logs where the hobby is Yu-gi-oh! and does not include
blogs the user created (Example Query Uses User Id of 7 for user Billy Brake )
SELECT Log_T.LogId, User_Log_Category_T.UserLogCategoryId,
User_T.UserId, Hobby_T.HobbyId, LogTitle, LogSynopsis,
User_Log_Category_T.UserLogCategory, User_T.UserFirstName,
User_T.UserLastName, Hobby_T.Hobby
FROM Log_T
INNER JOIN User_Log_Category_T ON (
User_Log_Category_T.UserLogCategoryId = Log_T.UserLogCategoryId )
INNER JOIN User_T ON ( User_T.UserId = Log_T.UserId )
INNER JOIN Hobby_T ON ( Hobby_T.HobbyId = Log_T.HobbyId )
WHERE Hobby_T.Hobby = 'Yu-gi-oh!' AND Log_T.UserId != ‘7’ LIMIT 6;
13. 12
B. Display user id, first and last name of users with a specific Hobby profile (the
query is an example that can be used for any hobby type, Yugioh Is just the
example)
SELECT UserId, UserFirstName, UserLastName
FROM user_t AS
WHERE UserId
IN
(SELECT UserId
FROM user_profile_t
WHERE YugiohProfileId != '0');
C. Display a User Profile Yugioh Pet Peeves and Yugioh Fetishes (Example display
Profile Content for Billy Brake with User Profile Id of 7)
SELECT ygo.YugiohPetPeeves, ygo.YugiohFetishes, ygo.UserProfileId
FROM yugioh_profile_t AS ygo
WHERE UserProfileId IN
(SELECT UserProfileId
FROM user_profile_t
WHERE UserProfileId = '7');
14. 13
D. Display the count of the number of users that a specific user has fanned (fanning)
(Example is of user Billy Brake with User Id of 7)
SELECT COUNT(*) AS user_fanned_count
FROM fan_user_t
WHERE UserId = '7’;
Web Application Screenshots
5.1 Screenshots for Webpages
a. Landing Page
b. Login Page
15. 14
c. Gamer’s Profile for a Specific User with Yugioh Profile
d. List of all Members on Gamer’s Log Website
16. 15
e. User’s Home Page displaying Logs of written in Yugioh Hobby
f. Members with a Yugioh Profile