HeaderSIS.jpg

Difference between revisions of "IS480 Team wiki: 2013T2 Carpe Diem Final Wiki"

From IS480
Jump to navigation Jump to search
Line 130: Line 130:
  
 
<b>Real-time notifications</b><br>
 
<b>Real-time notifications</b><br>
Google Cloud Messaging is not sufficiently satisfying for upstream messaging from client to server, so we chose to adopt PubNub. PubNub is a third party tool to build real-time apps. We use PubNub to implement real-time notification for upstream messaging. Initially we chose Google Channel API, but there are some obvious disadvantage of Google Channel API:
 
# Time to live of the channel
 
#* It opens for only a maximum of 24 hours and cannot be reopened again. So we need to create a new channel every time when we check in.
 
# The performance of supporting one-to-many messaging is not sufficiently satisfying.
 
 
PubNub uses Publish/Subscribe Model for real-time messaging and signaling. It can support Broadcast (one-to-many) real-time messages to a huge user base. Channel push enables the delivery of high volumes of parallel push notifications instantly. And pushing messages across mobile, browser, desktop and server are with a single API.
 
  
 
[[image:CD Pubnub.png|center|600px]]
 
[[image:CD Pubnub.png|center|600px]]

Revision as of 10:06, 20 April 2014

Project Progress Summary

<Final Presentation Slides Link>

Links to Deployed Application

Application Name Link to Deployed Application
Customer Booking Application Customer App
Sub-Contractor Application Sub-Contractor App
Administrator Portal http://kohbusapp.appspot.com/


The following are test accounts for each application:

Account Type Username Password
Administrator 91234567 password


For the Customer and Sub-Contractor application, accounts have to be created on devices as every account is tagged to a device ID, which renders it invalid if created independently without a specific device.

The following are some suggestions for Customer and Sub-Contractor Accounts (which requires registration):

Account Type Username Password
Customer 98765432 password
Sub-Contractor 98989898 password


The project started on the 06 September 2013 and by Iteration #7 (Last Iteration), Carpe Diem has completed the following key accomplishments:

  1. Completed UT 1 on the Customers (Student Users)
  2. Completed UT 2 on the Administrators
  3. Completed UT 3 on the Sub-Contractors
  4. Completed UT 4 on the Administrators and Customers
  5. Completed UT 5 on the performance of the integrated application
  6. Project successfully gone live on 24 March 2014
  7. Efficiently managed the 3 platforms (Customer, Administrator and Sub-Contractor)

Project Highlights

Project Overview

We have completed all the modules listed in our scope diagram. Besides completion of functionalities, we explored on how we can improve the applications based on feedback from our user testings and stakeholders.


Project Scope

View Project Scope here

View List of Documented Changes

Functionality Changes

Due to feedback from midterms that we should focus more on the usability of the applications and that we should focus on actual deployment, we experienced the following scope changes:

Dropped:

  1. Data Analytics (Good-To-Have function)
    • Is of less value to sponsor than enhancing usability
  2. Offline Booking (Tertiary function)
    • Cases of having to make an offline booking is too minute

Added:

  1. Autocomplete forms (Tertiary function)
    • Allows Administrator, Sub-Contractor and Customer App to save the typed information for contact details for the past 5 latest inputs
  2. One-time login (Tertiary function)
    • Allows Customer and Sub-Contractor to only register and login once, after which app will remember credentials
  3. Schedule Calendar View (Good-to-have function)
    • Sponsor wanted to have a calendar overview of the job assignments to sub-contractor upon confirmation of task

Project Challenges

  1. Large amount of change requests
    • Throughout the project, we received a total of 89 change requests, of which we completed 53.
  2. Making the communication between 3 systems robust
    • Linking the communication between the 3 systems turned out to be more complex than we expected
  3. Evaluating the qualitative and quantitative data for User Tests
    • Due to the large number of User Tests conducted by our group (5 UTs), we had to process much information at the end of every UT and identify the useful feedback

Project Achievements

1. Schedule metrics never went over 120%
2. Completed 5 different user tests, and met with all real users (customers, admins, subcon) to gather feedback
3. Project is fully deployed by end of schedule

Project Management

We have completed all the Core, Secondary, Tertiary and Good-To-Have Functions of our system and it is now fully functional.

Provide more details about the status, schedule and the scope of the project. Describe the complexity of the project.

Project Schedule (Plan Vs Actual)

Carpediem PlannedVSactual v3.png
Iteration/UT Number Reason for Delay Mitigation
UT #1 Delay by 2 days due to inaccurate time estimate for usability improvements Increased the number of days for usability improvements from 2 days to 3 days for subsequent user tests
#5 1 day delay due to the underestimation of time required for notifications No mitigation was done because notifications was only touched on in this iteration

Overall, from midterm to finals, everything went as planned even with the addition of new functionalities.

Project Metrics

Click here to view our latest project metrics!

Technical Complexity

Technical Resources
For the customer and subcon Android applications, Google Cloud Endpoints are used as a tool to carry out read and write operations to the database. Cloud Endpoints can be used to
autogenerate APIs and client libraries, so we can customise the various retrieval and writing methods regarding data access.

App Engine (in combination with Cloud Endpoints) enabled us to leverage on Google’s engineering and infrastructure in alleviating our concerns on scaling, infrastructure and operational challenges.

We can host an API on Google App Engine using Cloud Endpoints, then generate client libraries. Cloud Endpoints provides annotation support for simplicity, also supports multiple client environments, and offers documentation and examples. Cloud Endpoints provides a very simple server-code annotation language that turns standard code elements into APIs, with support for various programming languages.

