IS480 Team wiki: 2013T2 GENShYFT Project Overview scope

From IS480
Jump to navigation Jump to search

GENShYFT IS480 1314 Logo.jpg

Home   Project Overview   Project Management   Documentation   The Team

Home   Description   Motivation   Scope   Stakeholders

Priority Scope Circle

  • The following naming of these features follows strictly to our client's requirement document.

We have ranked the features that we need to complete in the diagram below. (Primary-Most Important, Secondary-Relatively Important, Tertiary-Least Important)

UPDATE 17/1: Client wanted Events to be pushed to primary function as it is a platform where people would be able to indicate that they can join Tournaments

UPDATE 4/3: Client agreed to drop Easy Web Prototyping and Problem Contribution and made changes to the Web Development Games feature (Called 'Easy Web Dev')

GENSHYFT IS480 SPCircle9.png

Existing vs. New Features

The following diagram highlights which are the features we are building from scratch and the ones that we are building on top of an existing feature.

GENSHYFT IS480 existingCurrentFeature1.png


  • The following naming of these features follows strictly to our client's requirement document.

Click here to download a detailed version of features: Mastery-based Coaching, Purpose driven development, Group Tournament, Automatic Mentor Assignment and Events Registration: File:Requirementgathering GENSHYFT 1.1.pdf

Registration & Tracking (Customised Experience for Singapore Students)

View Prototype

  1. Create a page that students in Singapore can use to provide information on where they are going to school and when they started that school.
    1. Students may end up listing three schools (secondary, JC, University)
    2. Students can verify that they are students, what school they go to and when they expect to graduate.

  2. Create a map of Singapore that depicts the location of every school in Singapore.
    1. Show the number of students registered from each school when hovering over or clicking on a school.
    2. Enable the ability to see students participation and penetration (%) by year. Of the 1200 students that started RP in 2012, 120 have played SingPath and registered as having started RP in 2012. This is a 10% penetration rate.
    3. Provide a way to select JC, Poly, University, and Secondary schools or only show a subset of these by deselecting one of the categories.
    4. Provide a way to select the past 1, 2, 3, 4, 5, 6, 7, 8, 9, or 10 starting years or any combination. For instance, how many SMU students from 2011 and 2012 played and registered? How many NYP students from 2010 or  2011 have played or registered.
    5. Enable the selection of gender to see the female only or male only numbers
    6. Provide an alternate table view of the same data to rank schools by number of registered users, registered faculty, penetration percentage, etc.

  3. Create the Awesome Student Developer top 40 ranking for each school and an aggregated ranking for the top 50 secondary, JC, Poly, and University students to highlight Singapore’s awesome student developers.

  4. Create a ranking of the top Singapore players that have not specified their schools. This will enable SingPath to send them an email asking them to register their school or their status as a professional.  

Mastery-based Coaching

View Paper Prototype
The main purpose of this feature is to encourage users to re-solve the questions they have attempted under Practice so that they can improve the number of attempts and the amount of time they took to solve the question. Users will be able to select a coach to motivate them through the levels, with respect to the language they choose. This is to stress extrinsic motivation to the users

A. Landing Page

  1. Select Coach
First time users would select one of the 4 following coaches:
  1. Shannon - Encourage that wants you to be ready to code with your friends
  2. Sandra- Recruiter that wants you to be ready for your interview
  3. Zandar- Hacker that wants you to be more awesome
  4. Sergeant Major - Wants you to quit before you get someone killed
Once user selects the coach he or she wants to improve his coding ability with, he will proceed to the next step which is to select the language he wants to improve on. However, if the user has already used this feature in a previous session and navigates to this feature again, the default coach would be the coach he or she had selected previously. If the experienced user will like to change his or her coach, he or she can click on the option “Change Mentor”. This option will appear on the landing page.
  1. Select Path
Once user selects a coach, user will select the coding path they want to improve on. The coding paths will be named after the coding languages on Practice feature: Java, JavaScript, Python, R Path and Ruby. After the user has selected the path, a coaching session will be launched
However, if the user has already used this feature in a previous session and navigates to this feature again, the default language would be the language he or she had selected previously. If the experienced user will like to change the coding language, he or she can click on the option “Change Language”. This option will appear on the landing page.

B. Play Page

  1. Display Coach Details
Once the user launches a coach session, the page will look similar to the current Practice page (below)
Instead of ‘Path Name’, ‘Level’ and ‘Difficulty’ in the text box on the right (circled in red), there will be a picture of the coach the user selects. Official pictures will be provided by the client. It will be preferable if the image was in .gif format so that the user will not feel bored looking at a static image. In this text box, there will also be a media file that will play the coach’s audio. User will be able to play or mute the volume of the audio file. There will also be a transcript of what the coach said in the audio file in the text box
  1. Coach Audio Files
