IS480 Team wiki: 2016T1 FitNexx6 Final Wiki
- 1 Project Progress Summary
- 2 Project Management
- 3 Quality of Product
- 4 Reflection
Project Progress Summary
- Successfully implement MapBox into FitNexx Mobile App.
- Completed User Testing 1 with encouraging results. Almost all key featured yielded no major bugs.
- Republic Polytechnic (RP), St Joseph Institude (SJI) expressed interest in the application.
- Held preliminary talks with RP to know more about their needs as well as to gain feedback about our current app
- Pitched project to Red Hat.
- Completed User Testing 2, which included iOS.
- Successfully deployed app onto Apple App Store and Google Play Store
- Completed Final User Acceptance Testing
|#||Task Description||Status||Confidence Level||Remarks|
|1||User Module||Development 100% Completed & Tested. Published on Google Play Store & Apple App Store||1.0||-|
|2||Fitness Module||Development 100% Completed & Tested. Published on Google Play Store & Apple App Store||1.0||-|
|3||Reward Module||Development 100% Completed & Tested. Published on Google Play Store & Apple App Store||1.0||-|
|4||Monitoring Module||Development 100% Completed & Tested. Published on Google Play Store & Apple App Store||1.0||-|
|5||View Redemption History (Admin Module)||Development 100% Completed & Tested. Deployed on production server.||1.0||-|
|6||Create/Modify Checkpoints + Generate Checkpoint QR Code (Admin Module)||Development 100% Completed & Tested. Deployed on production server.||1.0||-|
|7||Staff Account Management (Admin Module)||Development 100% Completed & Tested. Deployed on production server.||1.0||-|
|8||Manage Rewards + Inventory (Admin Module)||Development 100% Completed & Tested. Deployed on production server.||1.0||-|
|9||Missions (Gamification Module)||Development 100% Completed & Tested. Published on Google Play Store & Apple App Store||1.0||-|
|10||Mission Management (Gamification/Admin Module)||Development 100% Completed & Tested. Deployed on production server.||1.0||-|
|11||Clan 'Adventure' (Gamification Module)||Development 100% Completed & Tested. Published on Google Play Store & Apple App Store||1.0||-|
|12||Analytics Module||Development 100% Completed & Tested.||1.0||-|
|13||News Module||Development 100% Completed & Tested. Published on Google Play Store & Apple App Store||1.0||-|
|14||User Onboarding Tutorial (Misc Feature)||Development 100% Completed & Tested.||1.0||-|
Project Schedule (Planned Vs. Actual)
Original Project Timeline (Acceptance)
Current Project Timeline
|Point||Description||Reason for Change|
|A||Redeem Rewards and Admin Login/Logout brought forward from Iteration 4. Manage rewards brought forward from Iteration 6||Separate developer for developing Admin Portal, hence task brought forward. Team decided that having different developers on different platform would help increase pace of development as long as there was constant communication.|
|B||Addition of User Tiering & Viewing Reward Redemption History & Manage checkpoints||Previously not added in old timeline, but is part of client's requirements.|
|C||Addition of Activeness Tracking & Bringing forward of Edit Users||Activeness Tracking added in as part of Change Request #2. View change requests here.|
|D||Bringing forward development of Gamification Module||Upon recommendation of our supervisor as this is one of our secondary modules and one of our key features, we should do it before Analytics.|
|E||Monitoring Module pushed back. Previously from Iteration 6.||Development still at early stage, not enough data to properly design the dashboard.|
|F||Analytics Module pushed back. Previously form Iteration 8.||See Point D. In addition, additional use cases were added for analytics.|
|G||Addition of an new feature in the Gamification Module||'Adventure' added in as part of Change Request #3. View change requests here.|
|H||Date of User Testing 2 pushed back to 26th Sep. Previously 5th Sep.||Delay in getting iOS Developer Program Account as well as in development of iOS features.|
- Iteration 2 was the first coding iteration. Members were still learning the technologies required. Planning of tasks were still unrefined.
- Subsequent iterations were more stable
- Iteration 7 went slightly below the mark as it was the start of the development on the iOS platform and due to limited resources (Mac OS with Xcode), the development was slower than expected.
Throughout the project there were various risks which our team identified and planned appropriate mitigation. As the project progressed the nature of risks changed and our team was required to reevaluate and reassess the various risks. At the beginning of the project, most of the risks we faced were usually concerning the usage of new technologies, which was mostly overcome by additional research and learning before actual coding tasks. As the project progressed, these risks eventually subsided. Midway through the project, we identified new potential risks such as delays in obtaining certain resources such as the Apple App Developer Account. While not all risks were smoothly dealt with, we were able to learn many important lessons from them.
The list of project risk can be found here.
|#||Complexity||Why we do/use it?||Reason for Complexity||How we overcame it?|
|1||Using Ionic framework||Allows hybrid mobile development so to increase our development speed on dual platforms||Mostly uses AngularJS and HTML5, both of which our team had not much expertise in. We also have to learn the structure and the capabilities provided by Ionic. In addition, to AngularJS & HTML5, our team also picked up SCSS to help us better manage the many different styles provided by the Ionic Framework||Team member spent much time at the start of the project to learn and experiment with Ionic|
|2||Developing plugins for Ionic framework||We needed to use HealthKit and GoogleFit, on iOS and Android respectively, to access the pedometer and retrieve the step count of users||In choosing Ionic to speed up hybrid development, we forgo certain features and functions that can be easily implemented in native code. Also, Ionic itself does not provide support for GoogleFit or HealthKit||We developed native plugins using Java and Objective-C for GoogleFit and HealthKit respectively and configure it to become a ionic- compatible plugin to bridge the gap between Ionic and the native platforms|
|3||Integration of Map features with Mission & The need to empower an Admin user to make changes to App Maps via admin portal||This is important as integration is the key to make it intuitive for both the Admin users to add locations (checkpoints) to the in-app map, and for students to easily identify the checkpoints and missions on the map||It is difficult to manipulate the map via inputs from a Web Portal or from another page dynamically and in real time||Team members from backend and frontend sat together and analysed our code and database schemas and how we can format the output using JSON for the map|
|4||Automating the creation of an adventure as much as possible||We want to make this an effortless process for the Admin||On a given date and time, we need to be able to trigger off a series of activities in the background to create an Adventure. All these activities are automated and hence, we need to ensure all necessary activities are completed successfully||We created Scheduled Tasks that would be activated on the given dates to execute all given tasks. Additional checks are in place to ensure that there will be no conflicts|
|5||Using analytics to provide insights into users' behavior||We want to help our client come up with new initiatives to improve the fitness of the users based on our insights||As there were large amounts of data collected, we needed to scrub and identify useful information as well as visualize the data. As this is also a new source of information to our sponsor, they did not have any specific use cases in mind. As such, we also had to consider the usefulness of the analytics information we provide and at the same not provide excessive amounts of information||We studied the data to identify relationships and consulted our client to determine what will be useful to them. We also used ChartJS to visualize the data in a meaningful way|
Quality of Product
|Project Management||Minutes||Minutes for Sponsor, Supervisor & Internal Meetings|
|Metrics||Task & Bug Metrics|
|Risk Management||Risk Management Table|
|Change Management||Change Management Process & Record|
|Requirements & System Design||Use Cases||Use Case Diagram|
|Access Controls||Access Control Diagram|
|System Architecture||System Diagram|
|ER Diagram||ER Diagram|
Google Play Store
Download it here
Apple App Store
Download it here
In total there are 3 User Testings that have been planned in the project timeline.
|Testing||Tester Profile||Number of Testers||Objectives||Scope|
|User Testing 1||Staff of Ngee Ann, Ngee Ann Polytechnic Students and other public testers||1 Staff (Sponsor), 8 Ngee Ann Polytechnic Students, 6 public testers||
||Android Platform Only
|User Testing 2 (In-progress from 26th Sep to 30th Sep)||Staff of Ngee Ann, Ngee Ann Polytechnic Students and Tertiary Students(Sponsor request).||3 Staff, 24 Ngee Ann Polytechnic Students||
||Both iOS and Android Platform
|Final User Acceptance Test||Staff of Ngee Ann, Ngee Ann Polytechnic Students and Tertiary Students(Sponsor request).||25 Tertiary Students, 25 NP Students, 1 NP Staff||
||Both iOS and Android Platform
After working together for almost 5 months, our team has indeed grew even more bonded and stronger. Team members are now more familiar with their roles and are able to execute tasks with far greater efficiency than before. The team has grown to become more than just a FYP team, team members often help each in other modules as well as provide each other with psychological support. On the technical side of things, members have grown more adept in their tasks. For example, front-end developers are now more familiar with using Sass in Ionic, whereas Backend developers are more familiar with the various plugins, such as HealthKit & GoogleFit, required for the application. Moving forward, our team hopes to grow even more and to deliver a successful project.