Cloud Endpoints generates native client libraries for web pages and mobile apps. This lets us focus on coding and minimize the overhead associated with processing and parsing low-level communications. If we change the API, the client-side library will be updated immediately and has all the methods. That is a huge advantage, especially if we want to iterate quickly.


Cd resources.jpg



Real-time notifications

CD Pubnub.png



Calendar Customisation
The default Calendar widget provided by the Android API offered selection of dates on click, but did not navigate to a second page where the event details were shown. For the subcon Android application, there had to be a calendar function that allowed the subcons to view the event details, the most important of which were the time, customer name and pick up point. An existing third party application, TimesSquare for Android, was used as a starting point for us to modify the code, so that we could change the layout and functionality. Red pointers or highlights in green would indicate the days where there was a confirmed job request.

Cd customised calendar.jpg

Quality of product

Project Deliverables

Stage Specification Modules
Project Management Minutes Meeting Minutes
Metrics Metrics Management
Analysis Use case Use Case Diagrams
System Sequence Diagram Sequence Diagrams and System Sequence Diagrams
Business Process Diagram Business Workflow
Design ER Diagram ER Diagrams
Class Diagram Class Diagram
Testing Test plan Test plan
Handover Manuals Koh Bus User Manual (Administrator), Koh Bus User Manual (Sub-Contractor)
Code Passed the codes to client. Residing on Google App Engine.
Deployment Diagram instructions

Quality

Design pattern: MVC for web portal
Fault tolerance: in customer application, cannot view buses when there is no internet connection, so they cannot make a booking. Admin and subcon application are assured to always run with internet connection.
Reliability and performance: Admin portal can handle up to 50 bookings in a 30 minute time interval.
Maintainability: Quota and scalability is auto-managed by Google App Engine.
Usability: Conducted 5 user tests for all 3 stakeholders, including a stress test to determine capacity of server.

Deployment

The systems has been fully deployed twice, Go Live #1 (on 24/03/2014) and Go Live #2 (on 11/04/2014).

Testing

Internal Testing

Our methodology is to do Regression Testing, where we will conduct tests on all previously completed functions to ensure that no new faults are being introduced when the newly completed functions are integrated with the old ones.

Click on the link to view our test cases for Functional Testing

User Testing

UT Summary Documents Result Data
UT1 Objective: Gauge usability of customer booking mobile app

Number of users: 19
User profile: students
Date: 18, 19 December 2013


Informed Consent Form
Questionnaire
Study Script
User Testing Instructions

Group 1 (Time Based & Single Trip) Observations
Group 2 (Time Based & Return Trip) Observations
Questionnaire Responses
UT1 Compiled Bugs


UT2 Objective: Gauge business process fit and usability of admin portal web app

Number of users: 2
User profile: Actual users - KohBus admins
Date: 13 February

Questionnaire
Study Script
User Testing Instructions

Observations & Questionnaire Responses
Compiled Bugs

UT3 Objective: Gauge business process fit and usability of subcon mobile app

Number of users: 1 subcon, 20 students
User profile: Actual subcon, and university students
Date: 20 March

Student Questionnaire
Subcon Questionnaire
Study Script
User Testing Instructions

Observations & Questionnaire Responses

UT4a Objective: Gauge usability of admin portal web app

Number of users: 2
User profile: Actual users - KohBus admins
Date: 27 March

Questionnaire
Study Script
User Testing Instructions

Observations & Questionnaire Responses
Compiled Bugs

UT4b Objective: Gauge usability of customer mobile app through A/B testing

Number of users: 19
User profile: Previous users from UT1
Date: 28 March

UT5 Objective: Stress test for all 3 systems

Number of users: 20 - 2 admin, 5 subcon, 13 customers
User profile: SMU students
Date: 4 April

Slides for students

Reflection

Team Reflection

1. Change management has taken up an unexpectedly large amount of time and effort on our part. We understand how important it is to have face to face communicate with our client, in order to fully gather details of his requirements. We also learnt how to manage the changes that need to be implemented, and how we have to modify our schedule to roll them out.
2. Meeting up with the actual stakeholders for user testing has helped us gain important feedback on whether our idea of user-system interaction is accurate or not. Speaking to them has also allowed us to learn more about what we can do to improve the user experience.
3. Internal communication is very important so that we can have the same understanding of what tasks need to be completed.

Individual Reflection

Hui Qi: I learnt the importance of communication with our supervisor, client as well as internally. Change management has been the focus post-midterms and I now understand how much iterative work is required in order to bring the system from a prototype to deployment.

Qilin: Through my research and comparing of various methods to implement the system's functionalities, I have learnt a lot about system design principles. This has made me more efficient at carrying out research.

Zhongyun: On top of the integration of front and back end codes, I have also enhanced my knowledge of usability in both web and Android applications. As such, communication internally in order to make the development and usage of the system cohesive has become extremely important.

Nicholas: I have learnt a considerable amount about researching of new methods, and how to implement changes into the applications. Iteratively making changes to the system from the change management has also enhanced my knowledge of system design.

Xin Lin: Applying user test results for usability and functionality has taught me a great deal about the importance of data collection. I am now able to better plan user tests in order to get the data we require. I have also learnt more about the various types of tests.

Mr Koh, CEO of KohBus:

This app reduces turnaround time by giving users an immediate initial quotation for a bus service trip they are enquiry for. It also reduces the administrative men hours in documenting user’s requirement before linking it up with a subcontractor.

The notification feature and an overview of all assigned tasks via a calendar, believed it will assist drivers/subcontractor to do a proper scheduling of their resources and maximize their returns.