Difference between revisions of "IS480 Team wiki: 2015T2 Tinkers FinalWiki"
(35 intermediate revisions by 2 users not shown) | |||
Line 45: | Line 45: | ||
______________________________________________________________________________________________________________________________________________ | ______________________________________________________________________________________________________________________________________________ | ||
==Links and Slides== | ==Links and Slides== | ||
− | *View our | + | *View our Final slides [[Media:Tinkers_Final_slides.pdf |here]] |
*View our deployed application in Google Play:[https://play.google.com/store/apps/details?id=com.ionicframework.pytracker944743&hl=en Platinum Yoga] | *View our deployed application in Google Play:[https://play.google.com/store/apps/details?id=com.ionicframework.pytracker944743&hl=en Platinum Yoga] | ||
==Project Progress Summary== | ==Project Progress Summary== | ||
− | + | Final Iteration: 8 (01/04/2015 - 11/04/2015) | |
− | + | *Project has been completed and finalized | |
− | * | ||
*We have done a total of 2 User Tests involving real users | *We have done a total of 2 User Tests involving real users | ||
Line 61: | Line 60: | ||
##Push Notification was dropped | ##Push Notification was dropped | ||
#Two new features are added. | #Two new features are added. | ||
− | ##Integration with | + | ##Integration with Android Calendar (after a student has booked a class,the booking will automatically sync with the user's calendar) |
##Location Selector (enable students to make bookings from 2 branches, namely Marine Parade and Suntec City) | ##Location Selector (enable students to make bookings from 2 branches, namely Marine Parade and Suntec City) | ||
*Completed a user testing with 15 Platinum Yoga students | *Completed a user testing with 15 Platinum Yoga students | ||
Line 130: | Line 129: | ||
|- | |- | ||
− | |rowspan=" | + | |rowspan="7"|Class Module |
|| Browse Classes | || Browse Classes | ||
|| Fully deployed and tested 100% | || Fully deployed and tested 100% | ||
Line 167: | Line 166: | ||
|- | |- | ||
+ | || <b>Integration with Google Calendar</b> | ||
+ | *<span style="color:#33ee88"><b>NEW function</b></span> | ||
+ | || <b>To be completed in iteration 8</b> | ||
+ | |align="center"| <b>0.5</b> | ||
+ | || <b>Hosanna</b> | ||
+ | |- | ||
|rowspan="6"|Workshop Module | |rowspan="6"|Workshop Module | ||
*client request challenges to be under here | *client request challenges to be under here | ||
Line 326: | Line 331: | ||
|| View Contact Us | || View Contact Us | ||
− | *<span style="color:#33ee88"><b>NEW | + | *<span style="color:#33ee88"><b>NEW function</b></span> |
|| Fully deployed and tested 100% | || Fully deployed and tested 100% | ||
|align="center"| 1 | |align="center"| 1 | ||
Line 401: | Line 406: | ||
|- | |- | ||
− | + | |Social Media Module | |
− | || Share | + | || Share upcoming or past bookings |
|| Fully deployed and tested 100% | || Fully deployed and tested 100% | ||
|align="center"| 1 | |align="center"| 1 | ||
Line 408: | Line 413: | ||
|- | |- | ||
+ | |<b>Location Selector Module</b> | ||
+ | || <b>Select branch location before making bookings </b> | ||
+ | || <b>To be completed in iteration 8</b> | ||
+ | |align="center"| <b>0.6</b> | ||
+ | || <b>David & Ricky</b> | ||
+ | |- | ||
|} | |} | ||
Line 476: | Line 487: | ||
|| Yogapedia Analytics Management | || Yogapedia Analytics Management | ||
*database | *database | ||
− | *<span style="color:#33ee88"><b>NEW | + | *<span style="color:#33ee88"><b>NEW function</b></span> |
|| Dropped | || Dropped | ||
|align="center"| 0.5 | |align="center"| 0.5 | ||
Line 504: | Line 515: | ||
|} | |} | ||
− | |||
===Project Schedule (Plan Vs Actual):=== | ===Project Schedule (Plan Vs Actual):=== | ||
====Planned Schedule==== | ====Planned Schedule==== | ||
− | [[Image:Tinkers | + | [[Image:Tinkers final planned.PNG|850px|Left|Tinkers Goals]] |
====Actual Schedule==== | ====Actual Schedule==== | ||
− | [[Image:Tinkers | + | [[Image:Tinkers milestone finalv1 focusV3.PNG|850px|Left|Tinkers Goals]] |
===Schedule Comparison=== | ===Schedule Comparison=== | ||
− | + | ||
+ | *Dropped Analytics module for Yogapedia and Push Notification Module | ||
+ | **Reason: Focus on improving the user interface of the application and testng | ||
+ | *Added Integration with Android Calendar (ad-hoc addition by client) | ||
+ | **Reason: Help users to sync the the bookings to their Google Calendar | ||
+ | *Added Location Selector (ad-hoc addition by client) | ||
+ | **Reason: Allow users to book classes/workshops/retreats at the new Suntec branch | ||
+ | *UAT 2 postponed from 21st March to 28th March | ||
+ | **Reason:28th March was a more ideal date to conduct the testing at Platinum Yoga due to time clashes | ||
===Changes in scope:=== | ===Changes in scope:=== | ||
− | [[Image:Tinkers scope v3( | + | [[Image:Tinkers scope v3(020415).png|center|750px]] |
Details of the changes made: | Details of the changes made: | ||
− | |||
− | |||
− | |||
− | |||
*Secondary | *Secondary | ||
− | ** | + | **Analytics for Yogapedia was dropped to make time for the team to improve on the user interface of the application |
− | ** | + | **Location Selector was added to enable users to book for classes at Suntec City |
− | |||
− | |||
− | |||
*Tertiary | *Tertiary | ||
− | ** | + | **Notification was dropped to make time for the team to improve on the user interface of the application |
− | ** | + | **Integration with Android Calendar to allow students to sync their bookings at Platinum Yoga with their Android phone calendar |
===Project Metrics:=== | ===Project Metrics:=== | ||
====Schedule Metrics==== | ====Schedule Metrics==== | ||
− | + | [[File:Tinkers_Finals_Schedule_Metrics.JPG]] | |
− | [[File: | ||
====Bug Metrics==== | ====Bug Metrics==== | ||
+ | [[File:Tinkers_Finals_Bug_Metrics.JPG]] | ||
− | + | ===Project Risks:=== | |
− | |||
− | === | ||
Our Top 3 Risks: | Our Top 3 Risks: | ||
Line 626: | Line 635: | ||
*Backend developer conducted intensive research and trial & error using different alternatives to insert images into Firebase | *Backend developer conducted intensive research and trial & error using different alternatives to insert images into Firebase | ||
*Base64 decoder was chosen to encode and decode images using text (compatible with Firebase) | *Base64 decoder was chosen to encode and decode images using text (compatible with Firebase) | ||
+ | |||
+ | ==Quality of product== | ||
+ | |||
+ | ===Intermediate Deliverables:=== | ||
+ | |||
+ | {| border="1" cellpadding="4" cellspacing="0" | ||
+ | |- style="background:#F3C530; color:black;" | ||
+ | |align="center"| Stage | ||
+ | |align="center"| Specification | ||
+ | |align="center"| Modules | ||
+ | |- | ||
+ | |||
+ | |rowspan="2"| Project Management | ||
+ | || Minutes | ||
+ | || [https://wiki.smu.edu.sg/is480/IS480_Team_wiki%3A_2015T2_Tinkers_Documentation_Minutes Minutes] | ||
+ | |- | ||
+ | |||
+ | || Metrics | ||
+ | || [https://wiki.smu.edu.sg/is480/IS480_Team_wiki%3A_2015T2_Tinkers_Metrics Metrics] | ||
+ | |- | ||
+ | |||
+ | || Requirements | ||
+ | || Storyboard & Motivation | ||
+ | || [https://wiki.smu.edu.sg/is480/IS480_Team_wiki%3A_2015T2_Tinkers_Project_Motivation Storyboard & Motivation] | ||
+ | |- | ||
+ | |||
+ | |rowspan="2"| Analysis | ||
+ | || Use case | ||
+ | || [https://wiki.smu.edu.sg/is480/IS480_Team_wiki%3A_2015T2_Tinkers_Project_Documentation Use Case] | ||
+ | |- | ||
+ | |||
+ | || Architectural Diagram | ||
+ | || [https://wiki.smu.edu.sg/is480/IS480_Team_wiki%3A_2015T2_Tinkers_Project_Documentation Architectural Diagram] | ||
+ | |- | ||
+ | |||
+ | |rowspan="1"| Design | ||
+ | || UI Prototype | ||
+ | || [[Media:Platinum Yoga Application Mockup UI.pdf | Mockups]] | ||
+ | |- | ||
+ | |||
+ | || Testing | ||
+ | || User test plan | ||
+ | || [https://wiki.smu.edu.sg/is480/IS480_Team_wiki%3A_2015T2_Tinkers_Documentation_Usability_Test Testing] | ||
+ | |} | ||
+ | |||
+ | ===Deployment:=== | ||
+ | |||
+ | View our deployed application in Google Play:[https://play.google.com/store/apps/details?id=com.ionicframework.pytracker944743&hl=en Platinum Yoga] | ||
+ | |||
+ | ===Testing:=== | ||
+ | |||
+ | {| border="1" cellpadding="4" cellspacing="0" | ||
+ | |- style="background:#F3C530; color:black;" | ||
+ | |align="center"| User Test | ||
+ | |align="center"| Date of User Test | ||
+ | |align="center"| Objectives | ||
+ | |align="center"| No of Participants | ||
+ | |align="center" width="10%"| Link | ||
+ | |- | ||
+ | |||
+ | |align="center"| User Test 1 <br/> (Existing Platinum Yoga users) | ||
+ | |align="center"| 30th January 2015 | ||
+ | || | ||
+ | *Allow users to try browsing & booking classes using the phone app | ||
+ | *Receive feedback about the app’s UI | ||
+ | *Receive feedback about what the users would like to see in the app | ||
+ | |||
+ | |align="center"| 10 | ||
+ | |align="center"| [https://wiki.smu.edu.sg/is480/IS480_Team_wiki%3A_2015T2_Tinkers_Documentation_User_Testing1 User Test 1] | ||
+ | |- | ||
+ | |||
+ | |align="center"| User Test 2 <br/> (Existing Platinum Yoga users) | ||
+ | |align="center"| 28th March 2015 | ||
+ | || | ||
+ | Allow users to: | ||
+ | *Browse Classes | ||
+ | *Search Classes | ||
+ | *Browse Appointment | ||
+ | *Book Classes | ||
+ | *Book Appointment | ||
+ | *View Yogapedia | ||
+ | *View Review | ||
+ | *View Hall of Fame | ||
+ | *View Info/Etiquette | ||
+ | *View Contact Us | ||
+ | |||
+ | |align="center"| 15 | ||
+ | |align="center"| [https://wiki.smu.edu.sg/is480/IS480_Team_wiki%3A_2015T2_Tinkers_Documentation_User_Testing2 <b>User Test 2</b>] | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | ==Reflection== | ||
+ | |||
+ | ===Team Reflection:=== | ||
+ | |||
+ | Over the past few months, our team have learnt that preparation, good communication and proper work delegation are the three essential pillars for any project to be managed well and succeed. Whenever we are in doubts, we always clarify them with each other or the client to ensure that the project is executed properly and proceeds in the right direction. We have also embraced learning to learn, a core learning outcome for many courses in SIS, as we learn new skills while doing the project. | ||
+ | |||
+ | ===Managing Client's Expectations:=== | ||
+ | |||
+ | While working closely with our stakeholders, we have learnt that clear communication with our client and sponsor is very important to the success of the project especially when we are gathering all the necessary requirements for the project. Complex technical details are explained in simpler terms to our client to help him understand the project better and be part of the project. We also learn about negotiating and bringing the gap of customer's expectation and concerns and the team's technical ability. This is a very important skill for us as we aim to maintain a good relationship with our clients and deliver as much as we can with the limited resources we have. |
Latest revision as of 16:54, 9 April 2015
Main Wiki | Midterm Wiki | Final Wiki |
______________________________________________________________________________________________________________________________________________
Contents
Links and Slides
- View our Final slides here
- View our deployed application in Google Play:Platinum Yoga
Project Progress Summary
Final Iteration: 8 (01/04/2015 - 11/04/2015)
- Project has been completed and finalized
- We have done a total of 2 User Tests involving real users
Project Highlights:
- Scope of the project has been updated:
- Two features are dropped to allow team to focus on improving the application's user interface.
- Analytics for Yogapedia was dropped
- Push Notification was dropped
- Two new features are added.
- Integration with Android Calendar (after a student has booked a class,the booking will automatically sync with the user's calendar)
- Location Selector (enable students to make bookings from 2 branches, namely Marine Parade and Suntec City)
- Completed a user testing with 15 Platinum Yoga students
- Scheduled handover after final presentation, prepared to conduct proper handover of documentations to Anil (Owner of Platinum Yoga)
- Informed client that support and maintenance of application is not part of the scope for IS480 project
Milestones Completed:
- Proposal Submission
- Acceptance Presentation
- User Test 1
- Release 1
- User Test 2
- Poster Submission
- Final Presentation
Milestones Remaining:
- Poster Day
Project Management
Project Status:
Module | Functionality | Status | Confident Level (0-1) | Comment |
User Account Module | Login/Logout | Fully deployed and tested 100% | 1 | David |
Auto login after 1st successful login | Fully deployed and tested 100% | 1 | David & Ricky | |
Register | Fully deployed and tested 100% | 1 | Hosanna | |
Edit Profile | Fully deployed and tested 100% | 1 | David & Ricky | |
Attendance Checking (barcode) | Fully deployed and tested 100% | 1 | Hosanna | |
View User's Schedule | Fully deployed and tested 100% | 1 | David & Ricky | |
Class Module | Browse Classes | Fully deployed and tested 100% | 1 | Hosanna & Ricky |
Book Classes | Fully deployed and tested 100% | 1 | David & Ricky | |
View Instructor's Information | Fully deployed and tested 100% | 1 | David & Ricky | |
Filter Classes | Fully deployed and tested 100% | 1 | Hosanna & Ricky | |
Waiting List | Fully deployed and tested 100% | 1 | David & Ricky | |
Pull to Refresh | Fully deployed and tested 100% | 1 | Hosanna | |
Integration with Google Calendar
|
To be completed in iteration 8 | 0.5 | Hosanna | |
Workshop Module
|
Browse Workshops/Challenges | Fully deployed and tested 100% | 1 | Hosanna & Ricky |
Book Workshops/Challenges | Fully deployed and tested 100% | 1 | David & Ricky | |
View Instructor's Information | Fully deployed and tested 100% | 1 | David & Ricky | |
Filter Workshops/Challenges | Fully deployed and tested 100% | 1 | Hosanna & Ricky | |
Waiting List | Fully deployed and tested 100% | 1 | David & Ricky | |
Pull to Refresh | Fully deployed and tested 100% | 1 | Hosanna | |
Retreats/TT Module
|
Browse Retreats/TT | Fully deployed and tested 100% | 1 | Hosanna & Ricky |
Book Retreats/TT | Fully deployed and tested 100% | 1 | David & Ricky | |
View Instructor's Information | Fully deployed and tested 100% | 1 | David & Ricky | |
Filter Retreats/TT | Fully deployed and tested 100% | 1 | Hosanna & Ricky | |
Waiting List | Fully deployed and tested 100% | 1 | David & Ricky | |
Pull to Refresh | Fully deployed and tested 100% | 1 | Hosanna | |
Appointment Module | View Categories | Fully deployed and tested 100% | 1 | Hosanna & Ricky |
View Instructors | Fully deployed and tested 100% | 1 | Hosanna & Ricky | |
View Available Timeslots | Fully deployed and tested 100% | 1 | David & Ricky | |
Book Appointments | Fully deployed and tested 100% | 1 | David & Ricky | |
History Module | View Past Bookings | Fully deployed and tested 100% | 1 | David & Ricky |
View Past Purchases | Fully deployed and tested 100% | 1 | Hosanna & Ricky | |
Review Module | Write Reviews for Classes
|
Fully deployed and tested 100% | 1 | David & Johnathan |
Rate Classes
|
Fully deployed and tested 100% | 1 | David & Johnathan | |
Display Reviews for Classes
|
Fully deployed and tested 100% | 1 | Hosanna & Johnathan | |
View Health Tips
|
Fully deployed and tested 100% | 1 | Hosanna & Johnathan | |
FAQ Module | View Information/Etiquette
|
Fully deployed and tested 100% | 1 | David & Johnathan |
View About | Fully deployed and tested 100% | 1 | Hosanna | |
View Contact Us
|
Fully deployed and tested 100% | 1 | Hosanna | |
Promotions Module
|
View Promotions | Fully deployed and tested 100% | 1 | David |
Special Events Module
|
View Special Events | Fully deployed and tested 100% | 1 | Hosanna |
PY Privileges Module
|
View PY Privileges | Fully deployed and tested 100% | 1 | Hosanna |
Hall of Fame Module | Display Winners
|
Fully deployed and tested 100% | 1 | David & Johnathan |
Admin Portal | User Reviews Management
|
Fully deployed and tested 100% | 1 | David & Johnathan |
Hall of Fame Management
|
Fully deployed and tested 100% | 1 | David & Johnathan | |
Information & Etiquette Management
|
Fully deployed and tested 100% | 1 | Hosanna & Johnathan | |
Health Tips Management
|
Fully deployed and tested 100% | 1 | Hosanna & Johnathan | |
Yogapedia Module | View Poses under Different Categories
|
Fully deployed and tested 100% | 1 | Hosanna & Johnathan |
Social Media Module | Share upcoming or past bookings | Fully deployed and tested 100% | 1 | Hosanna & Johnathan |
Location Selector Module | Select branch location before making bookings | To be completed in iteration 8 | 0.6 | David & Ricky |
Module(s) Removed:
Module | Functionality | Status | Confident Level (0-1) | Comment |
Event Module | Browse Events | Completed | 1 | Hosanna & Ricky |
Book Events | Completed | 1 | David & Ricky | |
View Instructor's Information | Completed | 1 | David & Ricky | |
Filter Events | Completed | 1 | Hosanna & Ricky | |
Waiting List | Completed | 1 | David & Ricky | |
Pull to Refresh | Completed | 1 | Hosanna & Ricky |
Module(s) Dropped:
Module | Functionality | Status | Confident Level (0-1) | Comment |
Admin Portal | Yogapedia Analytics Management
|
Dropped | 0.5 | David & Johnathan |
Yogapedia Analytics Module | Record User's progress
|
Dropped | 0.5 | David & Johnathan |
Notification Module | Push Out Events | Dropped | 0.5 | David & Ricky |
Push Out Reminders | Dropped | 0.5 | David & Ricky |
Project Schedule (Plan Vs Actual):
Planned Schedule
Actual Schedule
Schedule Comparison
- Dropped Analytics module for Yogapedia and Push Notification Module
- Reason: Focus on improving the user interface of the application and testng
- Added Integration with Android Calendar (ad-hoc addition by client)
- Reason: Help users to sync the the bookings to their Google Calendar
- Added Location Selector (ad-hoc addition by client)
- Reason: Allow users to book classes/workshops/retreats at the new Suntec branch
- UAT 2 postponed from 21st March to 28th March
- Reason:28th March was a more ideal date to conduct the testing at Platinum Yoga due to time clashes
Changes in scope:
Details of the changes made:
- Secondary
- Analytics for Yogapedia was dropped to make time for the team to improve on the user interface of the application
- Location Selector was added to enable users to book for classes at Suntec City
- Tertiary
- Notification was dropped to make time for the team to improve on the user interface of the application
- Integration with Android Calendar to allow students to sync their bookings at Platinum Yoga with their Android phone calendar
Project Metrics:
Schedule Metrics
Bug Metrics
Project Risks:
Our Top 3 Risks:
Risk | Probability | Impact | Mitigation |
Problems encountered from third party vendor (MindBodyOnline) & unclear API instruction | Medium | High | Run frequent testing and alert MindBodyOnline immediately. Readjust project schedule to ensure that other tasks can be done while waiting for replies or MindBodyOnline to resolve the issue. |
Updates in scope from client | Medium | High | Establish a standard which is agreeable for client and readjust schedule and resources to attempt to deliver what the client needs. Establish constant communication with client to keep him in the development loop. |
With the usage of new technologies, we may run into trouble implementing certain complex functionality | Medium | Medium | Research and allocate more time for technology familiarization and consider alternative. |
Technical Complexity:
Using MindbodyOnline API
- As we cannot directly send requests from our mobile application to the MindBodyOnline API, we need to use a web server and php scripts to act as a middleman to do that
- Soap Client function in the php is used to communicate with the MindBodyOnline API
- The execute tag is not in the documentation. Have to trial and error to work with the API.
- Mindbody also took quite some time to reply which slowed down our development.
Ionic Platform:
- Learning Ionic Platform as front-end for our project
- Mastering the 2 way data binding (from front to back and vice versa)
- (first picture) Ionic method is called from the front-end to pass data to the controller which then passes the data to the factory before the data gets transferred to the MindBodyOnline API.
- (second picture)Data is retrieved using server from the MindBodyOnline API within the factory. Controller then use the same factory to get the data before iterating it through from the front.
- Loading Time Issues
- Developers realised that data from API need to be retrieved earlier in the factories (call these factories earlier), before pulling them from the controllers. This will enable the data to display on time if not the information will only show up after a longer time.
Using Phonegap Plugins for Ionic Project
- Developer has experience using Phonegap Build service to deploy Android application, however, support for deploying Ionic applications using Phonegap plugins on Phonegap Build service is limited
- Need to understand how to use Phonegap Plugins(eg. opening browser) work for Ionic projects.
Default Ionic Project config.xml Configurations:
Changes Made to Implement Phonegap Plugins for Ionic Project:
Phonegap Plugins used:
Displaying Images in Firebase
Adding a particular pose for Yogapedia on the portal:
Retrieving the picture from Firebase (HTML Codes):
Firebase Structure:
- Firebase has limitation in uploading images and photos
- Backend developer conducted intensive research and trial & error using different alternatives to insert images into Firebase
- Base64 decoder was chosen to encode and decode images using text (compatible with Firebase)
Quality of product
Intermediate Deliverables:
Stage | Specification | Modules |
Project Management | Minutes | Minutes |
Metrics | Metrics | |
Requirements | Storyboard & Motivation | Storyboard & Motivation |
Analysis | Use case | Use Case |
Architectural Diagram | Architectural Diagram | |
Design | UI Prototype | Mockups |
Testing | User test plan | Testing |
Deployment:
View our deployed application in Google Play:Platinum Yoga
Testing:
User Test | Date of User Test | Objectives | No of Participants | Link |
User Test 1 (Existing Platinum Yoga users) |
30th January 2015 |
|
10 | User Test 1 |
User Test 2 (Existing Platinum Yoga users) |
28th March 2015 |
Allow users to:
|
15 | User Test 2 |
Reflection
Team Reflection:
Over the past few months, our team have learnt that preparation, good communication and proper work delegation are the three essential pillars for any project to be managed well and succeed. Whenever we are in doubts, we always clarify them with each other or the client to ensure that the project is executed properly and proceeds in the right direction. We have also embraced learning to learn, a core learning outcome for many courses in SIS, as we learn new skills while doing the project.
Managing Client's Expectations:
While working closely with our stakeholders, we have learnt that clear communication with our client and sponsor is very important to the success of the project especially when we are gathering all the necessary requirements for the project. Complex technical details are explained in simpler terms to our client to help him understand the project better and be part of the project. We also learn about negotiating and bringing the gap of customer's expectation and concerns and the team's technical ability. This is a very important skill for us as we aim to maintain a good relationship with our clients and deliver as much as we can with the limited resources we have.