HeaderSIS.jpg

IS480 Team wiki: 2014T1 Happy Sounds Midterm Wiki

From IS480
Jump to navigation Jump to search

Happysounds logo.png

MAIN WIKI   MIDTERM WIKI   FINAL WIKI  


Links and Slides

View our midterm presetation slides !
View our deployed Carousell web application here!

Project Progress Summary

Current Iteration: 7 (04/10/2014 - 16/10/2014)

  • Till date of 09/10/2014, we have completed 62% of our project
  • Next Iteration starts on 17/10/2014 and ends on 31/10/2014
  • Completed development of brand new Offers Management Functionality that is only available on the web application
  • Release and Deployment of our web application using Carousell live database

Project Highlights

  • Added and completed a small User Test after acceptance with 5 existing Carousell Users
  • Completed planned user test with 75 new and existing Carousell users
  • No features removed from scope
  • 2 new features added to scope
  • Steep learning curve for front-end technologies

Milestones Completed

  • Proposal Submission
  • Acceptance Presentation
  • User Test 1
  • User Test 2
  • Release 1

Milestones Remaining

  • User Test 3
  • Release 2
  • Poster Submission
  • User Test 4
  • Final Release
  • Final Presentation
  • Poster Day

Project Management

Project Status

Module Functionality Status Confidence Level (0-1) Comment
User Account Module Login (email & Facebook) Fully implemented and deployed.
User tested in UT1 & UT2
1 U San & Yi Sheng
Logout Fully implemented and deployed.
User tested in UT1 & UT2
1 U San & Yi Sheng
Register (email & Facebook) Fully implemented and deployed.
User tested in UT1 & UT2
1 U San & Yi Sheng
Password Reset Fully implemented and deployed.
User tested in UT1 & UT2
1 U San & Yi Sheng
Product Listings Module Browse Product Listings Fully implemented and deployed.
User tested in UT1 & UT2
1 U San & Yi Sheng
Search Products Fully implemented and deployed.
User tested in UT1 & UT2
1 U San & Yi Sheng
Product Filters (Category, Min & Max Price, Sort, Geolocation) Fully implemented and deployed.
User tested in UT1 & UT2
1 U San & Yi Sheng
User Profile Module Search Users Fully implemented and deployed.
User tested in UT1 & UT2
1 U San & Yi Sheng
View User Profile Fully implemented and deployed.
User tested in UT1 & UT2
1 U San & Yi Sheng
Listings by User Fully implemented and deployed.
User tested in UT1 & UT2
1 U San & Yi Sheng
User Profile (Product Category Filter) Fully implemented and deployed.
User tested in UT2
1 U San & Yi Sheng
Recent Listings by User Fully implemented and deployed.
User tested in UT2
1 U San & Yi Sheng
Product Details Module View Product Details Fully implemented and deployed.
User tested in UT2
1 U San & Yi Sheng
View Product Comments Fully implemented and deployed.
User tested in UT2
1 U San & Yi Sheng
Add Product Comment Fully implemented and deployed.
User tested in UT2
1 U San & Yi Sheng
Recommended Product Fully implemented and deployed.
User tested in UT1 & UT2
1 U San & Yi Sheng
Buy Now (Chat) Fully implemented and deployed.
User tested in UT2
1 U San & Yi Sheng
Offers Management Module Chat to Buy Fully implemented and deployed.
User tested in UT2
1 U San & Yi Sheng
Offer Filters (Offer Type & Offer Status) Fully implemented and deployed.
User tested in UT2
1 U San
Sort Offers Fully implemented and deployed.
User tested in UT2
1 U San & Yi Sheng
Search Offers Fully implemented and deployed.
User tested in UT2
1 U San & Yi Sheng
User Profile Module Follow Users To be developed in Iteration 7 1 Yi Sheng
User Review Ratings To be developed in Iteration 7 1 U San & Yi Sheng
Update User Profile To be developed in Iteration 8 1 U San & Yi Sheng
Product Details Module Like Product To be developed in Iteration 7 1 U San & Yi Sheng
Share Product (Facebook/Pinterest/Twitter) To be developed in Iteration 7 1 Yi Sheng
List/Sell Product Module Progressive Validation To be developed in Iteration 8 0.8 U San & Yi Sheng
Image Upload To be developed in Iteration 8 0.8 U San & Yi Sheng
User Account Module Activity/Notification Log To be developed in Iteration 8 0.5 U San & Yi Sheng
Time-based Security Token To be developed in Iteration 9 0.5 U San

Planned Schedule Vs Actual Schedule

Planned Schedule
HS Planned Schedule.JPG
Actual Schedule
HS Actual Schedule.JPG
Changes in User Test date

  • Changed the number of UTs from 3 to 4
    • Added in additional UT1 scheduled on 14th September
  • Changed UT 2 start date from 29th September to 4th October


Schedule Comparison
HS Schedule Comparison1.JPG

  • Change 1 - Earlier completion of Iteration due to lower count of bugs. So, we ended iteration early to devote more time for implementation of more complex functionalities in future iterations.
  • Delay 1 - Major Delay was faced due to scope expansion. "User Profile (Product Category Filter)" was added to the scope as per client requirements. Thus, we needed more time to complete the additional feature as well as the planned features for the particular iteration.
  • Delay 2 - Delay caused due to underestimation of time required to develop an entirely new feature from scratch. "Offers Management" is not a part of the Mobile app. So, we had to develop it from scratch due to which a large number of bugs were detected. Extra time was required to debug the application

Man Hours Calculation

HS Manhour Calculation.JPG

  • Roughly reached our target of 12 hours/ member/ week

Changes in Scope


HS Change in Scope.png

