Difference between revisions of "IS480 Team wiki: 2017T1 Codezilla MidTerm Wiki"
(34 intermediate revisions by the same user not shown) | |||
Line 21: | Line 21: | ||
|} | |} | ||
<!--Header End--> | <!--Header End--> | ||
− | |||
<!--SUB HEADER--> | <!--SUB HEADER--> | ||
Line 35: | Line 34: | ||
=Project Progress Summary= | =Project Progress Summary= | ||
− | <b> Midterm Slides: </b> | + | <b> Midterm Slides: </b> [https://drive.google.com/a/smu.edu.sg/file/d/0BxbuZz_yQKpOcTdFVlUzY3RRbTA/view?usp=sharing here] |
<b> Deployed Site Link: </b> http://impactlaunch.space | <b> Deployed Site Link: </b> http://impactlaunch.space | ||
Line 41: | Line 40: | ||
<b> Project Highlights: </b> | <b> Project Highlights: </b> | ||
<br> | <br> | ||
− | To learn more about our Project: [[IS480 Team wiki: 2017T1 Codezilla | + | To learn more about our Project: [[IS480 Team wiki: 2017T1 Codezilla Project Overview |Project Description Link]] |
<br> | <br> | ||
− | Our project is being divided into a total of 15 iterations and we are currently at sprint 11 (02 October 2017 to 18 October 2017). We have so far completed | + | Our project is being divided into a total of 15 iterations and we are currently at sprint 11 (02 October 2017 to 18 October 2017). We have so far completed 70% of our project. We made use of our buffer sprint in sprint 10 to complete our Project Management Module 1 and 2. In these 11 sprints, we have completed 2 User Testings where participants include actual professionals from various industries. |
<br> | <br> | ||
An unexpected event that occured would be that of the Project Management Module being uncompleted in Sprint 8, 9 due to our underestimation. As such, we made use of our buffer sprint in Sprint 10 to complete the Project Management Module. | An unexpected event that occured would be that of the Project Management Module being uncompleted in Sprint 8, 9 due to our underestimation. As such, we made use of our buffer sprint in Sprint 10 to complete the Project Management Module. | ||
Line 110: | Line 109: | ||
|style="text-align: center;"| 80% | |style="text-align: center;"| 80% | ||
|style="text-align: center;"| 1 | |style="text-align: center;"| 1 | ||
− | |style="text-align: center;"| | + | |style="text-align: center;"| NIL |
|- | |- | ||
|style="text-align: center;"| Feedback and Ratings Module | |style="text-align: center;"| Feedback and Ratings Module | ||
|style="text-align: center;"| 0% | |style="text-align: center;"| 0% | ||
|style="text-align: center;"| 0.5 | |style="text-align: center;"| 0.5 | ||
− | |style="text-align: center;"| | + | |style="text-align: center;"| Not Started |
|- | |- | ||
|style="text-align: center;"| Communications Module | |style="text-align: center;"| Communications Module | ||
|style="text-align: center;"| 0% | |style="text-align: center;"| 0% | ||
|style="text-align: center;"| 0.5 | |style="text-align: center;"| 0.5 | ||
− | |style="text-align: center;"| | + | |style="text-align: center;"| Not Started |
|- | |- | ||
|style="text-align: center;"| Analytics Module | |style="text-align: center;"| Analytics Module | ||
|style="text-align: center;"| 0% | |style="text-align: center;"| 0% | ||
|style="text-align: center;"| 0.5 | |style="text-align: center;"| 0.5 | ||
− | |style="text-align: center;"| | + | |style="text-align: center;"| Not Started |
|} | |} | ||
<br> | <br> | ||
There has been no changes made to our Project Scope since Acceptance. Below is our scope and the status of each module. | There has been no changes made to our Project Scope since Acceptance. Below is our scope and the status of each module. | ||
− | [[Image: | + | [[Image: Codezilla_Scope_12345.png|center|800px]] |
<br> | <br> | ||
===Project Schedule === | ===Project Schedule === | ||
Line 178: | Line 177: | ||
[[Image:codezillasprintvelocitybar.png|center|800px]] | [[Image:codezillasprintvelocitybar.png|center|800px]] | ||
− | |||
− | |||
<br> | <br> | ||
<div style="background: #404040; padding: 15px; font-family:Century Gothic; line-height: 0.3em; text-indent: 15px;font-size:16px;"><font color=#ffffff>Burndown Chart:</font></div> | <div style="background: #404040; padding: 15px; font-family:Century Gothic; line-height: 0.3em; text-indent: 15px;font-size:16px;"><font color=#ffffff>Burndown Chart:</font></div> | ||
Line 188: | Line 185: | ||
<div style="background: #404040; padding: 15px; font-family:Century Gothic; line-height: 0.3em; text-indent: 15px;font-size:16px;"><font color=#ffffff>Bug Metrics:</font></div> | <div style="background: #404040; padding: 15px; font-family:Century Gothic; line-height: 0.3em; text-indent: 15px;font-size:16px;"><font color=#ffffff>Bug Metrics:</font></div> | ||
<br> | <br> | ||
− | [[Image: | + | [[Image:Bugmetricscodezilla.png|center|800px]] |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<br/> | <br/> | ||
=== Project Risks === | === Project Risks === | ||
− | |||
− | |||
<br> | <br> | ||
− | + | [[Image:risk_matrix_codezilla123.png|800px|center]] | |
− | [[Image: | ||
<br> | <br> | ||
===Technical Complexity === | ===Technical Complexity === | ||
− | + | We used a Matching Algorithm in order to carry out our project recommendations. This is done through: | |
− | + | *Similarity to the specified user | |
− | * | + | *Location of the user or Geofencing |
− | * | ||
<br> | <br> | ||
+ | Our team made use of the One Signal Platform in order to send out the notifications through Firebase Cloud Messaging and Swift apns. Subscriptions are listened to at the login page and upon each login. The code below initialises the notification subscription. On each subscription change, there is a post call to the DB to store a unique device:ID for each subscriber. | ||
<br> | <br> | ||
+ | [[Image: Codezillatechcom1.png|center|800px]] | ||
+ | <br> | ||
+ | If it is a new subscriber, this logs the user’s latest geo-position in terms of longitude and latitude. However, if the user is being unsubscribed, the user’s particular device:ID is being removed to prevent overhead. | ||
+ | <br> | ||
+ | [[Image: Codezillatechcom2.png|center|800px]] | ||
+ | <br> | ||
+ | If its a existing subscriber, upon future logins, it updates the DB of the user’s last co-cordinates. | ||
+ | <br> | ||
+ | [[Image: Codezillatechcom3.png|center|800px]] | ||
+ | <br> | ||
+ | Below are screenshots of notifications being pushed out: | ||
+ | [[Image: Codezillatechcom4.png|center|800px]] | ||
+ | <br> | ||
+ | [[Image: Codezillatechcom5.png|center|800px]] | ||
+ | <br> | ||
+ | [[Image: Codezillatechcom6.png|center|800px]] | ||
+ | <br> | ||
+ | Below is a scoring algorithm on a small dataset to match the project to similar users. | ||
+ | <br> | ||
+ | [[Image: Codezillatechcom7.png|center|800px]] | ||
+ | <br> | ||
+ | [[Image: Codezillatechcom8.png|center|800px]] | ||
+ | <br> | ||
+ | We obtain candidate users based on their similarities in several categories. Scores are being calculated for for candidates in specific category: | ||
+ | *Country | ||
+ | *Project Area/ Cause | ||
+ | *Resource Category | ||
+ | Similarity multipliers help to establish greater scores | ||
+ | The logic lies in the fact that: multiple similarities in one category > similarities in separate categories | ||
+ | *For similarities across 2 categories, for example Country and Project Area/Cause, we make use of the ACROSS_SIMILARITY_MULTIPLIER | ||
+ | *For similarities within a category, we make use of the WITHIN_SIMILARITY_MULTIPLIER | ||
+ | <br> | ||
+ | [[Image: Codezillatechcom9.png|center|800px]] | ||
+ | <br> | ||
+ | [[Image: Codezillatechcom10.png|center|800px]] | ||
+ | <br> | ||
+ | [[Image: Codezillatechcom11.png|center|800px]] | ||
+ | <br> | ||
+ | We get the latitude and longitude of user upon project creation. After which we obtain users in closest proximity based on defined range (Square perimeter). Lastly, we obtain device:IDs of each user in proximity | ||
+ | <br> | ||
+ | [[Image: Codezillatechcom12.png|center|800px]] | ||
+ | <br> | ||
+ | As for quality attributes, in terms of security we made use of Spring Security, that includes BCrypt and Variable SALT Authentication, making our application not vulnerable against SQL injections. | ||
+ | |||
+ | In term of performance, our application makes use of many file upload functions that result in the performance slowing after a period of time. As such, in order to ensure that we run at a high performance, our team makes sure that we close all connections and closable stream. We also compress all uploaded images (imgscalr) and remove all the unnecessary pulling of files to store on the local server. | ||
+ | <br> | ||
+ | [[Image: Codezillaquality1.png|center|800px]] | ||
+ | <br> | ||
+ | [[Image: Codezillaquality2.png|center|800px]] | ||
+ | <br> | ||
+ | [[Image: Codezillaquality3.png|center|800px]] | ||
+ | <br> | ||
+ | [[Image: Codezillaquality4.png|center|800px]] | ||
+ | <br> | ||
+ | |||
=Quality of Product= | =Quality of Product= | ||
===Intermediate Deliverables=== | ===Intermediate Deliverables=== | ||
Line 276: | Line 295: | ||
*We planned to complete a total of 3 User Acceptance Testings | *We planned to complete a total of 3 User Acceptance Testings | ||
*We have conducted a total of 2 User Acceptance Testings - one in Sprint 6 and one in Sprint 11. | *We have conducted a total of 2 User Acceptance Testings - one in Sprint 6 and one in Sprint 11. | ||
+ | <br> | ||
+ | To learn more about the UAT: [[IS480 Team wiki: 2017T1 Codezilla Documentation UserTesting |User Testing Link]] | ||
<br> | <br> | ||
<div style="background: #404040; padding: 15px; font-family:Century Gothic; line-height: 0.3em; text-indent: 15px;font-size:16px;"><font color=#ffffff>User Testing 1: </font></div> | <div style="background: #404040; padding: 15px; font-family:Century Gothic; line-height: 0.3em; text-indent: 15px;font-size:16px;"><font color=#ffffff>User Testing 1: </font></div> | ||
− | |||
− | |||
<p> | <p> | ||
<b>Venue:</b> SMU SIS GSR 2-2 <br/> | <b>Venue:</b> SMU SIS GSR 2-2 <br/> | ||
Line 287: | Line 306: | ||
<b>Number of Participants:</b> 4<br/> | <b>Number of Participants:</b> 4<br/> | ||
<b>Objectives:</b> | <b>Objectives:</b> | ||
− | *To | + | *To gather feedback with regards to our User Interface |
− | *To understand any usability problems by observing their | + | *To understand any usability problems in the account module, project/ resource module and search modules by observing their behavior |
− | *To improve | + | *To improve the account module, project/ resource module and search modules for the web application |
<b>Scope:</b> | <b>Scope:</b> | ||
*Account Module 1 and 2 | *Account Module 1 and 2 | ||
Line 300: | Line 319: | ||
<p> | <p> | ||
<b>Venue:</b> SMU SOL GSR B1-10 <br/> | <b>Venue:</b> SMU SOL GSR B1-10 <br/> | ||
− | <b>Date:</b>06 October 2017 <br/> | + | <b>Date:</b> 06 October 2017 <br/> |
<b>Time:</b> 11:00AM<br/> | <b>Time:</b> 11:00AM<br/> | ||
<b>Duration:</b> About 30 minutes per user<br/> | <b>Duration:</b> About 30 minutes per user<br/> | ||
− | <b>Number of Participants:</b> | + | <b>Number of Participants:</b> 8 <br/> |
<b>Objectives:</b> | <b>Objectives:</b> | ||
− | *To look at the feedback with regards to our User Interface | + | * To look at the feedback with regards to our User Interface for the project management module |
− | *To understand any usability problems | + | * To understand any usability problems for the pledging of resource to projects and the use of the project management space observing their behavior |
− | *To improve our web application | + | * To improve the ease of pledging resources to projects and use of the project management space in our web application |
<b>Scope:</b> | <b>Scope:</b> | ||
+ | *Account Module | ||
*Project Request Module | *Project Request Module | ||
*Resource Request Module | *Resource Request Module | ||
Line 339: | Line 359: | ||
=Reflections= | =Reflections= | ||
===Team Reflections=== | ===Team Reflections=== | ||
− | [[File:codezilla_grppic.png| | + | [[File:codezilla_grppic.png|800px|center]] |
As a team, we have learnt that group synergy and proper communication is very important. Without which it would be difficult to work together to pull through with our various responsibilities to meet deadlines. When communication within the team breaks down, it becomes difficult to continue. This is one of the most important thing, whereby we respect each other and are transparent about any issues, enabling us to work together well. | As a team, we have learnt that group synergy and proper communication is very important. Without which it would be difficult to work together to pull through with our various responsibilities to meet deadlines. When communication within the team breaks down, it becomes difficult to continue. This is one of the most important thing, whereby we respect each other and are transparent about any issues, enabling us to work together well. | ||
<br> | <br> |
Latest revision as of 22:56, 22 October 2017
Project Progress Summary
Midterm Slides: here
Deployed Site Link: http://impactlaunch.space
Project Highlights:
To learn more about our Project: Project Description Link
Our project is being divided into a total of 15 iterations and we are currently at sprint 11 (02 October 2017 to 18 October 2017). We have so far completed 70% of our project. We made use of our buffer sprint in sprint 10 to complete our Project Management Module 1 and 2. In these 11 sprints, we have completed 2 User Testings where participants include actual professionals from various industries.
An unexpected event that occured would be that of the Project Management Module being uncompleted in Sprint 8, 9 due to our underestimation. As such, we made use of our buffer sprint in Sprint 10 to complete the Project Management Module.
- Improved the Resource Request statuses by adding coloured labels, making it easier to read and understand requests
- Landing page user interface was improved upon
- Guide for resource management created and included
- Built the Project Management Space that includes User Management and Document Uploading
- Notifications System included into the Navigation bar
Deliverables
Project Status
Project Scope
Module | Status | Confidence Level (0-1) | Comments |
---|---|---|---|
Account Modules (1 and 2) | 100% | 1 | NIL |
Project Module | 100% | 1 | NIL |
Resource Module | 100% | 1 | There were improvements that had to be made with regards to understanding what a resource was and the design during UAT1 |
Search Modules (Project and Resource) | 100% | 1 | NIL |
Project Request Module | 100% | 1 | NIL |
Resource Request Module | 100% | 1 | NIL |
Project Management Modules (1 and 2) | 100% | 1 | Tested in UAT2 in Sprint 11 and there are comments to improve it |
Administration Module | 0% | 0.7 | In Progress |
Project Matching Module | 80% | 1 | NIL |
Feedback and Ratings Module | 0% | 0.5 | Not Started |
Communications Module | 0% | 0.5 | Not Started |
Analytics Module | 0% | 0.5 | Not Started |
There has been no changes made to our Project Scope since Acceptance. Below is our scope and the status of each module.
Project Schedule
To view all versions of the Project Schedule: Project Schedule Link
Iteration | Planned | Actual | Comments |
---|---|---|---|
9 | 4th Sept 2017 (Sprint 9) | 2nd Oct 2017 (Sprint 11) | UAT 2 pushed back from Sprint 9 to Sprint 11 |
8, 9 | 21st Aug, 4th Sept 2017 (Sprint 8, 9) | 18 Sept 2017 (Sprint 10 - Buffer) | Buffer Sprint 10 was used for Project Management Module |
11 | 18 Sept 2017 (Sprint 11) | 02 Oct 2017 (Sprint 11) | Sprint 11 initially did not include X Factor recruitment |
Planned | Actual |
---|---|
Project Metrics
To view more details about the metrics used: Project Metrics Link
Sprint Velocity is a metric that predicts how much work Team Codezilla can successfully complete within our two-week sprint. It is calculated at the end of each sprint by summing the total points of completed user stories. It is used to accurately estimate and how much we are getting done each sprint, in order to estimate better in future.
Scrum Burndown is graphic representation that shows the rate at which work is completed and how much work remains to be done. The chart slopes downward over Sprint duration and across Story Points completed. It shows Team progress towards the Sprint Goal, not in terms of time spent but in terms of how much work remains.
Project Risks
Technical Complexity
We used a Matching Algorithm in order to carry out our project recommendations. This is done through:
- Similarity to the specified user
- Location of the user or Geofencing
Our team made use of the One Signal Platform in order to send out the notifications through Firebase Cloud Messaging and Swift apns. Subscriptions are listened to at the login page and upon each login. The code below initialises the notification subscription. On each subscription change, there is a post call to the DB to store a unique device:ID for each subscriber.
If it is a new subscriber, this logs the user’s latest geo-position in terms of longitude and latitude. However, if the user is being unsubscribed, the user’s particular device:ID is being removed to prevent overhead.
If its a existing subscriber, upon future logins, it updates the DB of the user’s last co-cordinates.
Below are screenshots of notifications being pushed out:
Below is a scoring algorithm on a small dataset to match the project to similar users.
We obtain candidate users based on their similarities in several categories. Scores are being calculated for for candidates in specific category:
- Country
- Project Area/ Cause
- Resource Category
Similarity multipliers help to establish greater scores The logic lies in the fact that: multiple similarities in one category > similarities in separate categories
- For similarities across 2 categories, for example Country and Project Area/Cause, we make use of the ACROSS_SIMILARITY_MULTIPLIER
- For similarities within a category, we make use of the WITHIN_SIMILARITY_MULTIPLIER
We get the latitude and longitude of user upon project creation. After which we obtain users in closest proximity based on defined range (Square perimeter). Lastly, we obtain device:IDs of each user in proximity
As for quality attributes, in terms of security we made use of Spring Security, that includes BCrypt and Variable SALT Authentication, making our application not vulnerable against SQL injections.
In term of performance, our application makes use of many file upload functions that result in the performance slowing after a period of time. As such, in order to ensure that we run at a high performance, our team makes sure that we close all connections and closable stream. We also compress all uploaded images (imgscalr) and remove all the unnecessary pulling of files to store on the local server.
Quality of Product
Intermediate Deliverables
Area of Interest | Link |
---|---|
Project Management | Minutes |
Changes | |
Risks | |
Schedule | |
Metrics | |
Requirements | Scope |
Overview | |
Analysis | Use Case |
Architectural Diagram | |
Design | Prototypes |
Testing | User Testing Link |
Testing
- For every new function developed, we conduct Internal Testing
- We also conduct Regression Testing
- We planned to complete a total of 3 User Acceptance Testings
- We have conducted a total of 2 User Acceptance Testings - one in Sprint 6 and one in Sprint 11.
To learn more about the UAT: User Testing Link
Venue: SMU SIS GSR 2-2
Date:03 August 2017
Time: 7:30PM
Duration: About 30 minutes per user
Number of Participants: 4
Objectives:
- To gather feedback with regards to our User Interface
- To understand any usability problems in the account module, project/ resource module and search modules by observing their behavior
- To improve the account module, project/ resource module and search modules for the web application
Scope:
- Account Module 1 and 2
- Project Module
- Resource Module
- Search Module
Venue: SMU SOL GSR B1-10
Date: 06 October 2017
Time: 11:00AM
Duration: About 30 minutes per user
Number of Participants: 8
Objectives:
- To look at the feedback with regards to our User Interface for the project management module
- To understand any usability problems for the pledging of resource to projects and the use of the project management space observing their behavior
- To improve the ease of pledging resources to projects and use of the project management space in our web application
Scope:
- Account Module
- Project Request Module
- Resource Request Module
- Project Management Module 1 and 2
Deployment
Learn more about our application and explore the projects and resources that we have to offer by clicking on the link provided below. Feel inspired to pledge a resource or jumpstart your very own social impact project and make a difference.
Deployed Site Link: http://impactlaunch.space
Market Questionnaire
To better understand the market and the need for our application, we conducted a survey.
Below are some of our key findings:
- 67% of people don’t know of any current online platforms that allow you to offer up your expertise
- There is a good range of both Project Owners (56%) and Resource Offerors (44%)
- Participants were highly interested in multiple social impact causes and those that ranked the highest were: Health Welbeing, Technology and Children’s Support
To view the Data: Market Questionnaire Results
Reflections
Team Reflections
As a team, we have learnt that group synergy and proper communication is very important. Without which it would be difficult to work together to pull through with our various responsibilities to meet deadlines. When communication within the team breaks down, it becomes difficult to continue. This is one of the most important thing, whereby we respect each other and are transparent about any issues, enabling us to work together well.
Individual Reflections