Difference between revisions of "IS480 Team wiki: 2013T2 Carpe Diem Final Wiki"
Line 130: | Line 130: | ||
<b>Real-time notifications</b><br> | <b>Real-time notifications</b><br> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
[[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:
- Completed UT 1 on the Customers (Student Users)
- Completed UT 2 on the Administrators
- Completed UT 3 on the Sub-Contractors
- Completed UT 4 on the Administrators and Customers
- Completed UT 5 on the performance of the integrated application
- Project successfully gone live on 24 March 2014
- 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 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:
- Data Analytics (Good-To-Have function)
- Is of less value to sponsor than enhancing usability
- Offline Booking (Tertiary function)
- Cases of having to make an offline booking is too minute
Added:
- 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
- One-time login (Tertiary function)
- Allows Customer and Sub-Contractor to only register and login once, after which app will remember credentials
- 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
- Large amount of change requests
- Throughout the project, we received a total of 89 change requests, of which we completed 53.
- Making the communication between 3 systems robust
- Linking the communication between the 3 systems turned out to be more complex than we expected
- 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)
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.
Real-time notifications
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.
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 |
|
Group 1 (Time Based & Single Trip) Observations
|
UT2 | Objective: Gauge business process fit and usability of admin portal web app Number of users: 2 |
||
UT3 | Objective: Gauge business process fit and usability of subcon mobile app Number of users: 1 subcon, 20 students |
Student Questionnaire |
|
UT4a | Objective: Gauge usability of admin portal web app Number of users: 2 |
||
UT4b | Objective: Gauge usability of customer mobile app through A/B testing Number of users: 19 |
||
UT5 | Objective: Stress test for all 3 systems Number of users: 20 - 2 admin, 5 subcon, 13 customers |
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.
Sponsor Comment
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.