Project Metrics

Schedule Metrics

HS Schedule Metrics.JPG

  • Iteration 1,2, 3 & 4 are within the safe zone
  • Iteration 5 - Major delay was caused due to scope expansion. Schedule was revised for Iteration 6 & 7
  • Iteration 6 - Delay was caused due to underestimation of time required to develop an entirely new feature from scratch and then to debug the application. UT2 was postponed as we wanted to debug the application before the UT. Scope and schedule have been revised for all future iterations.

Bug Metrics

Click here to find out how we calculate our bug score and what are the respective action plans for different category of score.

HS Bug Metrics Score.JPG HS Bug Impact Distribution.JPG

  • Bug scores for Iteration 3, 4, & 5 are within the safe zone
  • Bug score exceeded safe limit in iteration 6. This was due to the development of an entirely new feature "Offers Management" available only on Carousell web application.


Outstanding Bug
HS outstanding bug.png

  • Iteration 5: Product Details page - Product title extends out of image thumbnail (hover over images from 'Other items from the same category')

Project Risks

Click here to view all our Risks

Top 3 Risks

Risk Event Likelihood Impact Category Mitigation
Difficult to meet client as Carousell is now rapidly expading to SEA region due to which the clients are very busy (remain abraod for long periods) High Medium A Communicate with the clients via HipChat to update them on the progress and to get their feedback
Sponsors make major changes to functionalities in their native app, thus necessitating a rescope of our web app Medium High A Regular communication with the clients to keep ourselves informed about the latest status in the firm
With the usage of new technologies, we may run into trouble implementing certain complex functionality Medium High A

Research more on the support our technologies have for the functionalities we need, and consider alternatives

Technical Complexity

Click here to view our Technical Complexities

Local Django Backend

  • While a Vagrant box had been set up for us to replicate the Django backend, we still had to do much work before we could get the actual server up and running
  • Manually installed services such as elasticsearch server, rabbitmq, and redis, as well as specific installation steps like those required for PostGIs
  • Research and implement workaruonds for unexpected bugs inherent when integrating many libraries
  • Populate test database with hundreds of products imported from the live database

Combining Angular and Flask

  • Since Angular was designed to handle routing, the framework assumes that routing should be handled in Angular. This meant we had to deal with issues relating to linking between pages, which no longer work when we are not using Angular's routing.
  • Flask's jinjga templates uses the same double curly braces as Angular's templating system, which required yet another set of workarounds.

Responsive CSS with Media Queries

  • We relied on CSS as opposed to the Javascript alternative
  • We kept track of the different screen sizes to target, tweaking the sizes and margins as we went along, ensuring that elements are not out of alignment.

Serializers in Django

  • Code reuse – If a new variable is added or renamed, we only have to update it in one place, and all views that use this serializer would be automatically updated.

Offers Management APIs

  • Single API is used to handle multiple permutations of search parameters
  • Makes integration with Angular development easier
  • Complexity faced due to the fact that we have several permutations of different states – pending, accepted, declined, and different sort options – username ascending and descending, etc, etc.

Quality of Product

Intermediate Deliverables

Stage Specification Links
Project Management Meeting Minutes Meeting Minutes
Schedule Metrics Schedule Metrics
Bug Metrics Bug Metrics
Requirements Motivation Video Video
Analysis Use Case Use Case
Architecture Diagram

System Architecture Overview
Django backend listings app
Django backend accounts app

Offers State Diagram Offers State Diagram
Design UI Prototype Mockups
Testing User test plan Testing

Deployment

Deployed Carousell application with live database

User Testing

User Test Date of User Test Objectives No of Participants Link
User Test 1
(Existing Carousell users)
14/09/2014 - 15/09/2014
  • Gather feedback regarding user interface of developed functions from existing users
  • Detect usability issues based on user behavior
  • Find out which developed functions are the most important & provides the best user experience
  • To use UT results to improve our web application
5 User Test 1
User Test 2
(Existing and New Carousell users)
04/10/2014 - 06/10/2014
  • Gather feedback regarding user interface of developed functions
  • Detect usability issues based on user behavior
  • Find out if new users are able to easily learn and use the application
  • Find out if Offer Management is effective for different groups of users
  • Find out which developed functions are the most important & provides the best user experience
  • To use UT results to improve our web application
75 User Test 2

Reflection

As a Team:

  • Learn about real world projects and the complexities associated
  • Learn new technologies
  • Learn to work as per a changing scope as specified by the client
  • Learn to coordinate within the team
  • Learn to improve an existing application and value add to our client
  • Learn to juggle the rest of our projects along with FYP

Sulovna Susant:

  • Enhanced and improved on project management skills
  • Learnt to keep the team on track and informed of the happenings
  • Learnt to balance between gaining technical knowledge to understand developer’s concerns, and project management
  • Learnt to balance the needs of various stakeholders, with the team’s capability and schedule in mind

Heng U San:

  • Learnt the power of automated task runners to streamline build process
  • Learnt the importance of good modular backend structure
  • Learnt the importance of communication code collaboration
  • Learnt what it takes to maintain a responsive web design

Lim Yi Sheng

  • Learnt how to use a framework such as AngularJS to best manage presentation logic
  • Learnt how to negotiate with stakeholders and strike a balance between their expectations and what I can achieve
  • Learnt and understood industry best practices and design trends, and mimicked them for this project
  • Learnt importance of communication for code collaboration

Tan Qi Yang

  • Enhanced and improved on project management skills
  • Learnt the nuances of a QA: When to and not to allow the developer to release application in order to meet deadline
  • Learnt to conduct user tests and gather feedback to deliver a quality application
  • Learnt to work closely with developers to meet deadlines