HeaderSIS.jpg

Difference between revisions of "GenSHYFT Mid Term Wiki"

From IS480
Jump to navigation Jump to search
 
(165 intermediate revisions by 4 users not shown)
Line 27: Line 27:
 
==Project Progress Summary==
 
==Project Progress Summary==
  
Place your Final slides link and deployed site link here
+
Deployed Site Link: [http://www.singpath.com Actual Site|<b> View Site </b>] <br/>
 +
Mid-Term Slides:  [[Media:GENShYFT_MidTerm_Slides_2.pdf|Mid Term Slides]]
 +
<!--Place your Final slides link and deployed site link here-->
  
For proposal, please see Requrements at the Project Deliverables. This will help us understand your scope. Note wiki policy [[Help:Contents|here]].
+
<!--For proposal, please see Requrements at the Project Deliverables. This will help us understand your scope. Note wiki policy [[Help:Contents|here]].
  
 
This page should NOT be too long. It should link to other pages in the IS480 team wiki. Do not repeat the proposal, midterm or other wiki information here. Highlight changes since [[IS480_Midterm_Wiki | midterm]].
 
This page should NOT be too long. It should link to other pages in the IS480 team wiki. Do not repeat the proposal, midterm or other wiki information here. Highlight changes since [[IS480_Midterm_Wiki | midterm]].
  
Describe the project progress briefly here. Is the project completed? Link to the final presentation slides and videos.
+
Describe the project progress briefly here. Is the project completed? Link to the final presentation slides and videos.-->
 +
 
 +
===Project Highlights===
 +
====Changes in Scope====
 +
 
 +
 
 +
<center>
 +
{| class="wikitable"
 +
|-
 +
! Actual !! Planned
 +
|-
 +
| [[Image:GENSHYFT_IS480_SPCircle7.png|475px]] ||[[Image:Genshyft acceptance scope.jpg|600px]]
 +
|}
 +
</center>
 +
 
 +
====Changes in Requirements ====
  
===Project Highlights:===
 
What unexpected events occurred and how were they handled?
 
*A team member left the project and dropped the course
 
*List of requirement changes
 
** CRUD items replaced with CU/Sync/Archive items
 
** Business analytics replaced with iPad client
 
*Took 8 weeks to learn Ruby on Rails
 
*etc.
 
Be brief. A couple of sentences on the event and another couple on what was done is sufficient. Do not repeat the next sub sections. If there are no highlights, remove this section
 
  
 
{| border="1"
 
{| border="1"
Line 53: Line 61:
 
|-
 
|-
  
 +
|- style="background:silver; color:black"
 +
|| Registration & Tracking
 +
|| Map that allows user to see the number of players registered with respect to each school. 
 +
|| Added to scope, event ranking for event, display the people who have done mastery based coaching and purpose driven, badges, Events map, badges and levels completed.
 +
|| This requirement change will be taken into consideration after mid-terms as this requirement is recent (9/2) and team has yet to finish up the minimum requirements
 +
|-
 +
 +
|-style="background:white; color:black"
 +
|| Mastery-based Coaching
 +
|| Users would be able to resolve questions that they solved below their average performance in the past
 +
|| User should redo any question that they have attempted before on the Practice page
 +
|| This change was implemented as it was still early in the development process.
 +
|-
 +
 +
|-style="background:silver; color:black"
 +
|| Mastery-based Coaching
 +
||
 +
Client will provide audio files and text captions for the Coaches
 +
||
 +
Client requested team to do up the audio files and text captions for the Coaches either personally or engage in professional services.
 +
||
 +
Team decided to do the files up personally instead as it would take longer time if it was done by professionals. This change was implemented as client did not have materials ready yet.
 +
|-
 +
 +
|| Mastery-based Coaching
 +
||
 +
Pictures of mentors will be images
 +
||
 +
Pictures of mentors in animated GIF format
 +
||
 +
This feature was taken into consideration as this was UI fix but requirement change was not of high importance
 +
|-
 +
 +
|-style="background:silver; color:black"
 +
|| Mastery-based Coaching
 +
||
 +
On landing page, player select mentor, language and difficulty. Player will select as such for each Mastery coaching session.
 +
||
 +
On landing page, player only selects mentor and language. User does not need to select the difficulty.<br>
 +
If user has played a Mastery coaching session before, previously selected mentor and language will be the default mentor and language. Have the option "Continue", "Change Mentor" and "Change Language" for existing users of Mastery coaching.
 +
||
 +
This feature was taken into consideration as team was in the midst of developing this feature and it was of utmost priority since client wanted to show it to RP and IDA
 +
|-
 +
 +
|| Mastery-based Coaching
 +
||
 +
This option did not exist when signing off prototype [https://wiki.smu.edu.sg/is480/IS480_Team_wiki:_2013T2_GENShYFT_Documentation_proto#Mastery_Based_Coaching View Paper Prototype]
 +
||
 +
Client wants an admin page for Mastery-based coaching
 +
||
 +
This feature was not taken into consideration as team tried to develop it and realise feature is too complex to implement.
 +
|-
  
|- style="background:white; color:black"
+
|-style="background:silver; color:black"
|| Purpose Driven  
+
|| Mastery-based Coaching
|| Gathering New Requirements
+
||
|| Test
+
When user starts the Mastery coaching session, user will be starting a new session
|| Test2
+
||
 +
For each question,a new Mastery coaching session is launched.
 +
||
 +
This requirement change will be taken into consideration after mid-terms as this requirement is recent (9/2) and team has yet to finish up the minimum requirements
 +
|-
 +
 
 +
|| Purpose Driven Development
 +
|| UI discussed as such in prototype [https://wiki.smu.edu.sg/is480/IS480_Team_wiki:_2013T2_GENShYFT_Documentation_proto#Purpose-Driven_Video View Paper Prototype]
 +
||
 +
UI changed after prototyping, client changed position of video and feedback. The buttons for the options to answer the feedback has been changed from slider to radio button and as of recent (9/2) normal button.
 +
||This change was implemented as it was mostly a UI issue.
 +
|-
 +
 
 +
|-style="background:silver; color:black"
 +
|| Purpose Driven Development
 +
||
 +
This option did not exist when signing off prototype
 +
||
 +
Client wants a video gallery below (on the page that the user is viewing the video). It would indicate which videos are locked and unlocked. This translated into a change in the data structure.
 +
||
 +
This change is implemented because team assessed the requirement change and realised it would make sense for the video gallery to appear so that player knows the videos he has unlocked so far.
 +
|-
 +
 
 +
|| Purpose Driven Development
 +
||
 +
No Admin page was discussed during the paper prototype sign off 
 +
||
 +
Client wants an Admin page where he can manage the videos to upload on the Purpose page. He wants to be able to copy and paste the link, description of the video, survey question for each video and thumbnail image of the video.
 +
||
 +
This feature was taken into consideration as team tried to develop it and realised feature is not too complex to implement
 +
|-
 +
 
 +
|-style="background:silver; color:black"
 +
|| Purpose Driven Development
 +
||
 +
Client wanted to have a landing page where user can select unlocked to video to watch.
 +
||
 +
Client does not want a landing page. He wants an indication on the video gallery which was the last watched video. This would result in a change in data structure
 +
||
 +
This requirement change will be taken into consideration after mid-terms as this requirement is recent (9/2) and team has yet to finish up the minimum requirements
 +
|-
 +
 
 +
|| Group-based Tournament
 +
||
 +
Team could use client's existing data structure for Tournament.
 +
||
 +
Client wants team to create a new heat so that tournament game information is not attached to the rounds but to the heat instead.
 +
||
 +
Taken into consideration. Did not affect team's development progress.
 +
|-
 +
 
 +
|-style="background:silver; color:black"
 +
|| Group-based Tournament
 +
||
 +
Team could use client's existing data structure for Tournament.
 +
||
 +
Client wants team to create a new heat so that tournament game information is not attached to the rounds but to the heat instead.
 +
||
 +
Taken into consideration. Did not affect team's development progress to a large extent.
 +
|-
 +
 
 +
 
 +
|| Group-based Tournament
 +
||
 +
Tournament feature (existing) used to make calls to different APIs
 +
||
 +
Tournament feature now called to one API which the team created.
 +
||
 +
Taken into consideration. This did not affect team's development progress to a large extent and team thought it was wise to have this feature call to one API
 +
|-
 +
 
 +
|-style="background:silver; color:black"
 +
|| Group-based Tournament - Create Tournament
 +
||
 +
Team discussed with client regarding the UI of this page using paper prototypes
 +
||
 +
Client wants team to follow the page layout of an older version of SingPath
 +
||  
 +
Team first attempted Client's suggestion and realised it was possible to implement this change as it focused more on UI
 +
|-
 +
 
 +
|| Group-based Tournament - Live Ranking
 +
||  
 +
'Country' field on the live ranking page
 +
||
 +
Remove 'country' field and add 'last solved time'
 +
||
 +
This requirement change will be taken into consideration after mid-terms as this requirement is recent (9/2) and team has yet to finish up the minimum requirements
 +
|-
 +
 
 +
|-style="background:silver; color:black"
 +
|| Events Registration
 +
|| SingPath users would be able to request for an event by SingPath, Sponsorship Collaboration or Donate to SingPath. (Initially secondary feature)
 +
||
 +
Client wants Events to be where users would be able to sign up for a tournament.
 +
||
 +
This affected manpower allocation to a large extent. <br/>
 +
Team reviewed requirement change and realised it is a vital feature if users need platform to sign up for tournament. <br/>
 +
Allocated team member who was assisting with developing back-end APIs to develop this feature. <br/><br/>
 +
'' * This feature was added right before acceptance presentation - not included in the acceptance proposal '' <br/>
 +
'' * Secondary feature previously - now primary feature so students can sign up for upcoming tournaments on 21st & 29th March 2014''
 +
|-
 +
 
 +
|| Events Registration
 +
||
 +
Platform for participants to join and database will take note of who has signed up.
 +
||
 +
Include a table that shows the number of students registered, school they are from, who is coming for the event, rank them according to the problems solved,back button to return to Events Registration page, Top 50 with a cutoff line at 40, Facebook share button, highlight current player, always put the current player in the bottom row and if current player is not in top 50, don't show their rank. They should be able to see how many problems they are away from moving ahead of number 50.
 +
||
 +
This requirement change was taken into consideration as team was in the amidst of coding the feature.
 +
|-
 
|}
 
|}
 +
<br/>
  
===Project Challenges:===
+
===Project Challenges===
 
+
==== Challenges in General====
Describe areas of the project that were particularly difficult and how they were dealt with, whether successfully or not. Again, a few sentences are enough. If there are no challenges, remove this section.
+
* New coding language; Team had to learn AngularJS to start developing the features
 +
** No one on the team had prior experience with AngularJS, as such the team spent the December holidays to understand how to develop in AngularJS and this was done in tandem with the development of their assigned features
 +
* Needed to understand and debug some of the existing codes
 +
** This was a bottleneck to some of our features like Mastery-based Coaching; we decided to solve the codes that impacted our development progress
 +
* Meeting Client’s KPI (i.e. Get 80 users to register on SingPath by Feb 22)
 +
** Had to develop an Events Registration page, previously a secondary feature, where students can sign up in order for the team to hit this goal
 +
* Need to understand SingPath Architecture
 +
** Before development started, team needed to understand how their developed features could be pushed to the live website hence a meeting with the client was set-up to have a better insight on this.
 +
* Changing requirements (as seen above)
 +
** Action taken is mentioned in the table above
 +
* Limited access to back-end server
 +
** Team liaised with client whenever team is ready to deploy features on to the live website
 +
<!--Describe areas of the project that were particularly difficult and how they were dealt with, whether successfully or not. Again, a few sentences are enough. If there are no challenges, remove this section.-->
  
 
===Project Achievements:===
 
===Project Achievements:===
 +
[[Image:GENShYFT Mid Term Event Ranking.jpg|thumb|Actual users registered for tournaments]]
 +
* At least <font size=4>'''93'''</font> new users have registered with SingPath and indicated interest in participating in the tournament through our Events Page
 +
* <font size=4>'''70%'''</font> of the project completed
 +
* Completed 6 iterations (out of 10 iterations in total)
 +
* Successfully conducted 1 User Test and 1 Heuristic Evaluation
 +
* Assisted Client with his Research Paper
 +
<br /><br />
  
Methods, technologies, processes, teamwork, etc. which were particularly successful – highlight things which worked very well towards completing the project. A bulleted list of one to two sentences each will do. If there are no achievement, remove this section.
+
<!--Methods, technologies, processes, teamwork, etc. which were particularly successful – highlight things which worked very well towards completing the project. A bulleted list of one to two sentences each will do. If there are no achievement, remove this section.-->
  
 
==Project Management==
 
==Project Management==
  
Provide more details about the status, schedule and the scope of the project. Describe the complexity of the project.
+
* Current Iteration : 7
 +
* Status : Behind Schedule (details as to why below)
 +
<!--Provide more details about the status, schedule and the scope of the project. Describe the complexity of the project.-->
  
===Project Schedule (Plan Vs Actual):===
+
===Project Schedule===
  
Compare the project plan during midterm with the actual work done at this point. Briefly describe a summary here. Everything went as plan, everything has changed and the team is working on a new project with new sponsors or the supervisor is missing. A good source for this section comes from the project weekly report.
+
==== Plan Vs Actual Timeline ====
 +
<center>
 +
 
 +
{| class="wikitable"
 +
|-
 +
! [[IS480_Team_wiki:_2013T2_GENShYFT_Project_Management_Schedule|Actual]]  !! Plan
 +
|-
 +
| [[Image:Genshyft is480 Time line Summary7.1.PNG|700px]] ||[[Image:Genshyft Acceptance timline.jpg|700px]]
 +
|}
 +
</center>
  
Provide a comparison of the plan and  actual schedule. Has the project scope expanded or reduced? You can use the table below or your own gantt charts.
 
  
 
{| border="1"
 
{| border="1"
Line 87: Line 287:
 
|-
 
|-
  
 +
==== Plan Vs Actual by iterations====
  
 
|- style="background:silver; color:black"
 
|- style="background:silver; color:black"
Line 108: Line 309:
 
|- style="background:silver; color:black"
 
|- style="background:silver; color:black"
 
|colspan="5"|  
 
|colspan="5"|  
*Team delay iteration 3 as the team was struggling to code during Near-Exam time.Therefore, Iteration 3 starts After Exams ended.
+
* Team was delayed during iteration 3 as we were revising for finals. Iteration 3 started immediately after finals.
 
|-
 
|-
  
Line 118: Line 319:
 
|| 31st Dec
 
|| 31st Dec
 
||  
 
||  
*Assigned to Project Mananager : Yousof
+
*Assigned to Yousof.
*Both Member originally assigned were away.(Notification only after acceptance).
+
*Member originally assigned was away.(Notification only after acceptance)
 
*Function was client top 3 priority.
 
*Function was client top 3 priority.
 
|-
 
|-
Line 128: Line 329:
 
|| 31st Dec
 
|| 31st Dec
 
||  
 
||  
*Assigned to Business Analyst: Shanaaz
+
*Assigned to Shanaaz.
*Both Member originally assigned were away.(Notification only after acceptance).
+
*Member originally assigned was away.(Notification only after acceptance)
 
*Function was client top 3 priority.
 
*Function was client top 3 priority.
 
|-
 
|-
Line 138: Line 339:
 
|| 31st Dec
 
|| 31st Dec
 
||
 
||
*Assigned to Co - Lead Developer: Glen
+
*Assigned to Glen.
*Both Member originally assigned were away.(Notification only after acceptance).
+
*Member originally assigned was away.(Notification only after acceptance)
 
*Function was client top 3 priority.
 
*Function was client top 3 priority.
 
|-
 
|-
  
 
|colspan="5"|  
 
|colspan="5"|  
*Fariq , Wahchun and Eng Sen were away for December.   
+
*Fariq , Wah Chun and Eng Sen were away for December.   
*Each member had to adapt do 1 function each in parallel in order to meet client's priority.
+
*Each available member had to be in charge of the development of each of the 3 functionalities in parallel in order to meet client's priority.
*Project Manager and Business Analyst had to code otherwise, team is only left with 1 developer,
+
*Project Manager and Business Analyst joined in the development temporarily due to a lack of resources.
 
|-
 
|-
  
Line 152: Line 353:
 
|- style="background:silver; color:black"
 
|- style="background:silver; color:black"
 
|rowspan="5"| 5
 
|rowspan="5"| 5
|| Co-Organized event <br> Hour of Code
+
|| Co-organized event <br> Hour of Code
 
|| 23 Dec  
 
|| 23 Dec  
 
|| Purpose Driven
 
|| Purpose Driven
Line 166: Line 367:
 
|| 15 Jan
 
|| 15 Jan
 
||  
 
||  
*Yousof was reassigned to this as Shanaaz was struggling with Angular.
+
* Yousof was reassigned to this as Shanaaz faced difficulties with angularJS.
* She is to take assist more on her Secondary role as Co-PM.
+
* She was tasked to focus on her secondary role as co-PM.
* <span style="color:red"> Client made changes to UI </span>   
+
* <span style="color:red"> Client made changes to UI. </span>   
 
* <span style="color:red"> Client changed on the requirement of playing Mastery Base Coaching. User must complete a question before to master that question. </span>
 
* <span style="color:red"> Client changed on the requirement of playing Mastery Base Coaching. User must complete a question before to master that question. </span>
 
|-
 
|-
Line 174: Line 375:
 
||  
 
||  
 
||  
 
||  
|| Group based tournament.
+
|| Group based tournament
 
|| 15 Jan
 
|| 15 Jan
 
||  
 
||  
*Eng Sen was assigned 3rd week of December to assist, - requires some time to learn. <br>
+
*Eng Sen was assigned 3rd week of December to assist - requires some time to learn. <br>
*Competition was was organized start of February is now pushed to 15 Feb - Giving the Team additional time. <br>
+
*Tournament which was planned to be held on the start of February was pushed back to 15 Feb, allowing the team to have more time to complete the functionality  <br>
*Glen believed function is going well, hence only Eng sen was assigned to assist
+
*As Glen was confident that the function was going well, only Eng Sen was assigned to assist.
* <span style="color:red"> Client wanted a new Json data structure for tournament instead of re-using client's existing data structure model. </span>
+
* <span style="color:red"> Client wanted a new JSON data structure for tournament instead of re-using client's existing data structure model. </span>
 
|-
 
|-
 
|- style="background:silver; color:black"
 
|- style="background:silver; color:black"
 
||  
 
||  
 
||  
 
||  
|| Easy Web Prototyping.
+
|| Easy Web Prototyping
 
|| 15 Jan
 
|| 15 Jan
 
||  
 
||  
*Fariq and Wah Chun joined on the 29th of Decembers.  
+
*Fariq and Wah Chun joined on the 29th of December.
*Both of them were to use this function to explore Angular as much as possible.
+
*Both of them were tasked to develop this functionality and seize the opportunity to explore angularJS as much as possible.
 
*<span style="color:red"> Client changed Collaborative Mode to Sharing of Codes Mode.</span>
 
*<span style="color:red"> Client changed Collaborative Mode to Sharing of Codes Mode.</span>
 
|-
 
|-
Line 195: Line 396:
 
|- style="background:silver; color:black"
 
|- style="background:silver; color:black"
 
|colspan="5"|  
 
|colspan="5"|  
*Team has several changes in scope by client during this time. Namely Purpose Driven and Mastery Based Coaching.
+
*Team has several changes in scope by client during this time, mainly for Purpose Driven Coding and Mastery Based Coaching.
*Tournament group needed to create a brand new Json data structure to support tournament. Development can continue after data structure is complete.Codes needed to be re-adapted to new data structure.
+
*Tournament group needed to create a brand new JSON data structure to support tournament. Development can continue after data structure is completed. Codes needed to be re-adapted to new data structure.
 
|-
 
|-
  
Line 207: Line 408:
 
||  
 
||  
 
*<span style="color:red"> Client changed the UI and logic flow of Create Tournament. </span>
 
*<span style="color:red"> Client changed the UI and logic flow of Create Tournament. </span>
*Eng Sen required to make changes to the UI
+
*Eng Sen required to make changes to the UI.
*As competition is coming, this became top priority.
+
*As the Tournament was coming, this became top priority.
*Client later postponed tournament to March which requires team to re-prioritize.
+
*Client later postponed Tournament to March which required the team to re-prioritize.
 
|-
 
|-
  
Line 219: Line 420:
 
*Glen encountered complication during creation of Join.
 
*Glen encountered complication during creation of Join.
 
*As competition is coming, this became top priority.
 
*As competition is coming, this became top priority.
*Client later postponed tournament to March which requires team to re-prioritize.
+
*Client later postponed Tournament to March which required the team to re-prioritize.
 
|-
 
|-
  
Line 227: Line 428:
 
|| 9th Feb
 
|| 9th Feb
 
||  
 
||  
*As Tournament was behind, Fariq was removed from Web Development Prototyping and relocated to assist Tournament.
+
*As Tournament was behind, Fariq was reassigned from Web Development Prototyping to assist Tournament.
 
*As competition is coming, this became top priority.
 
*As competition is coming, this became top priority.
 
*Client later postponed tournament to March which requires team to re-prioritize.
 
*Client later postponed tournament to March which requires team to re-prioritize.
Line 239: Line 440:
 
*<span style="color:red">As date is nearing, our client has a new requirement. To create an Events page.</span>
 
*<span style="color:red">As date is nearing, our client has a new requirement. To create an Events page.</span>
 
*<span style="color:red"> Client deemed this as high priority as currently, there is no means for people to register.
 
*<span style="color:red"> Client deemed this as high priority as currently, there is no means for people to register.
*Client requirements were simple, Wah Chun was relocated to this to quickly developed this.
+
*Wah Chun was reassigned to this.
*<span style="color:red">Client added an Event-Ranking table requirement to display who will get in or get cut off from a particular event.</span>
+
*<span style="color:red">Client added an Event-Ranking table requirement to display who will get in or get cut off from a particular event.</span>
*<span style="color:red">Client added Facebook Share requirement .</span>
+
*<span style="color:red">Client added Facebook Share requirement.</span>
*<span style="color:red">Client wanted current user's status to be shown requirement .</span>
+
*<span style="color:red">Client wanted current user's status to be shown requirement.</span>
*<span style="color:red">Client later postponed tournament to March which requires team to re-prioritize.
+
*<span style="color:red">Client later postponed Tournament to March which required the team to re-prioritize.
 
|-
 
|-
  
Line 252: Line 453:
 
||  
 
||  
 
* Republic polytechnic was interested on this function hence now became Client top priority after change in Tournament Competition date.
 
* Republic polytechnic was interested on this function hence now became Client top priority after change in Tournament Competition date.
* <span style="color:red"> Client recommended a different Json data structure. </span>
+
* <span style="color:red"> Client recommended a different JSON data structure. </span>
 
* <span style="color:red"> Client change scope. Mastery will now load 1 game. Mastery will not load new game. Mastery will determine the type of improvement user can make. </span>
 
* <span style="color:red"> Client change scope. Mastery will now load 1 game. Mastery will not load new game. Mastery will determine the type of improvement user can make. </span>
 
|-
 
|-
Line 262: Line 463:
 
||  
 
||  
 
* Republic polytechnic was interested on this function hence now became Client top priority after change in Tournament Competition date.
 
* Republic polytechnic was interested on this function hence now became Client top priority after change in Tournament Competition date.
* <span style="color:red"> Client recommended a different Json data structure. </span>
+
* <span style="color:red"> Client recommended a different JSON data structure. </span>
 
* <span style="color:red"> Client change scope. Client wanted a Video-Gallery at the bottom of the page to allow user to see video progress.</span>
 
* <span style="color:red"> Client change scope. Client wanted a Video-Gallery at the bottom of the page to allow user to see video progress.</span>
 
|-
 
|-
Line 277: Line 478:
 
|-
 
|-
 
|colspan="5"|  
 
|colspan="5"|  
* Client made several scope changes such as UI, Data structures and New Features. Almost all feature had a change.
+
* Client made several scope changes such as UI, Data structures and New Features. Almost every functionality had changes.
 
* Tournament Competition had changed of dates which requires the team to re-prioritize while Client has different priorities along the way.
 
* Tournament Competition had changed of dates which requires the team to re-prioritize while Client has different priorities along the way.
 
* The team decided to put Web Development prototype on hold.
 
* The team decided to put Web Development prototype on hold.
Line 285: Line 486:
  
 
|- style="background:silver; color:black"
 
|- style="background:silver; color:black"
|rowspan="3"| 1
+
|rowspan="3"|
 
||  
 
||  
 
||  
 
||  
Line 310: Line 511:
 
|}
 
|}
  
===Project Metrics:===
+
===Project Metrics===
 +
 
 +
[[IS480 Team wiki: 2013T2 GENShYFT Project Management metric|<b> Click to View Midterm Project Metric </b>]]
  
Summary of analysis for the metrics collected. You may refer to another page for the details about the metrics and how it is collected.
+
=== Project Risk ===
 +
[[IS480_Team_wiki:_2013T2_GENShYFT_Project_Management_risk| <b> Click to View Mid Term Project Risk </b>]]
  
 
===Technical Complexity:===
 
===Technical Complexity:===
 +
# Testing and development is complex since team needs to code and test on 3 different platforms: localhost, development and live SingPath. Hence, higher scaled features like Tournament is complex to deploy. [[IS480_Team_wiki:_2013T2_GENShYFT_Documentation_usecase#Deployment_Process|Click here to see SingPath's Deployment Process]] <br/>
  
Describe and list the technical complexity of your project in order of highest complexity first. For example, deploying on iPhone using Objective-C, customizing Drupal with own database, quick search for shortest flight path, database structure, etc.
+
# Need to compare users' scores from the levels they have practised under Practice section for Mastery-based coaching to measure the user's percentile. These statistics would also be used to find out the user's weak areas, based on the number of attempts with respect to a question and the time taken.
 
+
<!--Describe and list the technical complexity of your project in order of highest complexity first. For example, deploying on iPhone using Objective-C, customizing Drupal with own database, quick search for shortest flight path, database structure, etc.-->
==Quality of product==
 
  
Provide more details about the quality of your work. For example, you designed a flexible configurable system using XML.config files, uses Strategy Design Pattern to allow plugging in different strategy, implement a regular expression parser to map a flexible formula editor, etc.  
+
==Quality of product==
 +
<!--Provide more details about the quality of your work. For example, you designed a flexible configurable system using XML.config files, uses Strategy Design Pattern to allow plugging in different strategy, implement a regular expression parser to map a flexible formula editor, etc.-->
  
 
===Project Deliverables:===
 
===Project Deliverables:===
Line 333: Line 538:
 
|-
 
|-
  
|rowspan="2"| Project Management
+
|rowspan="5"| Project Management
 +
|| Minutes
 +
|| [[IS480_Team_wiki:_2013T2_GENShYFT_Project_Management_minutes|Sponsor Minutes]]
 +
|-
 +
 
 +
|| Minutes
 +
|| [[IS480_Team_wiki:_2013T2_GENShYFT_Project_Management_minutes|Supervisor Minutes]]
 +
|-
 +
 
 
|| Minutes
 
|| Minutes
|| Sponsor weeks -10 -5 3 7 Supervisor weeks -2 3 5 7
+
|| [[IS480_Team_wiki:_2013T2_GENShYFT_Project_Management_minutes|Group Minutes]]
 +
|-
 +
 
 +
|| Metrics
 +
|| [[IS480_Team_wiki:_2013T2_GENShYFT_Project_Management_metric|Bug metrics]]
 
|-
 
|-
  
 
|| Metrics
 
|| Metrics
|| Bug metrics
+
|| [[IS480_Team_wiki:_2013T2_GENShYFT_Project_Management_metric|Schedule metrics]]
 
|-
 
|-
  
|| Requirements
+
|rowspan="2"| Requirements
|| Story cards
+
|| Paper Prototypes
|| [http://www.agilemodeling.com/artifacts/userStory.htm CRUD Customer], [http://www.agilemodeling.com/artifacts/userStory.htm Trend Analytic]
+
|| [[IS480_Team_wiki:_2013T2_GENShYFT_Documentation_proto|Paper prototype]]
 +
|-
 +
|| Business Requirement Document
 +
|| [[Media:GENShYFT Requirement Gathering 1.2.pdf|Requirement Gathering]]
 
|-
 
|-
  
|rowspan="4"| Analysis
+
 
 +
|rowspan="5"| Analysis and Design
 
|| Use case
 
|| Use case
|| [http://en.wikipedia.org/wiki/Use_case_diagram overall]
+
|| [[IS480_Team_wiki:_2013T2_GENShYFT_Documentation_usecase#Use_Case_Diagram|Use case]]
 
|-
 
|-
  
|| System Sequence Diagram
+
|| State Diagrams
|| [http://en.wikipedia.org/wiki/System_Sequence_Diagram client], [http://en.wikipedia.org/wiki/System_Sequence_Diagram server]
+
|| [[IS480_Team_wiki:_2013T2_GENShYFT_Documentation_usecase#State_Diagram_for_Mastery_Based_Coaching|State diagrams]]
 
|-
 
|-
  
|| [http://en.wikipedia.org/wiki/Business_Process_Modeling_Notation Business Process Diagram]
+
|| Component Diagram
||  
+
|| [[IS480_Team_wiki:_2013T2_GENShYFT_Documentation_usecase#Component_Diagram|Component diagram]]
 
|-
 
|-
  
|| Screen Shots
+
|| Market Survey
|| CRUD Customer, Trend Analysis
+
|| [[IS480_Team_wiki:_2013T2_GENShYFT_Project_Overview_motivation|Survey]]
 
|-
 
|-
  
|rowspan="2"| Design
+
 
|| [http://en.wikipedia.org/wiki/Entity-relationship_model ER Diagram]
+
 
|| 1, 2, 3
+
|| System Architecture Diagram
 +
|| [[IS480_Team_wiki:_2013T2_GENShYFT_Documentation_usecase#System_Architecture_Diagram |System Architecture Diagram ]]
 
|-
 
|-
  
|| [http://en.wikipedia.org/wiki/Class_diagram Class Diagram]
+
|rowspan="2"| Testing
|| [http://en.wikipedia.org/wiki/Class_diagram 1], [http://en.wikipedia.org/wiki/Class_diagram 2], [http://en.wikipedia.org/wiki/Class_diagram 3]
+
|| Test plan
 +
|| [[Media:GENShYFT Test Plan 140217.pdf|Test Plan]]<br />
 +
|-
 +
|| User Testing
 +
|| [[IS480_Team_wiki:_2013T2_GENShYFT_Documentation_User|Tests]]
 
|-
 
|-
  
  
|| Testing
+
|rowspan="2"| Handover ( for Mid-term )
|| Test plan
 
|| [[IS480_Midterm_Wiki#Testing: | instructions]]
 
|-
 
  
|rowspan="3"| Handover
+
|| Developers Documentation
|| Manuals
+
|| [[Media:GENShYFT_API_Doc.pdf|API Documentation (In progress)]]
|| User tutorial, Developer manual, Setup manual
 
 
|-
 
|-
  
Line 388: Line 610:
 
|-
 
|-
  
|| [http://en.wikipedia.org/wiki/Deployment_diagram Deployment Diagram]
 
|| [[IS480_Midterm_Wiki#Deployment: | instructions]]
 
 
|}
 
|}
  
Not all parts of the deliverables are necessary but the evidence should be convincing of the scope.
+
===Quality Attributes===
 +
====Availability====
 +
* SingPath is hosted on Google App Engine. The cloud infrastructure ensures a high up-time which currently stands at 97.05%. For the latest numbers, please refer to [https://code.google.com/status/appengine GAE Status Page].
  
=== Quality:===
+
====Flexibility====
 +
* The utilization of angularJS enforces a strict MVC architecture that defines clear responsibilities for each component. Business logic can be edited in the controllers without affecting the other components.
  
Explain the quality attributes (non functional) of your project deliverables. Have you designed the architecture, use a design pattern, etc? Does your architecture address scalability, performance, reliability, availability, fault tolerance, usability, etc. Does your design address maintainability, flexibility, configurability, etc. Be brief here but you can link to diagrams or code detail pages. Do not repeat the technical complexity part, link to it if necessary.
+
====Interoperability====
 +
* SingPath uses API calls to the backend server to retrieve data in JSON format. This approach allows for easy exchange and reuse of information with both new and old systems as long as they follow this widely accepted standard.
  
===Deployment:===
+
====Usability====
 +
* We will be conducting a total of 5 User Tests to ensure that our application is well received/accepted by the final presentation.
 +
** After each User Test, we will collate all the feedback and tweak our application to make it even more user friendly.
  
In an iterative approach, ready to use system should be available (deployed) for client and instructions to access the system described here (user name). If necessary, provide a [[IS480_Final_Wiki#Project_Deliverables: | deployment diagram link]].
+
====Scalability====
 +
* Automatic Scalability (Infinitely Scalable) as advertised by GAE
 +
** "Automatic scaling is built in with App Engine, all you have to do is write your application code and we'll do the rest. No matter how many users you have or how much data your application stores, App Engine can scale to meet your needs." - [https://cloud.google.com/developers/starterpack/ Google App Engine]
 +
 
 +
* Tournament
 +
** Approximately 40 concurrent users will be accessing SingPath at the same time during the Tournament
 +
** Will be conducting stress/load test prior to the actual Tournament to anticipate potential performance issues and rectify accordingly
 +
<!--http://apparchguide.codeplex.com/wikipage?title=Chapter%207%20-%20Quality%20Attributes-->
  
 
===Testing:===
 
===Testing:===
  
Describe the testing done on your system. For example, the number of user testing, tester profile, test cases, survey results, issue tracker, bug reports, etc.
+
A total of 1 User Acceptance Test has been completed along with a Heuristic Evaluation. For the UAT there was a total of 15 participants from SMU and the average age of the participants is 21.6 years old. The gender distribution of the participants is quite balanced as well. Participants were given either Tester Package A or Tester Package B. One contained detailed instructions while the other contained scenarios for the participants to follow. The participants were tasked to go through the 3 functionalities which we intended to test for UAT 1, namely - Purpose Driven Coding, Mastery Based Coaching and Events & Ranking. They wrote down the outcomes of the tasks assigned and filled in questionnaire form each which sought both qualitative and quantitative data from them such as programming languages currently known and ratings for Singpath in terms of utility and usability.
 +
 
 +
The survey results were generally positive, with the majority of the feedback focusing on the user interface more than the functions of the application, an indication that our functions developed are working perfectly and that we have to assign some resource to brush up on the usability aspect.
 +
 
 +
The bug points generated from the UAT was 7, which was quickly reduced to 1 as the developers were efficient in fixing the errors.  
  
==Reflection==
+
Looking ahead, we have 4 more UATs to go, and with each new test we aim to provide participants with an increasingly enrapturing experience.
  
Compile common lessons and reflection for the team and for each team member. Be brief.
+
For more details - please refer to the [[IS480_Team_wiki:_2013T2_GENShYFT_Documentation_User|GENShYFT Tests Page]]
  
 +
==Reflection==
 +
<!--Compile common lessons and reflection for the team and for each team member. Be brief.-->
 
===Team Reflection:===
 
===Team Reflection:===
 +
''Improved Communication''
 +
Let it be within the team or with our client, our team has learnt to express their opinions in such a way that the team member or the client would be able to understand. In order to understand what our client exactly wants, we insist on doing up a rough sketch to have a better grasp of what our client wants.
  
Key lessons learned – indicating where the team improved, or would do things differently next time. You may refer to the learning outcome summary in your proposal. A very short checklist style will suffice. It would be very convincing if the knowledge is share at the wiki [[Knowledge_base | knowledge base]] and linked here.
+
''Knowledge Sharing Environment''
 +
The team has been able to accomplish thus far as members are helpful towards on another if they are unable to solve a critical bug or even understand how to implement certain frameworks or language like AngularJS.
 +
<!--Key lessons learned – indicating where the team improved, or would do things differently next time. You may refer to the learning outcome summary in your proposal. A very short checklist style will suffice. It would be very convincing if the knowledge is share at the wiki [[Knowledge_base | knowledge base]] and linked here.-->
  
 
===Individual Reflection:===
 
===Individual Reflection:===
  
Describe in a paragraph, the key areas of learning or improvement. These should be personal areas of growth or learning. Each individual should list his/her effort, responsibility, actual contributions and personal reflection. Do not repeat team project contributions or member roles. Link if necessary.
+
[[Image:indReflection_midterm_GENSHYFT2.jpg | 1000px|center]]
 +
 
 +
 
 +
<!--Describe in a paragraph, the key areas of learning or improvement. These should be personal areas of growth or learning. Each individual should list his/her effort, responsibility, actual contributions and personal reflection. Do not repeat team project contributions or member roles. Link if necessary.-->
  
===Sponsor Comment:===
+
<!--===Sponsor Comment:===
Sometimes, the client writes a report to feedback on the system; this sponsor report can be included or linked from here.
+
Sometimes, the client writes a report to feedback on the system; this sponsor report can be included or linked from here.-->

Latest revision as of 17:23, 26 February 2014

GENShYFT IS480 1314 Logo.jpg


Home   Project Overview   Project Management   Documentation   The Team



Project Progress Summary

Deployed Site Link: Actual Site| View Site
Mid-Term Slides: Mid Term Slides


Project Highlights

Changes in Scope

Actual Planned
GENSHYFT IS480 SPCircle7.png Genshyft acceptance scope.jpg

Changes in Requirements

Feature Affected Previously Currently Change Management Action
Registration & Tracking Map that allows user to see the number of players registered with respect to each school. Added to scope, event ranking for event, display the people who have done mastery based coaching and purpose driven, badges, Events map, badges and levels completed. This requirement change will be taken into consideration after mid-terms as this requirement is recent (9/2) and team has yet to finish up the minimum requirements
Mastery-based Coaching Users would be able to resolve questions that they solved below their average performance in the past User should redo any question that they have attempted before on the Practice page This change was implemented as it was still early in the development process.
Mastery-based Coaching

Client will provide audio files and text captions for the Coaches

Client requested team to do up the audio files and text captions for the Coaches either personally or engage in professional services.

Team decided to do the files up personally instead as it would take longer time if it was done by professionals. This change was implemented as client did not have materials ready yet.

Mastery-based Coaching

Pictures of mentors will be images

Pictures of mentors in animated GIF format

This feature was taken into consideration as this was UI fix but requirement change was not of high importance

Mastery-based Coaching

On landing page, player select mentor, language and difficulty. Player will select as such for each Mastery coaching session.

On landing page, player only selects mentor and language. User does not need to select the difficulty.
If user has played a Mastery coaching session before, previously selected mentor and language will be the default mentor and language. Have the option "Continue", "Change Mentor" and "Change Language" for existing users of Mastery coaching.

This feature was taken into consideration as team was in the midst of developing this feature and it was of utmost priority since client wanted to show it to RP and IDA

Mastery-based Coaching

This option did not exist when signing off prototype View Paper Prototype

Client wants an admin page for Mastery-based coaching

This feature was not taken into consideration as team tried to develop it and realise feature is too complex to implement.

Mastery-based Coaching

When user starts the Mastery coaching session, user will be starting a new session

For each question,a new Mastery coaching session is launched.

This requirement change will be taken into consideration after mid-terms as this requirement is recent (9/2) and team has yet to finish up the minimum requirements

Purpose Driven Development UI discussed as such in prototype View Paper Prototype

UI changed after prototyping, client changed position of video and feedback. The buttons for the options to answer the feedback has been changed from slider to radio button and as of recent (9/2) normal button.

This change was implemented as it was mostly a UI issue.
Purpose Driven Development

This option did not exist when signing off prototype

Client wants a video gallery below (on the page that the user is viewing the video). It would indicate which videos are locked and unlocked. This translated into a change in the data structure.

This change is implemented because team assessed the requirement change and realised it would make sense for the video gallery to appear so that player knows the videos he has unlocked so far.

Purpose Driven Development

No Admin page was discussed during the paper prototype sign off

Client wants an Admin page where he can manage the videos to upload on the Purpose page. He wants to be able to copy and paste the link, description of the video, survey question for each video and thumbnail image of the video.

This feature was taken into consideration as team tried to develop it and realised feature is not too complex to implement

Purpose Driven Development

Client wanted to have a landing page where user can select unlocked to video to watch.

Client does not want a landing page. He wants an indication on the video gallery which was the last watched video. This would result in a change in data structure

This requirement change will be taken into consideration after mid-terms as this requirement is recent (9/2) and team has yet to finish up the minimum requirements

Group-based Tournament

Team could use client's existing data structure for Tournament.

Client wants team to create a new heat so that tournament game information is not attached to the rounds but to the heat instead.

Taken into consideration. Did not affect team's development progress.

Group-based Tournament

Team could use client's existing data structure for Tournament.

Client wants team to create a new heat so that tournament game information is not attached to the rounds but to the heat instead.

Taken into consideration. Did not affect team's development progress to a large extent.

Group-based Tournament

Tournament feature (existing) used to make calls to different APIs

Tournament feature now called to one API which the team created.

Taken into consideration. This did not affect team's development progress to a large extent and team thought it was wise to have this feature call to one API

Group-based Tournament - Create Tournament

Team discussed with client regarding the UI of this page using paper prototypes

Client wants team to follow the page layout of an older version of SingPath

Team first attempted Client's suggestion and realised it was possible to implement this change as it focused more on UI

Group-based Tournament - Live Ranking

'Country' field on the live ranking page

Remove 'country' field and add 'last solved time'

This requirement change will be taken into consideration after mid-terms as this requirement is recent (9/2) and team has yet to finish up the minimum requirements

Events Registration SingPath users would be able to request for an event by SingPath, Sponsorship Collaboration or Donate to SingPath. (Initially secondary feature)

Client wants Events to be where users would be able to sign up for a tournament.

This affected manpower allocation to a large extent.
Team reviewed requirement change and realised it is a vital feature if users need platform to sign up for tournament.
Allocated team member who was assisting with developing back-end APIs to develop this feature.

* This feature was added right before acceptance presentation - not included in the acceptance proposal
* Secondary feature previously - now primary feature so students can sign up for upcoming tournaments on 21st & 29th March 2014

Events Registration

Platform for participants to join and database will take note of who has signed up.

Include a table that shows the number of students registered, school they are from, who is coming for the event, rank them according to the problems solved,back button to return to Events Registration page, Top 50 with a cutoff line at 40, Facebook share button, highlight current player, always put the current player in the bottom row and if current player is not in top 50, don't show their rank. They should be able to see how many problems they are away from moving ahead of number 50.

This requirement change was taken into consideration as team was in the amidst of coding the feature.


Project Challenges

Challenges in General

  • New coding language; Team had to learn AngularJS to start developing the features
    • No one on the team had prior experience with AngularJS, as such the team spent the December holidays to understand how to develop in AngularJS and this was done in tandem with the development of their assigned features
  • Needed to understand and debug some of the existing codes
    • This was a bottleneck to some of our features like Mastery-based Coaching; we decided to solve the codes that impacted our development progress
  • Meeting Client’s KPI (i.e. Get 80 users to register on SingPath by Feb 22)
    • Had to develop an Events Registration page, previously a secondary feature, where students can sign up in order for the team to hit this goal
  • Need to understand SingPath Architecture
    • Before development started, team needed to understand how their developed features could be pushed to the live website hence a meeting with the client was set-up to have a better insight on this.
  • Changing requirements (as seen above)
    • Action taken is mentioned in the table above
  • Limited access to back-end server
    • Team liaised with client whenever team is ready to deploy features on to the live website

Project Achievements:

Actual users registered for tournaments
  • At least 93 new users have registered with SingPath and indicated interest in participating in the tournament through our Events Page
  • 70% of the project completed
  • Completed 6 iterations (out of 10 iterations in total)
  • Successfully conducted 1 User Test and 1 Heuristic Evaluation
  • Assisted Client with his Research Paper




Project Management

  • Current Iteration : 7
  • Status : Behind Schedule (details as to why below)

Project Schedule

Plan Vs Actual Timeline

Actual Plan
Genshyft is480 Time line Summary7.1.PNG Genshyft Acceptance timline.jpg


Plan Vs Actual by iterations

Iterations Planned Actual Comments
3 Purpose Driven - First Half 7th Nov - 11th Nov Gathering New Requirements 5th Dec - 12th Dec
  • Team discussed with clients new project scope from acceptance.
Mastery Coaching - First Half 7th Nov - 11th Nov Creation of all paper prototypes 5th Dec - 12th Dec Client sign off prototypes
  • Team was delayed during iteration 3 as we were revising for finals. Iteration 3 started immediately after finals.
4 Purpose Driven - Second Half 22nd Dec Purpose Driven 31st Dec
  • Assigned to Yousof.
  • Member originally assigned was away.(Notification only after acceptance)
  • Function was client top 3 priority.
Mastery Coaching- Second Half 22nd Dec Mastery Based Coaching 31st Dec
  • Assigned to Shanaaz.
  • Member originally assigned was away.(Notification only after acceptance)
  • Function was client top 3 priority.
Group Based Tournament 31st Dec
  • Assigned to Glen.
  • Member originally assigned was away.(Notification only after acceptance)
  • Function was client top 3 priority.
  • Fariq , Wah Chun and Eng Sen were away for December.
  • Each available member had to be in charge of the development of each of the 3 functionalities in parallel in order to meet client's priority.
  • Project Manager and Business Analyst joined in the development temporarily due to a lack of resources.
5 Co-organized event
Hour of Code
23 Dec Purpose Driven 15 Jan
  • Yousof was coding both Purpose Driven and Mastery Based Coaching.
  • Client made changes to UI on the features different from paper prototype.
Recruit Participants for Singpath tournaments 23 Dec Mastery Based Coaching 15 Jan
  • Yousof was reassigned to this as Shanaaz faced difficulties with angularJS.
  • She was tasked to focus on her secondary role as co-PM.
  • Client made changes to UI.
  • Client changed on the requirement of playing Mastery Base Coaching. User must complete a question before to master that question.
Group based tournament 15 Jan
  • Eng Sen was assigned 3rd week of December to assist - requires some time to learn.
  • Tournament which was planned to be held on the start of February was pushed back to 15 Feb, allowing the team to have more time to complete the functionality
  • As Glen was confident that the function was going well, only Eng Sen was assigned to assist.
  • Client wanted a new JSON data structure for tournament instead of re-using client's existing data structure model.
Easy Web Prototyping 15 Jan
  • Fariq and Wah Chun joined on the 29th of December.
  • Both of them were tasked to develop this functionality and seize the opportunity to explore angularJS as much as possible.
  • Client changed Collaborative Mode to Sharing of Codes Mode.
  • Team has several changes in scope by client during this time, mainly for Purpose Driven Coding and Mastery Based Coaching.
  • Tournament group needed to create a brand new JSON data structure to support tournament. Development can continue after data structure is completed. Codes needed to be re-adapted to new data structure.
6 Predictive Analytics - ETL 10th Jan Group based tournament - Create Tournament 9th Feb
  • Client changed the UI and logic flow of Create Tournament.
  • Eng Sen required to make changes to the UI.
  • As the Tournament was coming, this became top priority.
  • Client later postponed Tournament to March which required the team to re-prioritize.
Predictive Analytics - Statistical Application 10 Jan Group based tournament - Join Tournament 9th Feb
  • Glen encountered complication during creation of Join.
  • As competition is coming, this became top priority.
  • Client later postponed Tournament to March which required the team to re-prioritize.
Predict User's School 10 Jan Group based tournament - Live Ranking 9th Feb
  • As Tournament was behind, Fariq was reassigned from Web Development Prototyping to assist Tournament.
  • As competition is coming, this became top priority.
  • Client later postponed tournament to March which requires team to re-prioritize.
Register for Event 9th Feb
  • As date is nearing, our client has a new requirement. To create an Events page.
  • Client deemed this as high priority as currently, there is no means for people to register.
  • Wah Chun was reassigned to this.
  • Client added an Event-Ranking table requirement to display who will get in or get cut off from a particular event.
  • Client added Facebook Share requirement.
  • Client wanted current user's status to be shown requirement.
  • Client later postponed Tournament to March which required the team to re-prioritize.
Mastery Based Coaching 9th Feb
  • Republic polytechnic was interested on this function hence now became Client top priority after change in Tournament Competition date.
  • Client recommended a different JSON data structure.
  • Client change scope. Mastery will now load 1 game. Mastery will not load new game. Mastery will determine the type of improvement user can make.
Purpose Driven 9th Feb
  • Republic polytechnic was interested on this function hence now became Client top priority after change in Tournament Competition date.
  • Client recommended a different JSON data structure.
  • Client change scope. Client wanted a Video-Gallery at the bottom of the page to allow user to see video progress.
Developer's Documentation 9th Feb
  • Client wanted a technical documentation stating the API calls and explanation of codes.
  • Client wanted this ASAP.
  • Shanaaz, who was BA/Co-PM was assigned to do this documentation.
  • Client made several scope changes such as UI, Data structures and New Features. Almost every functionality had changes.
  • Tournament Competition had changed of dates which requires the team to re-prioritize while Client has different priorities along the way.
  • The team decided to put Web Development prototype on hold.

Project Metrics

Click to View Midterm Project Metric

Project Risk

Click to View Mid Term Project Risk

Technical Complexity:

  1. Testing and development is complex since team needs to code and test on 3 different platforms: localhost, development and live SingPath. Hence, higher scaled features like Tournament is complex to deploy. Click here to see SingPath's Deployment Process
  1. Need to compare users' scores from the levels they have practised under Practice section for Mastery-based coaching to measure the user's percentile. These statistics would also be used to find out the user's weak areas, based on the number of attempts with respect to a question and the time taken.

Quality of product

Project Deliverables:

List the artifacts produced for this project. The entire deliverable can be submitted in a separate thumb drive, web repository or place in the IS480 team wiki.

Stage Specification Modules
Project Management Minutes Sponsor Minutes
Minutes Supervisor Minutes
Minutes Group Minutes
Metrics Bug metrics
Metrics Schedule metrics
Requirements Paper Prototypes Paper prototype
Business Requirement Document Requirement Gathering
Analysis and Design Use case Use case
State Diagrams State diagrams
Component Diagram Component diagram
Market Survey Survey
System Architecture Diagram System Architecture Diagram
Testing Test plan Test Plan
User Testing Tests
Handover ( for Mid-term ) Developers Documentation API Documentation (In progress)
Code client server

Quality Attributes

Availability

  • SingPath is hosted on Google App Engine. The cloud infrastructure ensures a high up-time which currently stands at 97.05%. For the latest numbers, please refer to GAE Status Page.

Flexibility

  • The utilization of angularJS enforces a strict MVC architecture that defines clear responsibilities for each component. Business logic can be edited in the controllers without affecting the other components.

Interoperability

  • SingPath uses API calls to the backend server to retrieve data in JSON format. This approach allows for easy exchange and reuse of information with both new and old systems as long as they follow this widely accepted standard.

Usability

  • We will be conducting a total of 5 User Tests to ensure that our application is well received/accepted by the final presentation.
    • After each User Test, we will collate all the feedback and tweak our application to make it even more user friendly.

Scalability

  • Automatic Scalability (Infinitely Scalable) as advertised by GAE
    • "Automatic scaling is built in with App Engine, all you have to do is write your application code and we'll do the rest. No matter how many users you have or how much data your application stores, App Engine can scale to meet your needs." - Google App Engine
  • Tournament
    • Approximately 40 concurrent users will be accessing SingPath at the same time during the Tournament
    • Will be conducting stress/load test prior to the actual Tournament to anticipate potential performance issues and rectify accordingly

Testing:

A total of 1 User Acceptance Test has been completed along with a Heuristic Evaluation. For the UAT there was a total of 15 participants from SMU and the average age of the participants is 21.6 years old. The gender distribution of the participants is quite balanced as well. Participants were given either Tester Package A or Tester Package B. One contained detailed instructions while the other contained scenarios for the participants to follow. The participants were tasked to go through the 3 functionalities which we intended to test for UAT 1, namely - Purpose Driven Coding, Mastery Based Coaching and Events & Ranking. They wrote down the outcomes of the tasks assigned and filled in questionnaire form each which sought both qualitative and quantitative data from them such as programming languages currently known and ratings for Singpath in terms of utility and usability.

The survey results were generally positive, with the majority of the feedback focusing on the user interface more than the functions of the application, an indication that our functions developed are working perfectly and that we have to assign some resource to brush up on the usability aspect.

The bug points generated from the UAT was 7, which was quickly reduced to 1 as the developers were efficient in fixing the errors.

Looking ahead, we have 4 more UATs to go, and with each new test we aim to provide participants with an increasingly enrapturing experience.

For more details - please refer to the GENShYFT Tests Page

Reflection

Team Reflection:

Improved Communication Let it be within the team or with our client, our team has learnt to express their opinions in such a way that the team member or the client would be able to understand. In order to understand what our client exactly wants, we insist on doing up a rough sketch to have a better grasp of what our client wants.

Knowledge Sharing Environment The team has been able to accomplish thus far as members are helpful towards on another if they are unable to solve a critical bug or even understand how to implement certain frameworks or language like AngularJS.

Individual Reflection:

IndReflection midterm GENSHYFT2.jpg