Client will provide the official audio files. Until the audio files are available, team will be responsible to create relevant dummy audio files. The audio files will be specific to the following conditions:
  1. Before the start of the first level (First time user)
  2. Before the start of the first level (experienced user)
  3. Before the start of subsequent levels (for both first time users and experienced users:
  1. When user runs the question (the audio file will be played after he solved the previous question correctly)
  2. When compiling the solution
  3. When user runs the question but he/she is wrong
  4. When user skips a question (the audio file will be played when the new question appears in the next page)
  5. When user has not typed anything for 30 seconds
  6. When user has completed the last level

Purpose-driven Coding Survey

View Paper Prototype
The main objective of purpose-driven coding is to motivate users to continue coding and cultivate it into a daily habit. There will be a collection of 10 videos which will be given by our client. Players will watch and complete the survey question that is accompanied with each video. The survey is to provide feedback to the client on how well the video's message aligns with the players' own interests. This feature will be called ‘Purpose’ which will appear on the navigation bar above and it is only enabled after the user has completed a certain number of level/badges on the Practice page.
A. Landing Page

  1. Select Video
When the user selects ‘Purpose’, the user will be prompted to select a video from a series of videos. Once they select the video, they will be brought to a page that displays a screenshot of the video, accompanied with a short description of the video. If the ’Play’ button appears, the user would be able to view the video. If there is no ‘Play’ button, this means the video is locked and the user would need to watch the previous videos to unlock the video.

B. Play Selected Video Page

  1. Play Unlocked Video
If the user clicks the Play button, user will be brought to another page to watch the video. There will be a horizontal gallery of the 10 videos, below the survey. The videos that are locked will have a lock symbol and the ones that are unlocked would have a thumbnail of a screenshot of the video.
  1. Complete Survey
If user wants to unlock the subsequent video, the user needs to click an option that displays the survey question like ‘How does this video make you feel?.’ The user will be presented with 5 radio button options such as ‘Really Good’, ‘Somewhat Good’, ‘No Comments’, ‘Don’t like it’ and ‘Hate it’.
  1. Unlock a Locked Video
Once the user selects a radio button and clicks 'Next' to unlock the next video, there will be a pop-up confirmation message that the next video is unlocked. If the user does not select a radio button, he or she will not be able to click the ‘Next’ button to progress to the next video.

Group-based Tournament (Faculty-focused Features)

View Paper Prototype
The purpose of group tournaments is to create an environment where students will help not only their friends within their group but also their fellow peers who are participating in the same tournament. This is to cultivate a learning culture more than a competitive one.
A. Tournament Creation

  1. Landing Page
User will click the ‘Create Tournament’ option on the ‘My Tournaments’ page. This page will have all the tournaments that the user has created.
  1. Create Tournament Page
Anyone can create a tournament. User will then key in details such as title, description of the tournament, password and type of tournament (individual or group).
If user selects ‘Group’ tournament, user will need to specify the number of groups and the maximum number of players per group. User is also given the option to enable a checkbox, ‘Mentor Assignment within team’. This falls under Automatic Mentor Assignment (explained under part e). Individual tournament is client’s feature.
User also has the option to decide how many rounds in a tournament and the number of questions for each round based on the language and difficulty level. Similarly, user will be able to delete the questions and the rounds if they wish to. User can also set the status of the tournament. Once they have created, the default status would be ‘pending’ (yet to activate the tournament). The tournament is not allowed to be active if no members have joined the tournament. Moreover, the tournament can only be active if only all members are in a group and no group has more than the stipulated maximum number of members.
Once all the details are filled in, user click ‘Create’ to create the tournament. User must fill in all the fields in order to create the tournament.

B. Manage Tournament

  1. Landing Page
User will go back to ‘My Tournament’ page to edit the tournaments they created.
  1. Edit Tournament Details Page
Once user clicks ‘Manage’ on any of the tournaments, he or she will be directed to a page similar to the create tournament page except all the fields they have previously entered is displayed, not blank. Hence, he or she is allowed to edit the fields. In the case of group tournaments, user would be able to remove participants and also add them to groups who have insufficient team members.
If user wants to activate the tournament which means to start the tournament, they can click the activate button. Once user activates the tournament, there will be a countdown timer that would be displayed likewise on the participants’ screens. After the countdown timer is over, the user will be directed to the live ranking page which will be explained later in part D.

C. Join Tournament

  1. Landing Page
This page will be catered to the participants. There will be a list of active tournaments, both open and closed ones.
  1. Join Team
If user joins an open group tournament, they will be directed to a page that displays the information of the tournament like the title, coding language, the number of questions, registered users without a team and groups that the user can join for the tournament. The ‘Join Team’ button will only appear for teams that are not full yet. After the user joins team, the page will be refreshed and their name will appear under the team. At the same time, user can leave team as well.

D. Live Ranking

  1. Landing Page
The one who created the tournament will be directed to the live ranking page which displays the ranking of the group, rank within the group, player’s name, individual ranking, questions completed, whom they are assigned to or mentored by, with respect to the round they are currently in. This page will be updated live and if user wants to end the tournament, there will be a ‘End Tournament’ button at the bottom.

Automatic Mentor Assignment

View Paper Prototype
The purpose of this feature is to encourage an environment where participants help their peers out by teaching them how to solve the questions they are stuck on, and not a competitive one. This feature is only enabled if the admin of the tournament enabled the "Mentor Assignment" check box
Landing Page(Mentor View)

The live ranking page will be inclusive of this feature. Once the first player completes the last question, he will be greeted with a congratulatory message (where the question usually appears). In the textbox on the right, where there are details such as progress of number of questions completed, round number, and current rank(in team), there will be two fields called “Assigned To” and “Mentored By”. Hence, when the user completes his last question, he or she will be assigned to his or her group member who currently posses the lowest inter-team ranking.

Landing Page(Mentee View)

The landing page will be the same as the mentor page, as explained earlier. However, the mentee will see ‘Pending’ under the field “Mentored By: “. This means the mentee has been assigned a mentor. Once the mentor has physically arrived to the mentee’s location, the mentee will click the ‘Pending’ status which will change to ‘Arrived’.

Web Development Games

  1. Support HTML, CSS, Javascript, and Angular problems to help student learn how to quickly prototype their own mobile web apps. Rather than writing python or Java code, you build a simple web page that passes an E2E test.

Easy Web Prototyping

  1. Requested feature by schools. Provide and easy way for student to collaboratively develop a GUI for a new application idea. The idea to to implement the simplest, single-page Plunkr code possible. Just save the text that people put in one box and insert it into an iFrame that renders it as a web page.


This feature is important for SingPath as it is a platform where tournament events can be posted and see the number of people who will be attending.

A. Landing Page
The title of the tournaments will be displayed, along with the description and registration status. The registration status is dependent on the options the user clicks which are:
  1. ‘I’d like to participate – The user will be registered for the event as participant
  2. ‘I’d like to come watch’ –The user will be registered as visitor
  3. ‘Keep me posted’ – Event details will be emailed to the user
  4. ‘+1’- The user clicks this to ‘like’ the event
If user is not logged in to SingPath and he or she tries to access the Events page via clicking ‘Upcoming Events’, there will be a pop-up message prompting the user to login first to register for the respective event.


  • The following naming of these features follows strictly to our client's requirement document.

Problem Contribution

  1. SingPath will provide players with a list of levels where additional easy, medium, or hard problems are needed.
    1. Enable players to click on a contribution option and begin editing a new problem to contribute.
    2. Enable the path editor and admin to accept problems into a level or reject the contributed problems with feedback

Predictive Analytics

  1. School Prediction
    1. Based on access times, locations, challenges, tournaments, and content attempted and the school selections of similar players; predict the school that someone is from with some level of confidence.
    2. Create a ranked list by confidence of players that have not declared their school but are likely to be in a school based on the data.
  2. Provide a screen to show how well SingPath is predicting the time and attempts of solve attempts by players Show the current accuracy by path and/or level
  • Currently the team is looking at using applied-regression to make prediction base on similarity score.


  • The following naming of these features follows strictly to our client's requirement document.

Customized Path

  1. Enable JC, Poly, and university instructors to specify if their new paths or stories should only be viewable by students of a particular school. Then when students register for this school, they will see the paths and stories in their lists.

Live code viewing

  1. Realtime tournament leader code view for the audience based on AngularFire library and Firebase.

Viral Loop Tracking

  1. What are the items that students or faculty are most likely to share that lead to other students clicking on them, playing SingPath, and eventually registering their current and past school affiliations?

Churn Analytics

  1. Show which problems are likely to be the last problem a player attempts before never returning to SingPath. (Which problems make people leave?)
  2. Show the problems least likely to be the last problem a player ever solves.

Tournament Round Prediction

  1. When an instructor is creating a tournament round, predict how long the tournament round will take for the first, second, and third quartile to complete. Base predictions on previous tournament participants.
  2. Update the tournament predictions as players sign-in to the current tournament.

Global activity map view

  1. Where are people currently playing?
  2. Where did people access from over the past 24 hours?
  3. Where are the problem contributors coming from?