HeaderSIS.jpg

Difference between revisions of "IS480 Team wiki: 2017T1 Team BFFs Finals"

From IS480
Jump to navigation Jump to search
 
(17 intermediate revisions by the same user not shown)
Line 62: Line 62:
 
|-
 
|-
 
! style="color:#ecf0f1; background-color:#d41c23;" width="250pt" | deployment
 
! style="color:#ecf0f1; background-color:#d41c23;" width="250pt" | deployment
! style="color:#ecf0f1; background-color:#d41c23;" width="250pt" | minutes
+
! style="color:#ecf0f1; background-color:#d41c23;" width="250pt" | poster
 +
! style="color:#ecf0f1; background-color:#d41c23;" width="250pt" | presentation slides
 
|-
 
|-
 
|style="text-align: center;"|[[Image:TeamBFF arrow.png|link=https://sgweiqi.org]]
 
|style="text-align: center;"|[[Image:TeamBFF arrow.png|link=https://sgweiqi.org]]
|style="text-align: center;"|[[Image:TeamBFF screen.png|link=]]
+
|style="text-align: center;"|[[File:TeamBFF poster.png|link=https://drive.google.com/open?id=1SXKWS3FFctvrNZbn7fe9uKQogx2lK8Ko]]
 +
|style="text-align: center;"|[[Image:TeamBFF project overall.png|link=https://drive.google.com/open?id=1D_QzLM5R448QnzUBo5Wt1KJVDnGF6DY2]]
 
|-
 
|-
 
|}
 
|}
Line 79: Line 81:
  
 
===<div style="background: #ed2724; padding: 15px; font-weight: bold; line-height: 0.3em; font-size:16px; font-family:helvetica"><font color= #FFFFFF>X-Factor</font></div>===
 
===<div style="background: #ed2724; padding: 15px; font-weight: bold; line-height: 0.3em; font-size:16px; font-family:helvetica"><font color= #FFFFFF>X-Factor</font></div>===
[[Image:TeamBFF XFactor2.jpg|center|1000px|]]
+
[[File:TeamBFF XFactor3.jpg|center]]
  
 
==Project Management==
 
==Project Management==
Line 90: Line 92:
 
[[Image:TeamBFF OverallProjectScope.jpg|center|1300px|]]
 
[[Image:TeamBFF OverallProjectScope.jpg|center|1300px|]]
  
====<div style="border-bottom:2px dashed #ed2724; padding: 15px; font-weight: bold; line-height: 0.3em;  font-size:14px; text-transform: uppercase; font-family:helvetica;">Midterm Scope Focus</div><br>====
+
====<div style="border-bottom:2px dashed #ed2724; padding: 15px; font-weight: bold; line-height: 0.3em;  font-size:14px; text-transform: uppercase; font-family:helvetica;">Finals Scope Focus</div><br>====
 +
[[File:TeamBFF ProjectScope Finals.jpg|center]]
 
<br>
 
<br>
  
Line 115: Line 118:
  
 
====<div style="border-bottom:2px dashed #ed2724; padding: 15px; font-weight: bold; line-height: 0.3em;  font-size:14px; text-transform: uppercase; font-family:helvetica">Task Metrics</div><br>====
 
====<div style="border-bottom:2px dashed #ed2724; padding: 15px; font-weight: bold; line-height: 0.3em;  font-size:14px; text-transform: uppercase; font-family:helvetica">Task Metrics</div><br>====
 
+
[[File:TeamBFF TaskMetricsFinals.jpg|center]]
 
<br/>
 
<br/>
  
 
====<div style="border-bottom:2px dashed #ed2724; padding: 15px; font-weight: bold; line-height: 0.3em;  font-size:14px; text-transform: uppercase; font-family:helvetica">Bug Metrics</div><br>====
 
====<div style="border-bottom:2px dashed #ed2724; padding: 15px; font-weight: bold; line-height: 0.3em;  font-size:14px; text-transform: uppercase; font-family:helvetica">Bug Metrics</div><br>====
 +
[[File:TeamBFF BugMetricsFinals.jpg|center]]
 +
<br/>
  
 +
====<div style="border-bottom:2px dashed #ed2724; padding: 15px; font-weight: bold; line-height: 0.3em;  font-size:14px; text-transform: uppercase; font-family:helvetica">Sponsor Satisfaction Metrics</div><br>====
 +
[[File:TeamBFF SponsorSatisfaction.jpg|center]]
 
<br/>
 
<br/>
  
====<div style="border-bottom:2px dashed #ed2724; padding: 15px; font-weight: bold; line-height: 0.3em;  font-size:14px; text-transform: uppercase; font-family:helvetica">Client Satisfaction Metrics</div><br>====
+
====<div style="border-bottom:2px dashed #ed2724; padding: 15px; font-weight: bold; line-height: 0.3em;  font-size:14px; text-transform: uppercase; font-family:helvetica">Team Satisfaction Metrics</div><br>====
 +
[[File:TeamBFF TeamSatisfaction.jpg|center]]
 
<br/>
 
<br/>
  
Line 159: Line 167:
  
  
[[File:TeamBFF RiskManagement.jpg|center]]<br>
+
[[File:TeamBFF RiskManagementFinals.jpg|center]]<br>
  
 
===<div style="background: #ed2724; padding: 15px; font-weight: bold; line-height: 0.3em;  font-size:16px; font-family:helvetica;"><font color= #FFFFFF>Technical Complexity</font></div>===
 
===<div style="background: #ed2724; padding: 15px; font-weight: bold; line-height: 0.3em;  font-size:16px; font-family:helvetica;"><font color= #FFFFFF>Technical Complexity</font></div>===
 +
====<div style="border-bottom:2px dashed #ed2724; padding: 15px; font-weight: bold; line-height: 0.3em;  font-size:14px; text-transform: uppercase; font-family:helvetica">Understanding Tournament Type (Swiss)</div><br>====
 +
 +
Swiss systems intend to provide a clear winner with a limited number of rounds and a potentially unlimited number of opponents, without a single loss terminating participation. The winner is defined as the competitor who has the highest aggregate points earned in all rounds during that tournament. With a fixed number of rounds set during the creation of the tournament itself, opponents are paired with each other based on similarity of their running score. All competitors play in each round unless there is an odd number of players. These are the basic rules of any Swiss System tournament.
 +
 +
It is to be noted that there are multiple ways to reach the “clear winner”, and each of these ways is referred to as a different type of Swiss System.
 +
<br><br>
 +
 +
[[File:TeamBFF Technical Complexity 1.jpg|800px|center]]
 +
 +
<br><br>
 +
As the Dutch Swiss System and McMahon System rules are the tournament types required by the client\sponsor, our system implements both. However, as the Dutch Swiss System type is organised the most, we would be using that to explain the complexity of our project.
 +
 +
The Dutch Swiss system, has specific rules to take into account when conducting pairing so as to ensure a clear winner is derived. The first rule is that no two players are to be paired with each other a second time. Secondly, the same player cannot sit out in more than one round. The player who sits out is referred to as the bye player, and this condition occurs only when an odd number of players are in the pair-able pool of players for that specific round.
 +
 +
Thirdly, the Dutch Swiss System uses 3 different running scores to define the similarity between players. The first of which is called Number of Wins also referred to as NBW. The NBW is calculated using the following formula:
 +
<br><br>
 +
Number of Wins (NBW) = ∑(Wins in that tournament)
 +
<br><br>
 +
The second running score is called the Sum of Opponent’s Score, also referred to as SOS, takes into account the Number of Wins of all the opponents that a specific player has previously played against. The SOS is calculated using the following formula:
 +
<br><br>
 +
Sum of Opponents’ Score (SOS) = ∑(Past Opponents’ current NBW)
 +
<br><br>
 +
The third and last running score is the Sum of Opponents’ Sum of Opponents’ Score, also referred to as SOSOS, takes into account the Sum of Opponents’ Score of all the opponents that a specific player has previously played against. The SOSOS is calculated using the following formula:
 +
<br><br>
 +
Sum of Opponents’ Sum of Opponents’ Score (SOSOS) = ∑(Past Opponents’ current SOS)
 +
<br><br>
 +
The Dutch Swiss System, lastly has three different pairing algorithms that can be followed to pair a list of players. These are as follows:
 +
<br><br>
 +
[[File:TeamBFF Technical Complexity 2.jpg|800px|center]]
 +
<br><br>
 +
Coming to the implementation of the Dutch Swiss System, For each round there is a list of players referred to as the pairable pool of players. Pairable can be defined as those who are present for the round. Now we take this list of players and we sort the players according to their strength. In this caser, defined by their NBW, SOS and SOSOS. If there is an odd number of players in this list one of the weakest players will be selected as the bye player. We will go indepth into the bye player selection, after this. Now, based on the NBW, the players are divided into groups. That is to say that players with the same NBW would belong to the same group. After the division is done, the list would be sent to the respective pairing algorithm to pair the players. 
 +
<br><br>
 +
[[File:TeamBFF Technical Complexity 3.jpg|800px|center]]
 +
<br><br>
 +
Let’s take a look at the bye player selection process. The objective is to find a player from the pairable pool who is the weakest and has not been a bye player previously. Let there be n different NBW scores and thereby, n different groups of players. We begin by extracting the list of players in the lowest NBW group, referred to as L1. If there is a single player in that list who hasn’t been a bye player previously, we choose that player as the bye player, and this is the simplest path. If however, there are more than one players in the NBW group, we can say that there are m different SOS scores for the n different players in the specific list L1. We then extract the players in the lowest SOS group, into a list called L2. If there are more than one players in that list, we can say that there are p different players in the specific list L2. We then extract the lowest SOSOS group, into a list called L3. If there are more than one players in the group then we select a player randomly. Upon selecting a player as the bye player, we then check if the player has been a bye player previously. If not, we simply select that player as the bye player. If yes, we move onto the next random player or we increment k, j, or i until we reach p, m or n while in pursuit of the bye player for that specific round. This is the worst case scenario.
 +
<br><br>
 +
[[File:TeamBFF Technical Complexity 4.jpg|800px|center]]
 +
<br><br>
 +
The three different paring algorithms as previously mentioned are Split and Fold, Split and Slide and Split and Random.
 +
<br><br>
 +
Split and Fold<br>
 +
The split and fold pairing algorithm takes an NBW group and splits the group into a stronger half and a weaker half. The weaker half is then flipped or reversed so that the pairing takes place as strongest to weakest within the same NBW group. This pairing aims at getting the strongest players reaching the last rounds, postponing the most exciting games until the end of the tournament. This is also referred to as slaughter pairings.
 +
<br><br>
 +
Split and Slide<br>
 +
The split and slide pairing algorithm takes an NBW group and splits the group into a stronger and a weaker half. The weaker half is then used in order to pair the strongest of the stronger group with the weakest of the weaker group. This method, like the split and fold method, aims to have the strongest players play each other in later rounds, to produce exciting games at the end of the tournament, but tries to avoid the disadvantage of giving the top players a bad SOS due to their first round pairing. Therefore, Slide pairings are especially popular in the first round of Swiss tournaments
 +
<br><br>
 +
Split and Random<br>
 +
The split and random pairing algorithm takes an NBW group and chooses the pairs within each group randomly. This method is the only option available when it is impossible, or undesirable, to make a prior sorting of the players by strength.
 +
<br><br>
 +
[[File:TeamBFF Technical Complexity 5.jpg|800px|center]]
 +
<br><br>
 +
It is important to note that two players cannot meet each other in a tournament more than once. Additionally, if two players are from the same team, same country or same school/club, they are not to meet within a tournament.
 +
<br>
 +
Exception cases<br>
 +
In the case that an NBW group has an odd number of players, there is a need to find a pairing for him or her within another NBW group. While the easiest option would be to find another NBW group which has an odd number of players and pair these two players with each other, it isn’t feasible as then we would be pairing players without taking into account their strength. Therefore, instead, we would be taking the weakest player of the NBW group (Amy) and pairing them with the next group based on the NBW, wherein the group gap criteria is taken into account to ensure that the difference between the groups’ NBW is not greater than an admin defined value (eg. 2). Additionally, the player from the next group (Mia, Pam or Zoe) is again chosen according to the admin’s defined criteria of top middle or bottom of the next group.
 +
 +
Secondly, if player A (Lew) has been paired with all players in his NBW group, there will be a need to find another player to pair with Lew, outside of the NBW group. In this case, we select a player from the next NBW group chosen to be within the Group Gap criteria, to replace the weakest player in Lew’s NBW group. The replacement will have to adhere to the rules – not paired with Lew before, not from same school/team/club/country. Once the replacement is made, we conduct pairing as per normal.
 +
<br><br>
 +
[[File:TeamBFF Technical Complexity 6.jpg|800px|center]]
 +
<br>
  
 
===<div style="background: #ed2724; padding: 15px; font-weight: bold; line-height: 0.3em; font-size:16px; font-family:helvetica"><font color= #FFFFFF>Quality of Product</font></div>===
 
===<div style="background: #ed2724; padding: 15px; font-weight: bold; line-height: 0.3em; font-size:16px; font-family:helvetica"><font color= #FFFFFF>Quality of Product</font></div>===
Line 191: Line 259:
 
|}
 
|}
 
</center>
 
</center>
 +
 +
 +
====<div style="border-bottom:2px dashed #ed2724; padding: 15px; font-weight: bold; line-height: 0.3em;  font-size:14px; text-transform: uppercase; font-family:helvetica">Tournaments Supported</div><br>====
 +
 +
<p>As a team, Team BFFs supported in 4 weiqi tournaments throughout our FYP journeys. The tournaments are all organised by our sponsor, Singapore Weiqi Association.</p>
 +
 +
<br>
 +
<div style="background: #d41c23; padding: 15px; font-weight: bold; line-height: 0.3em; text-indent: 15px; font-size:18px; font-family:helvetica" align="center"><font color= #FFFFFF>19th Yan Huang Cup World Chinese Weiqi Invitational Tournament</font></div>
 +
<br>
 +
<br>
 +
=== Brief Description ===
 +
<p>Annual prestigious Weiqi tournament held in Singapore international players to play against the best in Singapore. The competition involved more than 100 delegates from all over China and Southeast Asia networking and sparring with each other.</p>
 +
 +
=== Tournament Details ===
 +
<p>
 +
<b>Venue:</b> Day 1 - Singapore Weiqi Association (City), 116 Middle Road, ICB Enterprise House #03-04, 188972, Day 2 – One Farrer Hotel and Spa, Level 6, Ballroom One<br/>
 +
<b>Date:</b>2, 3 September 2017, Saturday and Sunday<br/>
 +
<b>Time:</b>9.00am <br/>
 +
<b>Duration:</b>9 Hours each day<br/>
 +
<b>Number of Participants:</b> ~100<br/>
 +
<b>Participants roles:</b> Judge and Game Organizer<br/>
 +
</p>
 +
 +
=== Objectives===
 +
<p>
 +
To function as a back up to OpenGotha. While Singapore Weiqi Association was running the tournament, our team was working behind the scenes with the new Tournament website, running the tournament on the website concurrently, making sure that the pairing logic is similar to OpenGotha.
 +
</p>
 +
 +
=== Scope of Yan Huang Cup Tournament===
 +
<p>
 +
<ul>
 +
<li>Generate Pairings </li>
 +
<li>Judge Functions</li>
 +
</ul>
 +
</p>
 +
 +
=== Summary of day 1 ===
 +
The team arrived at the Bugis Clubhouse at 8:00am to set up the system. We were shown to a corner of the room where there was a table for us to operate our website. After the start of round 1, we requested to be shifted into a classroom as we did not require being in the tournament room. After shifting into the classroom, we operated on our website after receiving the hardcopy results from the game organisers. Several pairing logic bugs were found and work on immediately on the spot, additionally, some bugs ceased operation of the website. The team fixed the major bugs on the spot and left some low priority bugs to be completed before the next day. The team left after the generation of pairing of the last round at 5:00pm.
 +
 +
=== Summary of day 2 ===
 +
The team arrived at One Farrer Hotel at 8:00am to set up the system. The team was given a table at the side of the function room. From the table, we operated the Tournament website. Coming back from the bugs experienced the previous day, the team was determined to keep up with OpenGotha’s pairing and run the tournament concurrently. More low to mid priority bugs were found and were fixed on the spot. The team got to understand first hand on how a tournament was run and certain norms that game organisers were used to was good to know when designing the remaining of the tournament website in terms of UI/UX (eg. Standings View). The tournament website was able to keep up was OpenGotha in the end by adjusting values in the database however, there was much to improve on. The team left when the tournament concluded at 5:00pm.
 +
 +
=== Conclusion ===
 +
<p>
 +
Being our first ever Weiqi tournament, Team BFFs learned a lot from Yan Huang Cup in terms of pairing logic and the way that our sponsors conduct tournaments. It was crucial for Team BFFs to attend the tournament and run the tournament website concurrently with their old system to effectively identify the bugs that would have been missed out during normal testing. Overall, while the tournament website experience some major bugs along the way that stopped the team from continuing, quick debugging from the team enabled the website to follow the tournament’s pace and the tournament ensured a huge and much needed improvement website.
 +
</p>
 +
 +
<br>
 +
<div style="background: #d41c23; padding: 15px; font-weight: bold; line-height: 0.3em; text-indent: 15px; font-size:18px; font-family:helvetica" align="center"><font color= #FFFFFF>The 17th National Whampoa Cup</font></div>
 +
<br>
 +
<br>
 +
=== Brief Description ===
 +
<p>Local tournament with 5 different groups running concurrently.
 +
Category A – High Dan*
 +
Category B – Low Dan
 +
Category C – High Kyu*
 +
Category D – Low Kyu
 +
Category E – Primary School
 +
*Dan and Kyu are name of ranks.
 +
</p>
 +
 +
=== Tournament Details ===
 +
<p>
 +
<b>Venue:</b> Day 1 and 2 – Whampoa Community Club Multi-Purpose Hall<br/>
 +
<b>Date:</b>9, 10 September 2017, Saturday and Sunday<br/>
 +
<b>Time:</b>9.00am <br/>
 +
<b>Duration:</b>9 Hours each day<br/>
 +
<b>Number of Participants:</b> ~250 Participants<br/>
 +
<b>Participants roles:</b> Players, Judge and Game Organizer<br/>
 +
</p>
 +
 +
=== Objectives===
 +
<p>
 +
<ul>
 +
<li>To transit to use the Tournament website for the entire tournament organising process starting from Player Registration, while using OpenGotha as backup.</li>
 +
<li>To allow players and judges to have a first-hand feel of the tournament website by interacting with the judge function.</li>
 +
</ul>
 +
</p>
 +
 +
=== Scope of Whampoa Cup Tournament===
 +
<p>
 +
<ul>
 +
<li>Player Registration</li>
 +
<li>Generate Pairings</li>
 +
<li>Judge Functions</li>
 +
</ul>
 +
</p>
 +
 +
=== Summary of day 1 ===
 +
The team arrived at Whampoa Community Club (CC) Multi-Purpose Hall at 8:00am. The team was given a table on stage for us to operate our website. The stage was where all the game organisers and admin would be stationed to operate the website. The team arrived an hour earlier than the start of the tournament to brief the game organisers and the judges on how the system works and how we will be there to assist the organising of the tournament. The judges and game organisers felt that the website was easy to use and this gave the team much confidence. As the tournament began, the team would follow the judges with their iPads and tablets to assist in the judging feature. Unfortunately, some bugs were detected with missing names when generating pairings, but quick fixes by the team enabled the website to run smoothly again. The players that interacted with the judge feature were impressed at the new system and was curious as to what other functions could be done using the website. Day 1 ended after round 3 of the tournaments groups with the remaining 3 rounds to be played on the following day.
 +
 +
=== Summary of day 2 ===
 +
Similarly as the day before, the team arrived at Whampoa Community Club (CC) Multi-Purpose Hall at 8:00am and stationed ourselves on the stage. The tournament restarted at the round 4 mark and the website continued to function as it should. Additional bugs were identified but were not major enough to cease operations of the website. OpenGotha on the other hand struggled to keep up with the pace of the website due to the ability of the system to generate pairing immediately after all matches have been judge. The website continued to receive praises from all stakeholders. The VP of Singapore Weiqi Association was particularly impressed and was excited to use the website for future tournaments.
 +
 +
=== Conclusion ===
 +
<p>
 +
Having improved our website substantially since a week’s ago Yan Huang Cup, Whampoa Cup was a huge success with the functions that we tested. Although we experienced minor bugs along the way, they were easily rectified and the operations of the website was a success, making the game organising process much more efficient. It was also great to receive positive feedback all the various stakeholders which encouraged the team to build the confidence of the users to continue delivering a great product.
 +
</p>
 +
 +
<br>
 +
<div style="background: #d41c23; padding: 15px; font-weight: bold; line-height: 0.3em; text-indent: 15px; font-size:18px; font-family:helvetica" align="center"><font color= #FFFFFF>Go! Go! Beginners! Cup</font></div>
 +
<br>
 +
<br>
 +
=== Brief Description ===
 +
<p>A local tournament for beginners that have just learned Weiqi.
 +
Group A – Intermediate (Started learning Go/Weiqi from 17 December 2016 onwards (With Verification) or Currently attending or completed Intermediate course.
 +
Group B – Fundamental/Elementary (Started learning Go/Weiqi from 17 April 2017 onwards (With Verification) Currently attending or completed Fundamental or elementary course)
 +
 +
</p>
 +
 +
=== Tournament Details ===
 +
<p>
 +
<b>Venue:</b> Singapore Weiqi Association (City), 116 Middle Road, ICB Enterprise House #03-04, 188972<br/>
 +
<b>Date:</b>18 October 2017, Wednesday (Public Holiday: Deepavali)<br/>
 +
<b>Time:</b>12pm<br/>
 +
<b>Duration:</b>5 Hours<br/>
 +
<b>Number of Participants:</b> ~100 Participants<br/>
 +
<b>Participants roles:</b> Players, Judge and Game Organizer<br/>
 +
</p>
 +
 +
=== Objectives===
 +
<p>
 +
<ul>
 +
<li>To use the Tournament website for the entire tournament organising process starting from Player Registration, while using OpenGotha as backup.</li>
 +
<li>To allow players and judges to have a first-hand feel of the tournament website by interacting with the judge function</li>
 +
<li>To allow players (and parents) to log into their account to view their pairings and live results</li>
 +
</ul>
 +
</p>
 +
 +
=== Scope of Go! Go! Beginners! Cup Tournament===
 +
<p>
 +
<ul>
 +
<li>All functions of tournament website</li>
 +
</ul>
 +
</p>
 +
 +
=== Summary of tournament ===
 +
The team arrived at the Bugis Clubhouse at 11:00am. The team was given a table in the tournament room. Before parents and players came in, the team prepared with our sponsor in the first hour by ensuring that all names have been properly registered into the website. Starting from round 1, pairings were posted online for players (and parents) to view. Additionally, with the function of printing the pairings list, the list was pinned up for players and parents who are more comfortable with the old process. Unexpectedly, both parents and players approached us to give us feedback on the website view. Majority of the feedback from parents and players were positive with several of them giving feedback to improve the UI of the mobile interface. Parents enjoyed using their Singapore Weiqi Association log in to view the pairings instead of crowding around the pinned up pairing list. The team faced a mid-priority bug where a few names on the website was missing when generating pairing. The issue was identified to be due to the case sensitivity of some players’ name and username that made them undiscoverable by the system. The team implemented a quick fix by lowercasing the username/name in the database which allowed the system to operate as per normal. The website ran the tournament smoothly, and the team left the clubhouse after the end of the tournament at 5pm.
 +
 +
=== Conclusion ===
 +
<p>
 +
Prior to the tournament, the team was motivated to operate a bug-free system. Unfortunately, the team still did encounter some minor bugs in this tournament that were quickly fixed on the spot. Overall, the website was a success in running the tournament. This tournament was important in receiving the feedback from a special stakeholder – parents. Understanding the needs and feedback from parents is very important for the success of the website and from this tournament, we gained useful information on how to further improve the UI/UX for all users.
 +
</p>
 +
 +
<br>
 +
<div style="background: #d41c23; padding: 15px; font-weight: bold; line-height: 0.3em; text-indent: 15px; font-size:18px; font-family:helvetica" align="center"><font color= #FFFFFF>5th “Zong Xiang Cup” National Weiqi Championships 2017</font></div>
 +
<br>
 +
<br>
 +
=== Brief Description ===
 +
<p>The annual local tournament for all ages with 8 different groups for different age groups.
 +
Group A- Open
 +
Group B- Secondary
 +
Group C-  P6
 +
Group D-  P5
 +
Group E-  P4
 +
Group F-  P3
 +
Group G-  P2
 +
Group H-  P1
 +
</p>
 +
 +
=== Tournament Details ===
 +
<p>
 +
<b>Venue:</b> Singapore Federation of Chinese Clan Association Main Hall<br/>
 +
<b>Date:</b>12 November 2017, Sunday<br/>
 +
<b>Time:</b>8am<br/>
 +
<b>Duration:</b>13 Hours<br/>
 +
<b>Number of Participants:</b> ~300 Participants<br/>
 +
<b>Participants roles:</b> Players, Judge and Game Organizer<br/>
 +
</p>
 +
 +
=== Objectives===
 +
<p>
 +
<ul>
 +
<li>To smoothly run the tournament for all 8 groups with game organisers and judges using our system independently</li>
 +
<li>To gather concrete feedback of the tournament website through the use of a survey</li>
 +
</ul>
 +
</p>
 +
 +
=== Scope of Zong Xiang Cup Tournament===
 +
<p>
 +
<ul>
 +
<li>All functions of tournament website</li>
 +
</ul>
 +
</p>
 +
 +
=== Summary of tournament ===
 +
The team arrived at the SFCCA Main Hall at 7:30am. The team was given a table on the main hall stage, where all game organisers are stationed. The day started with the team briefing the game organisers and judges on the features and simple instructions before the players and parents started flocking in. There was a sense of confidence and excitement to use the website among the game organisers and judges. The team mentioned that we will not be operating the system today, but instead the game organisers were to take charge of today’s tournament. This was part of the handover process. Additionally, having had a user training with the game organisers and judges previously, we were confident that the Singapore Weiqi Association personnel were well equipped to use the website. The website was a huge success, being able to run the tournament smoothly without any bugs. The game organisers felt that it was a breeze having to organise the tournament and the judges did not make any human errors when judging. The team, on the other hand, was on standby to act upon any bugs. Fortunately, there were no bugs that surfaced and instead, the team spent their time going around the tournament hall surveying parents, players, judges and game organisers on their impression of the new tournament website. The tournament with 8 groups ended after 13 grueling hours and the team left the SFCCA Main Hall at 6:00pm.
 +
 +
=== Conclusion ===
 +
<p>
 +
The team went into this tournament knowing that this would be the last tournament before handing over the project to Singapore Weiqi Association. We wanted to make sure that the sponsors were confident of organising the tournament using the website independently and thus we merely provided support and did not touch the system ourselves. It was a huge challenge especially since this tournament was the biggest tournament thus far in terms of scale. Fortunately, the tournament was a huge success with the website being able to run the entire tournament with 8 different groups smoothly. The feedback that we received during the tournament was hugely positive and the team is glad that all our efforts paid off. The team will still continue to work on further improvements before handing over to Singapore Weiqi Association.
 +
</p>
  
 
===<div style="background: #ed2724; padding: 15px; font-weight: bold; line-height: 0.3em; font-size:16px; font-family:helvetica"><font color= #FFFFFF>Sponsors' Evaluation</font></div>===
 
===<div style="background: #ed2724; padding: 15px; font-weight: bold; line-height: 0.3em; font-size:16px; font-family:helvetica"><font color= #FFFFFF>Sponsors' Evaluation</font></div>===
[[File:TeamBFF SponsorTestimonial.jpg|center]]<br>
+
[[File:TeamBFF SponsorTestimonial.jpg|center]]
  
 
===<div style="background: #ed2724; padding: 15px; font-weight: bold; line-height: 0.3em; font-size:16px; font-family:helvetica"><font color= #FFFFFF>Reflections</font></div>===
 
===<div style="background: #ed2724; padding: 15px; font-weight: bold; line-height: 0.3em; font-size:16px; font-family:helvetica"><font color= #FFFFFF>Reflections</font></div>===
 +
[[File:TeamBFF LearningOutcomesFinals.jpg|center]]<br>

Latest revision as of 10:11, 22 November 2017

TEamBFF-Banner.jpg


TeamBFFs-Home-Icon.png   HOME

 

TeamBFFs-AboutUs-Icon.png   ABOUT US

 

TeamBFFs-ProjectOverview-Icon.png   PROJECT OVERVIEW

 

TeamBFFs-ProjectManagement-Icon.png   PROJECT MANAGEMENT

 

TeamBFFs-Documentation-Icon.png   DOCUMENTATION

 


Project Progress Summary

TeamBFF FinalsProgress Summary Progress.jpg

Project Highlights

The following are the project highlights for mid terms

  • Supervised the use of our web application during Singapore Weiqi Association Officially Tournaments twice (Gogo Beginner Cup on 18th October and Zong Xiang Cup on 12th November) without their systems running beside us.
  • Added new functions such as Import Tournaments, Users, Players and Team Players
  • Conducted Security Testing
  • Conducted Stress Testing
  • Achieved our X-Factor with 640 active users currently using our web application

Deliverables

deployment poster presentation slides
TeamBFF arrow.png TeamBFF poster.png TeamBFF project overall.png

Project Challenge


TeamBFF FinalsProgress Summary Progress.jpg


With these challenges. Team BFFs came out with a web application as a solution to our client. We create online tournament website that will enable Singapore Weiqi Association to organize and run all types of tournaments through a centralized website. This will make the process of organizing and running a tournament much more efficient, less time consuming and with a more error prevention methods which equate to less human errors.


X-Factor

TeamBFF XFactor3.jpg

Project Management

Project Status



TeamBFF FinalProjectProgress.jpg


Overall Project Scope


TeamBFF OverallProjectScope.jpg

Finals Scope Focus

TeamBFF ProjectScope Finals.jpg


Project Schedule

TeamBFF ProjectSchedule3.jpg



Version 1
Version 2
Version 3

Project Metrics

Metrics used are shown below:

Task Metrics

TeamBFF TaskMetricsFinals.jpg


Bug Metrics

TeamBFF BugMetricsFinals.jpg


TeamBFF SponsorSatisfaction.jpg


Team Satisfaction Metrics

TeamBFF TeamSatisfaction.jpg


Project Risks

Our team recognized the following risk and have created the following mitigations.

S/N Risk Event Likelihood Impact Mitigation
1 New users (especially players) do not know how to navigate the new website Medium Medium Ensure that actual players attend our UATs to get usability feedback if our design is intuitive enough for new users.
2 Delays due to unfamiliar Weiqi match pairing logic. High High Frequent checks with Sponsor to confirm if pairing logic is correct and compare pairings with past tournaments
3 Server crashes due to large amount of players using the system concurrently Medium High Improve the efficiency of the website and upgrade the server RAM


TeamBFF RiskManagementFinals.jpg


Technical Complexity

Understanding Tournament Type (Swiss)

Swiss systems intend to provide a clear winner with a limited number of rounds and a potentially unlimited number of opponents, without a single loss terminating participation. The winner is defined as the competitor who has the highest aggregate points earned in all rounds during that tournament. With a fixed number of rounds set during the creation of the tournament itself, opponents are paired with each other based on similarity of their running score. All competitors play in each round unless there is an odd number of players. These are the basic rules of any Swiss System tournament.

It is to be noted that there are multiple ways to reach the “clear winner”, and each of these ways is referred to as a different type of Swiss System.

TeamBFF Technical Complexity 1.jpg



As the Dutch Swiss System and McMahon System rules are the tournament types required by the client\sponsor, our system implements both. However, as the Dutch Swiss System type is organised the most, we would be using that to explain the complexity of our project.

The Dutch Swiss system, has specific rules to take into account when conducting pairing so as to ensure a clear winner is derived. The first rule is that no two players are to be paired with each other a second time. Secondly, the same player cannot sit out in more than one round. The player who sits out is referred to as the bye player, and this condition occurs only when an odd number of players are in the pair-able pool of players for that specific round.

Thirdly, the Dutch Swiss System uses 3 different running scores to define the similarity between players. The first of which is called Number of Wins also referred to as NBW. The NBW is calculated using the following formula:

Number of Wins (NBW) = ∑(Wins in that tournament)

The second running score is called the Sum of Opponent’s Score, also referred to as SOS, takes into account the Number of Wins of all the opponents that a specific player has previously played against. The SOS is calculated using the following formula:

Sum of Opponents’ Score (SOS) = ∑(Past Opponents’ current NBW)

The third and last running score is the Sum of Opponents’ Sum of Opponents’ Score, also referred to as SOSOS, takes into account the Sum of Opponents’ Score of all the opponents that a specific player has previously played against. The SOSOS is calculated using the following formula:

Sum of Opponents’ Sum of Opponents’ Score (SOSOS) = ∑(Past Opponents’ current SOS)

The Dutch Swiss System, lastly has three different pairing algorithms that can be followed to pair a list of players. These are as follows:

TeamBFF Technical Complexity 2.jpg



Coming to the implementation of the Dutch Swiss System, For each round there is a list of players referred to as the pairable pool of players. Pairable can be defined as those who are present for the round. Now we take this list of players and we sort the players according to their strength. In this caser, defined by their NBW, SOS and SOSOS. If there is an odd number of players in this list one of the weakest players will be selected as the bye player. We will go indepth into the bye player selection, after this. Now, based on the NBW, the players are divided into groups. That is to say that players with the same NBW would belong to the same group. After the division is done, the list would be sent to the respective pairing algorithm to pair the players.

TeamBFF Technical Complexity 3.jpg



Let’s take a look at the bye player selection process. The objective is to find a player from the pairable pool who is the weakest and has not been a bye player previously. Let there be n different NBW scores and thereby, n different groups of players. We begin by extracting the list of players in the lowest NBW group, referred to as L1. If there is a single player in that list who hasn’t been a bye player previously, we choose that player as the bye player, and this is the simplest path. If however, there are more than one players in the NBW group, we can say that there are m different SOS scores for the n different players in the specific list L1. We then extract the players in the lowest SOS group, into a list called L2. If there are more than one players in that list, we can say that there are p different players in the specific list L2. We then extract the lowest SOSOS group, into a list called L3. If there are more than one players in the group then we select a player randomly. Upon selecting a player as the bye player, we then check if the player has been a bye player previously. If not, we simply select that player as the bye player. If yes, we move onto the next random player or we increment k, j, or i until we reach p, m or n while in pursuit of the bye player for that specific round. This is the worst case scenario.

TeamBFF Technical Complexity 4.jpg



The three different paring algorithms as previously mentioned are Split and Fold, Split and Slide and Split and Random.

Split and Fold
The split and fold pairing algorithm takes an NBW group and splits the group into a stronger half and a weaker half. The weaker half is then flipped or reversed so that the pairing takes place as strongest to weakest within the same NBW group. This pairing aims at getting the strongest players reaching the last rounds, postponing the most exciting games until the end of the tournament. This is also referred to as slaughter pairings.

Split and Slide
The split and slide pairing algorithm takes an NBW group and splits the group into a stronger and a weaker half. The weaker half is then used in order to pair the strongest of the stronger group with the weakest of the weaker group. This method, like the split and fold method, aims to have the strongest players play each other in later rounds, to produce exciting games at the end of the tournament, but tries to avoid the disadvantage of giving the top players a bad SOS due to their first round pairing. Therefore, Slide pairings are especially popular in the first round of Swiss tournaments

Split and Random
The split and random pairing algorithm takes an NBW group and chooses the pairs within each group randomly. This method is the only option available when it is impossible, or undesirable, to make a prior sorting of the players by strength.

TeamBFF Technical Complexity 5.jpg



It is important to note that two players cannot meet each other in a tournament more than once. Additionally, if two players are from the same team, same country or same school/club, they are not to meet within a tournament.
Exception cases
In the case that an NBW group has an odd number of players, there is a need to find a pairing for him or her within another NBW group. While the easiest option would be to find another NBW group which has an odd number of players and pair these two players with each other, it isn’t feasible as then we would be pairing players without taking into account their strength. Therefore, instead, we would be taking the weakest player of the NBW group (Amy) and pairing them with the next group based on the NBW, wherein the group gap criteria is taken into account to ensure that the difference between the groups’ NBW is not greater than an admin defined value (eg. 2). Additionally, the player from the next group (Mia, Pam or Zoe) is again chosen according to the admin’s defined criteria of top middle or bottom of the next group.

Secondly, if player A (Lew) has been paired with all players in his NBW group, there will be a need to find another player to pair with Lew, outside of the NBW group. In this case, we select a player from the next NBW group chosen to be within the Group Gap criteria, to replace the weakest player in Lew’s NBW group. The replacement will have to adhere to the rules – not paired with Lew before, not from same school/team/club/country. Once the replacement is made, we conduct pairing as per normal.

TeamBFF Technical Complexity 6.jpg


Quality of Product

Intermediate Deliverables

deployment minutes metrics risk management change management project overview diagrams prototype testing document
TeamBFF arrow.png TeamBFF minutes.png TeamBFF metrics.png TeamBFF risk.png TeamBFF Change.png https://wiki.smu.edu.sg/is480/IS480_Team_wiki%3A_2017T1_Team_BFFs_Project_Overview https://wiki.smu.edu.sg/is480/IS480_Team_wiki%3A_2017T1_TeamBFF_Diagrams https://wiki.smu.edu.sg/is480/IS480_Team_wiki%3A_2017T1_TeamBFF_Prototype TeamBFF Testing.png


Tournaments Supported

As a team, Team BFFs supported in 4 weiqi tournaments throughout our FYP journeys. The tournaments are all organised by our sponsor, Singapore Weiqi Association.


19th Yan Huang Cup World Chinese Weiqi Invitational Tournament



Brief Description

Annual prestigious Weiqi tournament held in Singapore international players to play against the best in Singapore. The competition involved more than 100 delegates from all over China and Southeast Asia networking and sparring with each other.

Tournament Details

Venue: Day 1 - Singapore Weiqi Association (City), 116 Middle Road, ICB Enterprise House #03-04, 188972, Day 2 – One Farrer Hotel and Spa, Level 6, Ballroom One
Date:2, 3 September 2017, Saturday and Sunday
Time:9.00am
Duration:9 Hours each day
Number of Participants: ~100
Participants roles: Judge and Game Organizer

Objectives

To function as a back up to OpenGotha. While Singapore Weiqi Association was running the tournament, our team was working behind the scenes with the new Tournament website, running the tournament on the website concurrently, making sure that the pairing logic is similar to OpenGotha.

Scope of Yan Huang Cup Tournament

  • Generate Pairings
  • Judge Functions

Summary of day 1

The team arrived at the Bugis Clubhouse at 8:00am to set up the system. We were shown to a corner of the room where there was a table for us to operate our website. After the start of round 1, we requested to be shifted into a classroom as we did not require being in the tournament room. After shifting into the classroom, we operated on our website after receiving the hardcopy results from the game organisers. Several pairing logic bugs were found and work on immediately on the spot, additionally, some bugs ceased operation of the website. The team fixed the major bugs on the spot and left some low priority bugs to be completed before the next day. The team left after the generation of pairing of the last round at 5:00pm.

Summary of day 2

The team arrived at One Farrer Hotel at 8:00am to set up the system. The team was given a table at the side of the function room. From the table, we operated the Tournament website. Coming back from the bugs experienced the previous day, the team was determined to keep up with OpenGotha’s pairing and run the tournament concurrently. More low to mid priority bugs were found and were fixed on the spot. The team got to understand first hand on how a tournament was run and certain norms that game organisers were used to was good to know when designing the remaining of the tournament website in terms of UI/UX (eg. Standings View). The tournament website was able to keep up was OpenGotha in the end by adjusting values in the database however, there was much to improve on. The team left when the tournament concluded at 5:00pm.

Conclusion

Being our first ever Weiqi tournament, Team BFFs learned a lot from Yan Huang Cup in terms of pairing logic and the way that our sponsors conduct tournaments. It was crucial for Team BFFs to attend the tournament and run the tournament website concurrently with their old system to effectively identify the bugs that would have been missed out during normal testing. Overall, while the tournament website experience some major bugs along the way that stopped the team from continuing, quick debugging from the team enabled the website to follow the tournament’s pace and the tournament ensured a huge and much needed improvement website.


The 17th National Whampoa Cup



Brief Description

Local tournament with 5 different groups running concurrently. Category A – High Dan* Category B – Low Dan Category C – High Kyu* Category D – Low Kyu Category E – Primary School

  • Dan and Kyu are name of ranks.

Tournament Details

Venue: Day 1 and 2 – Whampoa Community Club Multi-Purpose Hall
Date:9, 10 September 2017, Saturday and Sunday
Time:9.00am
Duration:9 Hours each day
Number of Participants: ~250 Participants
Participants roles: Players, Judge and Game Organizer

Objectives

  • To transit to use the Tournament website for the entire tournament organising process starting from Player Registration, while using OpenGotha as backup.
  • To allow players and judges to have a first-hand feel of the tournament website by interacting with the judge function.

Scope of Whampoa Cup Tournament

  • Player Registration
  • Generate Pairings
  • Judge Functions

Summary of day 1

The team arrived at Whampoa Community Club (CC) Multi-Purpose Hall at 8:00am. The team was given a table on stage for us to operate our website. The stage was where all the game organisers and admin would be stationed to operate the website. The team arrived an hour earlier than the start of the tournament to brief the game organisers and the judges on how the system works and how we will be there to assist the organising of the tournament. The judges and game organisers felt that the website was easy to use and this gave the team much confidence. As the tournament began, the team would follow the judges with their iPads and tablets to assist in the judging feature. Unfortunately, some bugs were detected with missing names when generating pairings, but quick fixes by the team enabled the website to run smoothly again. The players that interacted with the judge feature were impressed at the new system and was curious as to what other functions could be done using the website. Day 1 ended after round 3 of the tournaments groups with the remaining 3 rounds to be played on the following day.

Summary of day 2

Similarly as the day before, the team arrived at Whampoa Community Club (CC) Multi-Purpose Hall at 8:00am and stationed ourselves on the stage. The tournament restarted at the round 4 mark and the website continued to function as it should. Additional bugs were identified but were not major enough to cease operations of the website. OpenGotha on the other hand struggled to keep up with the pace of the website due to the ability of the system to generate pairing immediately after all matches have been judge. The website continued to receive praises from all stakeholders. The VP of Singapore Weiqi Association was particularly impressed and was excited to use the website for future tournaments.

Conclusion

Having improved our website substantially since a week’s ago Yan Huang Cup, Whampoa Cup was a huge success with the functions that we tested. Although we experienced minor bugs along the way, they were easily rectified and the operations of the website was a success, making the game organising process much more efficient. It was also great to receive positive feedback all the various stakeholders which encouraged the team to build the confidence of the users to continue delivering a great product.


Go! Go! Beginners! Cup



Brief Description

A local tournament for beginners that have just learned Weiqi. Group A – Intermediate (Started learning Go/Weiqi from 17 December 2016 onwards (With Verification) or Currently attending or completed Intermediate course. Group B – Fundamental/Elementary (Started learning Go/Weiqi from 17 April 2017 onwards (With Verification) Currently attending or completed Fundamental or elementary course)

Tournament Details

Venue: Singapore Weiqi Association (City), 116 Middle Road, ICB Enterprise House #03-04, 188972
Date:18 October 2017, Wednesday (Public Holiday: Deepavali)
Time:12pm
Duration:5 Hours
Number of Participants: ~100 Participants
Participants roles: Players, Judge and Game Organizer

Objectives

  • To use the Tournament website for the entire tournament organising process starting from Player Registration, while using OpenGotha as backup.
  • To allow players and judges to have a first-hand feel of the tournament website by interacting with the judge function
  • To allow players (and parents) to log into their account to view their pairings and live results

Scope of Go! Go! Beginners! Cup Tournament

  • All functions of tournament website

Summary of tournament

The team arrived at the Bugis Clubhouse at 11:00am. The team was given a table in the tournament room. Before parents and players came in, the team prepared with our sponsor in the first hour by ensuring that all names have been properly registered into the website. Starting from round 1, pairings were posted online for players (and parents) to view. Additionally, with the function of printing the pairings list, the list was pinned up for players and parents who are more comfortable with the old process. Unexpectedly, both parents and players approached us to give us feedback on the website view. Majority of the feedback from parents and players were positive with several of them giving feedback to improve the UI of the mobile interface. Parents enjoyed using their Singapore Weiqi Association log in to view the pairings instead of crowding around the pinned up pairing list. The team faced a mid-priority bug where a few names on the website was missing when generating pairing. The issue was identified to be due to the case sensitivity of some players’ name and username that made them undiscoverable by the system. The team implemented a quick fix by lowercasing the username/name in the database which allowed the system to operate as per normal. The website ran the tournament smoothly, and the team left the clubhouse after the end of the tournament at 5pm.

Conclusion

Prior to the tournament, the team was motivated to operate a bug-free system. Unfortunately, the team still did encounter some minor bugs in this tournament that were quickly fixed on the spot. Overall, the website was a success in running the tournament. This tournament was important in receiving the feedback from a special stakeholder – parents. Understanding the needs and feedback from parents is very important for the success of the website and from this tournament, we gained useful information on how to further improve the UI/UX for all users.


5th “Zong Xiang Cup” National Weiqi Championships 2017



Brief Description

The annual local tournament for all ages with 8 different groups for different age groups. Group A- Open Group B- Secondary Group C- P6 Group D- P5 Group E- P4 Group F- P3 Group G- P2 Group H- P1

Tournament Details

Venue: Singapore Federation of Chinese Clan Association Main Hall
Date:12 November 2017, Sunday
Time:8am
Duration:13 Hours
Number of Participants: ~300 Participants
Participants roles: Players, Judge and Game Organizer

Objectives

  • To smoothly run the tournament for all 8 groups with game organisers and judges using our system independently
  • To gather concrete feedback of the tournament website through the use of a survey

Scope of Zong Xiang Cup Tournament

  • All functions of tournament website

Summary of tournament

The team arrived at the SFCCA Main Hall at 7:30am. The team was given a table on the main hall stage, where all game organisers are stationed. The day started with the team briefing the game organisers and judges on the features and simple instructions before the players and parents started flocking in. There was a sense of confidence and excitement to use the website among the game organisers and judges. The team mentioned that we will not be operating the system today, but instead the game organisers were to take charge of today’s tournament. This was part of the handover process. Additionally, having had a user training with the game organisers and judges previously, we were confident that the Singapore Weiqi Association personnel were well equipped to use the website. The website was a huge success, being able to run the tournament smoothly without any bugs. The game organisers felt that it was a breeze having to organise the tournament and the judges did not make any human errors when judging. The team, on the other hand, was on standby to act upon any bugs. Fortunately, there were no bugs that surfaced and instead, the team spent their time going around the tournament hall surveying parents, players, judges and game organisers on their impression of the new tournament website. The tournament with 8 groups ended after 13 grueling hours and the team left the SFCCA Main Hall at 6:00pm.

Conclusion

The team went into this tournament knowing that this would be the last tournament before handing over the project to Singapore Weiqi Association. We wanted to make sure that the sponsors were confident of organising the tournament using the website independently and thus we merely provided support and did not touch the system ourselves. It was a huge challenge especially since this tournament was the biggest tournament thus far in terms of scale. Fortunately, the tournament was a huge success with the website being able to run the entire tournament with 8 different groups smoothly. The feedback that we received during the tournament was hugely positive and the team is glad that all our efforts paid off. The team will still continue to work on further improvements before handing over to Singapore Weiqi Association.

Sponsors' Evaluation

TeamBFF SponsorTestimonial.jpg

Reflections

TeamBFF LearningOutcomesFinals.jpg