HeaderSIS.jpg

IS480 Team wiki: 2012T2 5 B 1 G Final Wiki

From IS480
Jump to navigation Jump to search

85%

Project Progress summary

Project Status

5B1G TimeLine.png

Project Achievements

Multiple software development tools
Successfully deployed onto Google Play Store
Achieved over 100 downloads from Google Play Store
Achieved a rating of 5 on Google Play Store
Successfully conducted User Tests at the Basement and The Cathay
Successfully liaised with 6 retailers (Marcella, JShoes, Gong Cha, Popeyes, St Games, CreaTeaf Waffles) from The Cathay for the User Test
Successfully created a new indoor positioning system from scratch to facilitate indoor region detection to push E-coupons
Successfully integrated a new third party indoor positioning system (Indoo.rs) after WifiSLAM was no longer available
Successfully implemented Retailer Admin System (Web Application) for retailers to manage their E-coupons
Successfully implemented a RESTFUL Web Service Application using Jersey framework that facilitate the data flow between our server and Mobile Application
Successfully integrated SpagoBI into Retailer Admin System (Web Application) for retailers to generate Business Intelligence reports
Successfully implemented Hibernate framework for both Web Service Application and Retailer Admin System (Web Application) to communicate with the database
Successfully created the Admin Portal for sponsor to approve/disapprove/delete retailers as well as to activate either Indoo.rs or self-developed indoor positioning system for region detection

Files download

FInal Presentation Slides

S/N Description Link
1 Final Presentation Slides Download
2 CountMeIn @ Google Play Store Link
3 Web Application Link Link
4 Project Tracker Link

Youtube Links

S/N Description Link Remarks
1 5B1G final presentation:
5B1G "Count Me In" indoor positioning system test at The Cathay
Link Nil
2 5B1G final presentation:
5B1G "Count Me In" user test at The Cathay
Link Nil
3 5B1G final presentation:
5B1G "Count Me In" Video for Poster Day
Link Nil
4 5B1G final presentation: (Performance Test)
5B1G Performance Test on battery consumption (Using Indoo.rs indoor positioning system)
Link Download File
5 5B1G final presentation: (Performance Test)
5B1G Performance Test on battery consumption (Using self-developed indoor positioning system)
Link Download File
6 5B1G mid-term presentation:
WifiSLAM without Singleton Test for Android mobile application
Link Nil
7 5B1G mid-term presentation:
WifiSLAM with Singleton Test for Android mobile application
Link Nil
8 5B1G mid-term presentation:
5B1G Indoor Routing
Link WifiSLAM was acquired by Apple. Hence, any implementations with regards to WifiSLAM were removed.
9 5B1G acceptance presentation:
UT Paper Prototype Video
Link Nil
10 5B1G acceptance presentation:
5B1G Acceptance Presentation Video
Link Nil

Count Me In

S/N Description Link
1 CountMeIn APK Files

V0.1 - V0.9 Acceptance
V1.0 - V4.3 Final

Link

Other Documents

S/N Description Link
1 WebService Documentation Download
2 TortoiseSVN & Subclipse Tutorial Download

Project Highlights

S/N Description of unexpected changes Occurrence Mitigation/Contingency plan
1 Web service API for Live Labs indoor positioning system was delayed. Our mitigation plan is to fall back on our backup plan, which is to proceed on with WifiSLAM as our indoor positioning system instead. Iteration 4 We had a contingency plan in the event that if we are unable to utilize Live Labs indoor positioning system, we will use WifiSLAM as our backup.
2 There is a delay in schedule during iteration 5 and these delays were due to the following 2 reasons:

Firstly, there was a change from using Android activity to using fragment. Fragment API allows us to create flexibility and reusable UI components. Initially, we were worried that the switch would mean that we would have to change a lot of our class files as we were using mainly using Android activity. However, after careful analysis and deliberation, we realized that fragment activity is better catered to the development of our Android mobile application.

Secondly, our client proposed that we use SpagoBI as a form of Business Intelligence. The configuration of the SpagoBI was much more difficult than expected. This was coupled with the fact that there was limited help that is provided online.

Iteration 5 We decided to review the tasks for the remaining iterations. As we would be working with SpagoBI for our remaining iterations, we decided to break down the tasks further in case we encounter a similar situation as this.
3 We found out that the Android target SDK version, which we used in our application, was not compatible with mobile device with older versions of the Android Operating System (OS). Our application is able to run from Ice Cream Sandwich (API level 14) onwards Iteration 5 We placed a disclaimer on our wiki to inform our users about this problem. The information can be viewed here
4 We found out that the older versions of Android devices are not NFC enabled. Iteration 5 We placed a disclaimer on our wiki to inform our users about this problem. The information can be viewed here
5 WifiSLAM was down as it was acquired by Apple Iteration 10

We then kicked into the contingency plan when WifiSLAM was down. This was done on the 22nd of March 2013, one day after WifiSLAM was down.

Our contingency plan comprised of a two-pronged approach to the situation in which our team split up into two separate divisions. One of them was to handle and develop our own indoor positioning system. This team comprised of Celine, Wen Bin and Adrian.
The second team was to source for other third party indoor positioning system which we can integrate into our mobile application framework. Subsequently, they managed to find another third party indoor positioning system called Indoo.rs. This team comprised of Chun Tat, Gan Jun and Alvin.
The reason why we decided to adopt a two-pronged approach was because we were not confidential of producing an indoor positioning system with the same level of accuracy as WifiSLAM. Hence, Indoo.rs indoor positioning system will be used if we are unable to deliver a self-developed indoor positioning system.

6 UPL server service disruption Iteration 11

We fell back onto our contingency plan by using a cloud-based server to host our web application and web service so as to reduce the impact on our project progress.


Project Challenges

Stakeholder Management

A challenging aspect of our project would be management of the different stakeholders involved in our project. We have identified the essential stakeholders as below:

Sponsor (Prof Kyong Shim)
The Cathay retailers


Following our analysis, below is a list of challenges which we received from each stakeholder and the strategies that we adopted to overcome them.

S/N Challenges How we overcome
1 The sponsor had difficulties in providing the E-coupon data sets to us and getting people to attend our User Test. As such, without these data sets, we faced the challenge of testing the recommendation model that we had implemented.
  • As we lacked the data to test our recommendation model, we proceeded to conduct a user test at The Cathay. The purpose of this user test is to allow us to check if our recommendation model is recommending the correct E-coupons to shoppers. At the same time, we wanted to determine whether these recommendations are relevant based on the shoppers' indoor location.
  • In order to test our recommendation model, our team adopted a three step approach :
  1. Firstly, we collected shoppers' information over 2 days. This information comprises of the E-coupons that the shopper has shared on Facebook, the E-coupons that the shopper has redeemed and the E-coupons that the shopper has marked down in his/her favourite list,
  2. After collection of shoppers' information over 2 days, our model would compute the list of recommended E-coupons at the stipulated timings. These E-coupons will then be recommended to the shoppers
  3. We would then check the recommendation table thereafter to determine whether our recommendation model worked.
  • Note:The sample size, which we conducted our user test on, comprised mainly of students. As such, a sampling bias exists.
2 As our sponsor was not around for a period of time, we had difficulty in confirming whether we were on the right track in implementing our recommendation model. This was coupled with the fact that we are not aptly trained in Business Analytics.
  • For this challenge, our team consulted Business Analytics professors, Prof Kam Tin Seong and Prof Pang Hwee Hwa to check whether we have done our recommendation model correctly. They informed us that the implementation of the Cosine Similarity Index in our recommendation model was done correctly. Prof Pang also mentioned that it is perfectly fine to use popularity in our recommendation model as well.
  • Initially for our recommendation model, we only used the redemption as an indicator of interest for the calculation of the Cosine Similarity Index. However, we realised that solely using redemption as the indicator of interest may result in a sparsity of data in the recommendation table. As such, we then included other factors of interest in our recommendation model such as "Share E-coupon on Facebook" as well as "Add E-coupon to favourite list". We consulted Prof Pang on the inclusion of these other factors of interest and he said that it was fine to use them in the calculation of the Cosine Similarity Index. More details regarding the meetings with Prof Pang and Prof Kam can be viewed here.
3 As our sponsor was overseas for about 2 months( 22 Feb - 20 April), we were unable to get immediate response from her with regards to the project
  • Even though our sponsor was away, this did not deter us from trying to contact her constantly through various means such as Skype, email, Facebook as well as Whatsapp. In addition, we emailed her regularly to inform her of any updates and changes we made to the project. We also consulted our supervisor who advised us on any changes that we planned to embark. During our sponsor's period of absence, we also consulted other necessary stakeholders such as retailers from The Cathay to ask them for their opinions and feedback with regards to our mobile and web applications. More details can be viewed here.
4 Our sponsor was unable to confirm whether LARC was willing to sponsor our third party application Indoo.rs when WifiSLAM was acquired by Apple.
  • When WifiSLAM was acquired by Apple, our team adopted a two prong approach in tackling this issue. Firstly, we set out to develop our own indoor positioning system. We tested our self-developed indoor positioning system intensively to ensure that we are able to detect a specific region and push E-coupons. At the same time, we also sourced for another third party application (Indoo.rs) and implemented it as well. As our sponsor was not around to give us a confirmation of which indoor positioning system she wanted, we consulted our supervisor on this matter. For this, he suggested us to include both our self-developed indoor positioning system as well as Indoo.rs. He further advised us to include a "switch" in our Admin Portal to give our client the option of toggling between Indoo.rs and our self-developed indoor positioning system.

The Cathay Retailers

S/N Challenges How we overcome
1 Finding sufficient E-coupons from retailers to suit a diverse range of categories was difficult. This was further compounded by the fact that our sponsor did not have any ties with retailers from The Cathay.
  • We went down to the Cathay to talk to a variety of retailers such as Marcella, CreaTeaf Waffles, Left Foot, Maki-San Sushi, Popeyes, St Games, Gong Cha, JShoes, Digiskin, Hachi, Sitch, Volta, New Inspiration Hair Salon, Ninos Felices, Astons. In summary, we approached a total of 15 retailers. We followed up with emails and phone calls, ensuring that we maintained good relationships with all our necessary retailers. Unfortunately, not all 15 retailers were willing to work with us and our team was turned down by 9 retailers. However, with our persistence and determination, we were able to get 6 retailers (Marcella, St Games, Gong Cha, Popeyes, CreaTeaf Waffles and JShoes) and a total of 17 E-coupons from them. After attaining the E-coupons from them, we made sure that we followed up by showing them the E-coupons on our mobile application and allowed them to test the application for themselves. More details can be viewed here.
2 Difficulty in determining what is needed in the Retailer Admin System. As our sponsor was not around to advise us, we did not know what are the functions that is required in the Retailer Admin System.
  • Faced with the challenge of not having our sponsor, our team decided to gather requirements from the retailers with regards to the Retailer Admin System. In addition, the retailers were in good position to provide requirements for the Retailer Admin System since they were going to be the ones who would be using it. Therefore, we went down to them personally to collect requirements for our Retailer Admin System. More details can be viewed here.

Project Scope

Latest Scope

5B1G Final Scope.png

Previous Scopes

V1
V2
V3


Project Management

Tasks completed by Iteration

5B1G task breakdown.png

Iteration Planned Task Actual Task Completed Task Leftover Task Percentage Remarks
1 11 12 12 0 100% Nil
2 6 6 6 0 100% Nil
3 4 4 4 0 100% Wen Bin, Adrian and Celine went to Israel to complete their Business Study Mission (BSM)
4 10 10 10 0 100% Nil
5 14 22 19 3 86%
  • Change in Project Requirement from QR Code to NFC
  • Delivery of NFC tags delayed for a week
  • Spago BI technically challenging
  • Load More function challenging due to Fragments
6 23 27 25 2 93%

Add and delete E-coupons to and from favourite list

7 18 20 20 0 100%

Nil

8 13 20 20 0 100%

Nil

9 17 25 24 1 96%

SpagoBI Chart not generated

10 14 20 19 0 95%

Unable to detect region

11 7 13 11 2 85%

Unable to detect region

Buffer 4 13 13 0 100%

Nil


Bold text
Iteration Planned Task Actual Task
1
26 Oct - 06 Nov
Front End

Load the splash screen when app starts
Show Navigation bar from the side
Hide Navigation bar from the side
Input image as button for the navigation bar
Clicking on the navigation bar brings you to an existing page
Clicking on the featured button brings you to another page
Login with facebook
Display the home page with images as button
Logout with facebook

Back End
Develop web services for pull coupons to mobile app

Others
Preparation for Acceptance
Update Wiki
Powerpoint slides
Preparation for UT

Front End
Load the splash screen when app starts
Show Navigation bar from the side
Hide Navigation bar from the side
Input image as button for the navigation bar
Clicking on the navigation bar brings you to an existing page
Clicking on the featured button brings you to another page
Login with facebook
Display the home page with images as button
Logout with facebook
Allow the images to load concurrently instead of loading one by one (Additional)
Simple text post on facebook (Additional)

Back End
Develop web services for pull coupons to mobile app

Others
Preparation for Acceptance
Update Wiki
Powerpoint slides
Preparation for UT


2
8 Nov - 18 Nov

Front End
Browse the e-coupons
View details of an e-coupon.
Retrieve information from facebook profiles
Display information retrieve from facebook
Post the news of the coupon on facebook
Back End
Install WAMP Server/ TomCat and host environment

Others
Redesign of UI and paper prototype

Front End
Browse the e-coupons
View details of an e-coupon.
Retrieve information from facebook profiles
Display information retrieve from facebook
Post the news of the coupon on facebook

Back End
Install WAMP Server/ TomCat and host environment

Others
Redesign of UI and paper prototype

3
03 Dec - 15 Dec

Front End
Push Notification with google cloud messaging
Creating WifiSlam prototype
Explore library for UI on android

Back End
Install WAMP Server/ TomCat and host environment

Front End
Push Notification with google cloud messaging
Creating WifiSlam prototype
Explore library for UI on android

Back End
Install WAMP Server/ TomCat and host environment

4
16 Dec - 30 Dec

Front End
Integration of WifiSlam into mobile app
Adding a overlay on the image of the map
Calibration and mapping of school layout
Pull to refresh function
Cater to android of different size
Develop the skeleton structure (Side Navigation Bar)

Back End
Deployment of live server successfully
Hibernate using XML mapping
Jersey Prototype
Webservice to return image
Webservice to return Json Object
Upload image externally

Front End
Integration of WifiSlam into mobile app
Adding a overlay on the image of the map
Calibration and mapping of school layout
Pull to refresh function
Cater to android of different size
Develop the skeleton structure (Side Navigation Bar)

Back End Deployment of live server successfully
Hibernate using XML mapping
Jersey Prototype
Webservice to return image
Webservice to return Json Object
Upload image externally

5
01 Jan - 13 Jan

Front End
Webservice for pulling images
Remapped the school layout with the new map
Explore the implementation of NFC
Wifislam to detect region on map
Integrating Facebook (Login/Logout)
Fragment Navigation
Integrate with Facebook login/logout
Develop user interface for mobile
Load more coupons effect
Back End Create tables in mySQL Server
Create dummy data for mySQL Server
Develop classes for objects
Develop data relational diagram
Web service to return list of coupon objects in Json


Others
Create paper prototype for UT testing
Redesign logo
Develop user interface for Map
Wikipage - Done

Front End
Webservice for pulling images
Remapped the school layout with the new map
Explore the implementation of NFC
Wifislam to detect region on map
Integrating Facebook (Login/Logout)
Fragment Navigation
Caching of image
Integrate with Facebook login/logout
Singleton to improve the loading of WifiSlam
Internal Push Notification
Changed refresh library due to bug
Develop user interface for mobile
Revise side navigation bar with new library
Load more coupons effect

Back End
Create tables in mySQL Server
Create dummy data for mySQL Server
Develop classes for objects
Develop data relational diagram
Hibernate Mapping & Configuration
Integration of Hibernate/Jersey
Web service to return list of coupon objects in Json
Spago Reporting


Others
Create paper prototype for UT testing
Redesign logo
Develop user interface for Map
Wikipage - Done

6
14 Jan - 27 Jan

Front End
NFC to read from NFC Tags
To configure NFC Tags
Integrate with Facebook and pull information
Identify login facebook account
Send login information to server
Mobile layout for coupon details page
Mobile layout for redeem coupon
Mobile layout for coupon cart
Mobile layout for browse coupon
Add coupon to cart & update server
Delete coupon to cart & update server
Integrate Internal Push Notification with detecting region
Integrate Timer with Push Notification

Back End
Webservice to add user
Webservice to return (Featured)
Webservice to return (Recommended)
Webservice to return list of coupon(Category)
Webservice to record coupon redeemed
Webservice to add coupon to cart
Webservice to remove coupon from cart
Web app to display info for retailers
Webservice to return coupon cart list
SpagoBI configuration

Others
Prepare for UT
Order NFC tag
Deployment Diagram
Upload UT test results
Prototype for Web Application

Front End
NFC to read from NFC Tags
To configure NFC Tags
Integrate with Facebook and pull information
Identify login facebook account
Send login information to server
Mobile layout for coupon details page
Mobile layout for redeem coupon
Mobile layout for coupon cart
Mobile layout for browse coupon
Add coupon to cart & update server
Delete coupon to cart & update server
Integrate Internal Push Notification with detecting region
Integrate Timer with Push Notification

Back End
Webservice to add user
Webservice to return (Featured)
Webservice to return (Recommended)
Webservice to return list of coupon(Category)
Webservice to record coupon redeemed
Webservice to add coupon to cart
Webservice to remove coupon from cart
Web app to display info for retailers
Webservice to return coupon cart list
SpagoBI configuration
Upload e-Coupon
Upload Product
Pending/Published/Expired
Logout

Others
Prepare for UT
Order NFC tag
Deployment Diagram
Upload UT test results
Prototype for Web Application

7
28 Jan - 10 Feb

Front End
Change Facebook SDK to display image
Facebook Share
Add eCoupon to eCoupon cart
Delete eCoupon from eCoupon cart
Integrate sending of login information into mobile
Integrate loading of featured with webservice
Integrate mobile layout for eCoupon details page with webservice
Integrate loading of recommended with webservice
Integrate loading more function with webservice
Integrate loading of eCoupon cart with webservice
Integrate loading of browse eCoupon with webservice

Back End
iReport to generate Jasper Report XML
UI for web app
SpagoBI reporting stool (Jasper Report)
Webservice to record sharing of eCoupon (Additional)
BI for mobile (Recommendation) (Breakdown)
Web app BI (Breakdown)
Analysis of eCoupon

Front End
Change Facebook SDK to display image
Facebook Share
Add eCoupon to eCoupon cart
Delete eCoupon from eCoupon cart
Integrate sending of login information into mobile
Integrate loading of featured with webservice
Integrate mobile layout for eCoupon details page with webservice
Integrate loading of recommended with webservice
Integrate loading more function with webservice
Integrate loading of eCoupon cart with webservice
Integrate loading of browse eCoupon with webservice
Integrating redeem of eCoupon with webservice (Additional)
Integrate sharing of eCoupon with webservice (Additional)

Back End iReport to generate Jasper Report XML
UI for web app
SpagoBI reporting stool (Jasper Report)
Webservice to record sharing of eCoupon (Additional)
BI for mobile (Recommendation) (Breakdown)
Web app BI (Breakdown)
Analysis of eCoupon

8
11 Feb - 24 Feb

Front End
Check if coupon cart is empty
Check if coupon is already redeemed
Revise Coupon Cart Layout
Mobile Layout for Bring me there
Include back button functionality
Plot a line to the destination
Detect current location and update line
Testing Functionality
Debugging

Back End
WebApp: Refine Jasper Report for Expired eCoupons
WebApp: Integrate Jasper Report via SpagoBI SDK
WebService: Server side validation for adding eCoupon to eCoupon Cart
WebService: Server side validation for deleting eCoupon to eCoupon Cart
WebService: Server side validation for redeeming individual eCoupon
WebService: Prepare data for BA

Front End
Check if coupon cart is empty
Check if coupon is already redeemed
Revise Coupon Cart Layout
Mobile Layout for Bring me there
Include back button functionality
Plot a line to the destination
Detect current location and update line
Testing Functionality
Debugging
Change caching library(Additional)
Mapping of new map (Additional)
Integrate webservice for number of eCoupons redeemed (Additional)
UT Changes (Change Delete Me to Delete)
UT Changes (Change Search Coupon to View Categories)
UT Changes (Redeem Overlay)

Back End
WebApp: Refine Jasper Report for Expired eCoupons
WebApp: Integrate Jasper Report via SpagoBI SDK
WebService: Server side validation for adding eCoupon to eCoupon Cart
WebService: Server side validation for deleting eCoupon to eCoupon Cart
WebService: Server side validation for redeeming individual eCoupon
WebService: Prepare data for BA
WebService: Return number of eCoupons redeemed (Additional)

9
25 Feb - 10 Mar

Front End
Improving on WifiSlam (Conduct more testing, mapping)
Detect SSID
Integrate SSID with webservice
On Bring me there, show location of coupon
On app load, call SSID webservice and push notification
LBold textayout issue
Select levels and change map
Lock Orientation
Draw the layout of SIS level 5
Draw the layout of SIS level 4
Draw the layout of SIS level 3
Draw the layout of SIS level 1
Draw the layout of SIS basement

Back End
WebApp: Generate Charts for Expired E-coupons via SpagoBI
WebApp: Client side validation for input fields via JQuery
WebService: Return location (X,Y) of retailer of a coupon
WebService: Implement Business Analytics based on indoor location

Front End
Improving on WifiSlam (Conduct more testing, mapping)
Detect SSID
Integrate SSID with webservice
On Bring me there, show location of coupon
On app load, call SSID webservice and push notification
Layout issue
Select levels and change map
Lock Orientation
Draw the layout of SIS level 5
Draw the layout of SIS level 4 (Removed)
Draw the layout of SIS level 3
Draw the layout of SIS level 1 (Removed)
Draw the layout of SIS basement
Draw the layout of Cathay level B1 (Additional)
Draw the layout of Cathay level 1 (Additional)
Draw the layout of Cathay level 2 (Additional)
Draw the layout of Cathay level 3 (Additional)
Draw the layout of Cathay level 4 (Additional)

BackEnd
WebApp: Generate Charts for Expired E-coupons via SpagoBI
WebApp: Client side validation for input fields via JQuery
WebService: Return location (X,Y) of retailer of a coupon
WebService: Implement Business Analytics based on indoor location
WebApp: Copy details of deleted E-coupons to new E-coupons (Addtional)
Webservice: To add in the coordinates to the coupon information (Additional)

10
11 Mar - 24 Mar

Front End
Mapping of SIS level 3
Mapping of Cathay Basement
Mapping of Cathay Level 1
Mapping of Cathay Level 2
Mapping of Cathay Level 3
Mapping of Cathay Level 4
On detect SSID, push notification to recommend coupon
Drop pin and pin point location of retailer
Refine WifiSLAM Indoor Navigation
UT Changes

Back End
WebApp: Integrate Charts via SpagoBI SDK
WebApp: Server side validation
WebApp: Client side validation
WebApp: Pagination for pending, published and expired
WebService: Refine BA

Front End
Mapping of SIS level 3
Mapping of Cathay Basement (Removed)
Mapping of Cathay Level 1 (Removed)
Mapping of Cathay Level 2 (Removed)
Mapping of Cathay Level 3 (Removed)
Mapping of Cathay Level 4 (Removed)
On detect SSID, push notification to recommend coupon (removed)
Drop pin and pin point location of retailer
Refine WifiSLAM Indoor Navigation (Removed)
Reduce number of webservice call (Additional)
Caching of data (Additional)
Change login logic (Additional)
Collect Mac Address (Backup plan)
Collect Mac Address and send web service (Additional)
Detect mac address and check location (Additional)
Collect Mac Address of SIS Level 3 (Additional)
Collect Mac Address of Cathay B1 and Level 1 (Additional)
Implement BootStap for Web app (Additional)

Backend
WebApp: Integrate Charts via SpagoBI SDK (rescheduled)
WebApp: Server side validation
WebApp: Client side validation
WebApp: Pagination for pending, published and expired
WebService: Refine BA
WebApp: Retailer account (Additional)
WebApp: Sent Verification Email (Additional)
WebApp: Forget password (Additional)
Webservice: Collect Mac address

11
25 Mar - 07 Apr

Front End
Integrate detecting region with existing mobile app
Making detecting region dynamic
Mapping of Retailers at Cathay
Web UT

Back End
Tidy up BI
Webapp: Implement salted password for security
WebApp: Integrate Charts via SpagoBI SDK (Rescheduled)

Front End
Integrate detecting region with existing mobile app
Mapping of Retailers at Cathay
Web UT
Complete User Interface for Web app
Mapping of Cathay with Indoo.rs (Additional)
Mapping of SMU with Indoo.rs (Additional)
Integrating of Indoor.rs into mobile
Enable push notification button
Detect region for Indoo.rs (Additonal)

Back End
WebApp: Implement salted password for security
WebApp: Integrate Charts via SpagoBI SDK (Rescheduled)
Backend algorithm for self-developed IPS
Set up virtual desktop (additonal)

Buffer
08 - 22 Apr

Front End
Detect region for Indoo.rs
Detect region and Push notification
Back End
Image Cropping for retailer

Front End
Detect region for Indoo.rs
Detect region and Push notification
Run Indoo.rs detecting region in the background (Additional Task)
Find me function (Show retailer region) (Additional Task)
On off notification button (Additional Task)
Web App: Interface for Web App
Web UT 3
Web UT 4
Admin Web UT

Back End
Image Cropping for retailer
Toggle between Indoo.rs and self-developed IPS
Approve, disapprove and delete retailers


Project Schedule

5B1G Project Schedule final.png


Before mid-term presentation

Delay #1: Iteration 3

Task delayed: Installing WAMP Server/ TomCat and host environment
Reason: Accidentally logged out of VMware machine and was unable to return to the VM image

Delay #2: Iteration 5

Task delayed: "Load more" function
Reason: As our team switched from activity to fragment, the "load more" function was more difficult to develop with fragment navigation.

Task delayed: "SpagoBI" function
Reason: The configuration for SpagoBI was more technically challenging than we thought. Little help is provided online.

Delay #3: Iteration 6

Task delayed: Add E-coupon to the favourite list and delete E-coupon from favourite list
Reason: The functionality was more technically challenging than expected.

After mid-term presentation

Delay #4: Iteration 10

Task delayed: WifiSLAM was down disrupting our indoor positioning system
Reason: WifiSLAM was bought over by Apple for $20 million.

Schedule Metrics

The diagrams below show our scheduled number of days that we took for each iteration as well the actual number of days that we took. Our Schedule Index diagram shows the schedule index score which we scored for each iteration

5B1G Schedule Planned.png 5B1G schedule Index.png


Our Schedule Index (SI) score is calculated by taking the actual duration divided by the schedule duration. If the SI is between 0.9 and 1.1, it means that we are currently on track. If the SI is less than or equals to 0.9, it means that we are ahead of schedule. If the SI is more than or equals to 1.1 then it means we are behind schedule. For most of our iterations (1,2,4 and 7), we were on schedule as our SI was between 0.9 and 1.1.

Key Issues

Before midterm

Iteration 5:

  • There was a value of 1.14 for the SI indicating that we were behind schedule
  • The number of actual days, which the team took, was 16 days whereas the number of scheduled days was 14 days.
  • The reason why we were behind schedule for 2 days was because integration of “load-more” E-coupon function to Android Fragment was more difficult than expected as compared to integrating to Android Activity
  • The SpagoBI configuration was more difficult than we expected. In addition, due to insufficient technical support available online, we have to rely on "trail and error" method to resolve our issues.
  • Hence, there was a delay in schedule as we did not manage to resolve the function within the scheduled days
  • Our team decided to pushed this function to the next iteration (Iteration 6)


After midterm

Iteration 10:

  • There was a value of 2.14 for the SI indicating that we were behind schedule
  • The number of actual days, which the team took, was 30 days whereas the number of scheduled days was 14 days.
  • The reason why we were behind schedule was because WifiSLAM was acquired by Apple and the indoor positioning system provided was down.
  • Hence, we had to source for a new third party indoor positioning system. At the same time, we developed our own indoor positioning system.
  • There was a delay in schedule as we were testing both the indoor positioning systems.

Links
Schedule_Metric

Project Metrics

Bug metrices

   

5B1G Iteration Bugs 1.png

5B1G Iteration Bugs 4.png

5B1G Iteration Bugs 5.png

   

5B1G Iteration Bugs 6.png

5B1G Iteration Bugs 7.png

5B1G Iteration Bugs 8.png

   

5B1G Iteration Bugs 9.png

5B1G Iteration Bugs 10.png

5B1G Iteration Bugs 11.png

Overview of Functionalities

Mobile Application

Task/Function/Features Status Confidence level Comments
View E-coupons by category page Fully deployed and tested 100% 1
View E-coupons in latest page Fully deployed and tested 100% 1
View E-coupons in recommended page Fully deployed and tested 100% 1
View details of E-coupon Fully deployed and tested 100% 1
View E-coupons in favourite list Fully deployed and tested 100% 1
Add/delete E-coupons to/from favourite list Fully deployed and tested 100% 1
Retrieve information from Facebook profiles Fully deployed and tested 100% 1
Internal Push Notification Fully deployed and tested 100% 1
Indoor positioning using WifiSLAM Fully deployed and tested 100%
(Bought over by Apple)
1


Pull to refresh E-coupons Fully deployed and tested 100% 1
Load more E-coupons Fully deployed and tested 100% 1
Integration of NFC with NFC tags (Redeem) Fully deployed and tested 100% 1
Integration with Facebook (Login/logout) Fully deployed and tested 100% 1
Facebook Integration: Sharing of E-coupon Fully deployed and tested 100% 1
Indoo.rs Surface Viewer integration Fully deployed and tested 100% 1
Implement toggle between self-developed indoor positioning system and Indoo.rs indoor positioning system Fully deployed and tested 100% 1
Load Indoo.rs Maps according the building where the user is located Fully deployed and tested 100% 1
Integrate self-developed indoor positioning system to allow mobile application to detect region Fully deployed and tested 100% 1


Web Service for Mobile Application

Task/Function/Features Status Confidence level Comments
Web service to retrieve all E-coupons from shopper's favourite list Fully deployed and tested 100% 1
Web service to add an E-coupon to the shopper's favourite list Fully deployed and tested 100% 1
Web service to delete an E-coupon to the shopper's favourite list Fully deployed and tested 100% 1
Web service to share E-coupon to shopper's Facebook Fully deployed and tested 100% 1
Web service to get image of E-coupon Fully deployed and tested 100% 1
Web service to redeem E-coupon Fully deployed and tested 100% 1
Web service to enable Indoo.rs Fully deployed and tested 100% 1
Web service to add reading for Wi-Fi fingerprint (self-developed indoor positioning system) Fully deployed and tested 100% 1
Web service to get current indoor location (self-developed indoor position system) Fully deployed and tested 100% 1
Web service to get all registered retailers (self-developed indoor position system) Fully deployed and tested 100% 1
Web service to get list of E-coupons by category Fully deployed and tested 100% 1
Web service to get list of latest E-coupons Fully deployed and tested 100% 1
Web service to get list of recommended E-coupons Fully deployed and tested 100% 1
Web service to validate a shopper's login via Facebook Fully deployed and tested 100% 1
Business analytics (predictive analytics) to recommend E-coupons to shoppers Fully deployed and tested 100% 1
Web service to get position of shopper (self-developed indoor positioning system) Fully deployed and tested 100% 1

Retailer Admin System (Web Application)

Task/Function/Features Status Confidence level Comments
Retailer login and logout Fully deployed and tested 100% 1
Salted password Fully deployed and tested 100% 1
Update retailer profile Fully deployed and tested 100% 1
Validate login session Fully deployed and tested 100% 1
Upload new E-coupon Fully deployed and tested 100% 1
Update pending E-coupon Fully deployed and tested 100% 1
Crop image of uploaded/pending E-coupon Fully deployed and tested 100% 1
View published E-coupon and its statistics Fully deployed and tested 100% 1
Publish pending E-coupon Fully deployed and tested 100% 1
Delete pending, published and expired E-coupon Fully deployed and tested 100% 1
Duplicate E-coupon (pending, published and expired) Fully deployed and tested 100% 1
Integrate SpagoBI SDK Fully deployed and tested 100% 1
Configure SpagoBI data source, list of values, analytical driver, analytical document and JasperReports Engine Fully deployed and tested 100% 1
Create JasperReports XML (JRXML) template via iReport Fully deployed and tested 100% 1
Generate BI report for expired E-coupon with JRXML and JasperReports Engine on SpagoBI Fully deployed and tested 100% 1
Export BI report for expired E-coupon (JasperReport) Fully deployed and tested 100% 1
Design of Web Application (Retailer) Fully deployed and tested 100% 1

Admin Portal (Web Application)

Task/Function/Features Status Confidence level Comments
Administrator login and logout Fully deployed and tested 100% 1
Validate login session Fully deployed and tested 100% 1
View existing retailers Fully deployed and tested 100% 1
Delete existing retailer Fully deployed and tested 100% 1
Approve pending retailer Fully deployed and tested 100% 1
Reject pending retailer Fully deployed and tested 100% 1
Toggle between self-developed indoor positioning system and Indoo.rs Fully deployed and tested 100% 1

Technical Overview & Complexity

Technical Overview

S/N Application Component Description
1
Android mobile application
Fragment API
To build a flexible, dynamic and reusable user interface for our mobile application
  • A Fragment represents a behavior or a portion of user interface in an Activity.
  • Fragments decompose application functionality and UI into reusable modules
  • Add multiple fragments to a screen to avoid switching activities
  • As such, content is interchangeable while side menu can remain intact without the need to constantly "redrawing" the menu
2
Android mobile application
WifiSLAM for indoor positioning (Removed, Acquired by Apple)
A 3rd party Indoor Positioning System which enables Map localisation and Region detection
  • WifiSLAM is an indoor positioning SDK which enables our mobile application to locate your indoor position under 40 seconds.
  • WifiSLAM is capable of detecting user's location to 2-3 meters of accuracy in real time.
  • WifiSLAM is available for free. However, on March 2013, WifiSLAM was acquired by Apple for 20 Million.
  • A few days before the announcement of the acquisition, WifiSLAM terminated all their services
3
Android mobile application
Indoo.rs for indoor positioning
A 3rd party Indoor Positioning System which enables Map localisation and Region detection
  • Indoo.rs IPS is an indoor positioning SDK which enables our mobile application to locate user's indoor location under 20 seconds
  • Indoo.rs IPS is capable of detecting user's location to 2-5 meters of accuracy in real time.
  • We send in a request to Indoo.rs expressing interest to use Indoo.rs IPS
  • Mr Bernd Gruber, Chief Operating Officer of Indoo.rs, was very supportive of our project and has kindly sponsored Indoo.rs SDK and Indoo.rs Surface Viewer for our usage
4
Mobile Web Service application
Jersey framework for RESTful Web Services
Required to provide RESTful Web Services for the mobile application
  • Jersey is the reference implementation of Java API for RESTful Web Services (JAX-RS)
  • Jersey is a reference implementation from Oracle which means it is production ready
5
Retailer Admin System
SpagoBI and JasperReports for Business Intelligence reports
Required to generate business intelligence report for retailers
  • SpagoBI contains the JasperReports analytical engine
  • iReport has a designer tool that can be used to create the JasperReports template (jrxml), a XML file for JasperReports
  • Use SpagoBI’s JasperReports analytical engine to generate the Business Intelligence reports based on the jrxml template for retailers
SpagoBI SDK coding
E-coupon BI Report
6
Hibernate Project
Hibernate and c3p0
Required for web applications to communicate with the database
  • Hibernate is an object-relational mapping library for Java and it provides a framework for mapping plain old java object (POJO) to relational database
  • c3p0 is a third-party connection pool library for making JDBC drivers "enterprise-ready" by augmenting them with functionality defined by the jdbc3 spec and the optional extensions to jdbc2
  • c3p0 is used with Hibernate because Hibernate’s internal connection pool is not suitable for production use – “The built-in Hibernate connection pool is in no way intended for production use. It lacks several features found on any decent connection pool.”
One-to-Many and Many-to-One relationships
Hibernate Query Language
Fetching strategy
C3PO configuration XML

Technical Complexity

S/N Application Component Description
1
Mobile Web Service application
Self-developed indoor positioning system

About this complexity
Developed an indoor positioning system with the following capabilities:

  • Detect region with a radius of approximately 5 meters
  • Detect region accurately 90% of the time
  • Detect region within 15 seconds


Note: Region refers to the area around the retail outlet.

Why is it complex?

  • Developed an Android mobile application to collect WiFi fingerprints of the different regions
    • This application scans for the result of access points and their signal levels
    • Each time we collect a new sample data for the WiFi fingerprint, we use the application to automatically scan for 50 results
  • Collecting and analyzing sample data from access points and their signal levels for the WiFi fingerprints in SMU and The Cathay over 2 weeks from 22nd March to 5th April - This is also known as scene analysis
    • The Android mobile application may not be able to detect the same number of access points all the time
    • The detected signal levels of all the access points fluctuate throughout the day and over the days
    • Tried a variety of ways to create WiFi fingerprints and the most accurate way is to combine all the sample data of one position for a WiFi fingerprint
  • Obtain the indoor position by implementing the nearest neighbor algorithm with the distance metric derived from Euclidean distance
    • Sort the WiFi fingerprints based on the number of matched access points
    • Calculate the Euclidean distance metric based on the difference in signal levels of all the matched access points
    • Obtain the indoor position by finding the nearest WiFi fingerprint based on the shortest Euclidean distance metric
2
Mobile Web Service application
Recommendation model

About this complexity

  • Derive a recommendation model for pushing relevant E-coupons based on indoor location and shoppers’ behavioral data
  • This recommendation model requires the use of an IPS to detect the shopper’s location inside a shopping mall. If the shopper is near a partnering retailer, we will notify them of the E-coupon that the retailer has.
  • After filtering based on the indoor location, this recommendation model takes into account the shopper’s most recent usage (either redemption, Facebook-shared or added to favourite) of an E-coupon “X”. Based on the most recently used E-coupon “X”, the E-coupons of the retailers in the recommendation are arranged according to their similarity with “X”.
  • If the shopper has not used any E-coupon recently, the E-coupons of the retailers will be arranged based on their popularity. The popularity is derived from the total number of redemption, Facebook-shared and added to favourite by other shoppers.
  • Results from our final UT at The Cathay
    • Over a span of 2 days for our UT at The Cathay, there were 11 redeems. 41 Facebook shares and 41 favourites
    • Our recommendation model recommended E-coupons to shoppers based on their indoor location and the E-coupons were sorted according to how popular they were.
    • Our analysis revealed that our recommendation model for pushing relevant E-coupons based on the indoor location of the shopper was working well. For example, the 11 redeems which occurred over the 2 days were done so through the recommendation list which our recommendation model pushed to the shoppers. 30 out of 41 Facebook shares were done so through the recommendation list. 28 out of 41 Favourites were done so through the recommendation list.

Why is it complex?

  • We give the sponsor the flexibility to toggle between using the third-party IPS, Indoo.rs, or our self-developed IPS when it comes to recommending E-coupons to the shoppers.
  • The arrangement of the E-coupons based on their similarity with “X” is based on the Cosine Similarity Index algorithm. This algorithm is a measure of similarity between two items and is commonly used in business analytics for measuring the similarity between two products. The usage of this algorithm in our recommendation model to arrange similar E-coupon is correct as we have checked with the Business Analytics professors, Prof. Kam Tin Seong and Prof. Pang Hwee Hwa.
  • We implemented this algorithm from scratch in java and the similarity between E-coupons will be computed on a daily basis using java scheduler. In addition, we have also done some performance test as shown below:
    • For 10000 records, it took less than 2 seconds to compute. There were 3758 shoppers and 191 E-coupons
    • For 20000 record, it took 28 seconds to compute. There were 4724 shoppers and 380 E-coupons
    • For 30000 records, it took 58 seconds. There were 5115 shoppers and 544 E-coupons
    • For 40000 records, it took 1 min 40 seconds. There were 5333 shoppers and 725 E-coupons
    • For 50000 records, it took 2min 43 seconds. There were 5449 shoppers and 906 E-coupons

Quality of product

Project Deliverables

Stage Specification Modules
Project Management Minutes
Metrics
Requirements User Interface Mockups and Videos
Analysis Use case
Design Deployment Diagram
Logical Diagram
System Architecture Diagram
ER diagram
Testing User Test Plan
Handover Manuals
Code
Deployment Diagram

Quality of Product

S/N S/Application Quality Achieved Method Description
1 Android mobile application Performance Web Service call reduction & Asynchronous calls
  • About this quality
  • Before mid-term presentation, most of our web service calls requires response from our web service before any processing is done
  • In the event of poor connectivity, the mobile application UI will be unresponsive because it is waiting for the web service response.
  • How we achieve this quality?
  • Re-analyse and re-evaluate each web service calls if the each call requires immediate response
  • Web service calls are done asynchronously so as to prevent mobile application from "freezing"
  • For web service that requires immediate response, a timeout parameter is implemented to mitigate the issue of poor connectivity
2 Android Mobile Application Performance and Responsiveness Data Caching for E-coupon List
  • About this quality
  • As our mobile application is highly dependent on connectivity, in the event of poor connectivity, the loading time of E-coupons increase
  • This increase of loading time will inevitably affect the usability and performance of our mobile application
  • How we achieve this quality?
  • After each successful web service calls to retrieve the list of E-coupons, this list will be cached in the user's mobile device
  • Our mobile application will display the cached data while fetching new list of E-coupons from the web service
  • Thus, this significantly improve our mobile application's performance and responsiveness
3 Android mobile application Flexibility Toggle between self-developed indoor positioning system and Indoo.rs indoor positioning system
  • About this quality
  • On top of using the third party indoor positioning system , Indoo.rs, we also implemented our self-developed indoor positioning system to detect region.
  • As such, there is a need to allow our sponsor to seamlessly toggle between Indoo.rs indoor positioning system and our self-developed indoor positioning system.
  • How we achieve this quality?
  • Sponsor can simply login onto the Admin Portal to toggle between Indoo.rs indoor positioning system or our self-developed indoor positioning system.
  • Users of our mobile application will receive the change and switch to the selected indoor positioning system.
4 Android mobile application Flexibility Detachable content using Fragment API
  • About this quality
  • Initially, our mobile application was built using Android Activity.
  • The Activity approach requires us to re-instantiate the side menu for each activity.
  • Such approach is inefficient and discourage reusability
  • How we achieve this quality?
  • We redesign and adopted a new approach using Fragment API which allow us to create reusable components call fragments
  • As such, the content of our mobile application is interchangeable while the side menu remains intact
  • Captialising on the flexibility that Fragment API offers, we are able to integrate 3 different indoor positioning system with ease
5 Android mobile application Maintainability Modular and loosely coupled codes
  • About this quality
  • To better facilitate the process of handing over the project to our sponsor, we need to ensure the maintainability of our source codes
  • Maintainable source codes also reduces the probability of bugs and errors which may hinder our progress
  • How we achieve this quality?
  • We emphasize modularity of source codes by breaking down functions and codes into independent and interchangeable modules that are reusable by different java classes.
  • In addition, our source codes are loosely coupled.
    • An example would be Common.java which contains variables and methods that are commonly used by other java classes. By simply changing the value of a variable in Common.java will affect the other classes that are using that variable.
 
Snippet of Common.java
 
Snippet of detachable content fragment
6 Indoor Positioning System on Mobile Web Service application Scalability Create an Android mobile application that allows the sponsor to collect Wi-Fi fingerprints of different regions in different shopping malls

About this quality

  • In future, if the sponsor were to roll out our mobile application to more shopping malls, she should be able to do recommendation of E-coupons based on shoppers’ indoor location. As a result, we needed to make sure that our IPS is scalable
  • For now, we are only working with The Cathay but we have tested our IPS in both The Cathay as well as SMU and it is fairly accurate

How we achieve this quality

  • We developed a mobile application called “WIFI Fingerprinter” which will allow the sponsor to collect new Wi-Fi fingerprints of retailers in different shopping malls
  • These Wi-Fi fingerprints are dynamically matched with new and existing retailers when the CountMeIn mobile application calls the Mobile Web Service Application to get its current indoor location
7 Retailer Admin System Security Salted password hashing

About this quality

  • Two of the retailers from The Cathay expressed concerns that their passwords may be exposed to us if they were to create retailer accounts with CountMeIn and hence we have to ensure them that their password would be protected

How we achieve this quality

  • We generate the salt using a Cryptographically Secure Pseudo-Random Number Generator from Java - java.security.SecureRandom. This allows the salt to have a high level of randomness and hence is unpredictable.
  • Compute salted password using the algorithm, Password-Based Key Derivation Function 2, from Java - javax.crypto.SecretKeyFactory and javax.crypto.spec.PBEKeySpec


8 Retailer Admin System Maintainability Using SpagoBI and JasperReports to generate Business Intelligence reports for the retailers

About this quality

  • Since the sponsor will be taking over the project and the requirements of the Business Intelligence reports may change as more retailers join CountMeIn, it is important that the sponsor would be able to change the report according to the new requirements easily in the future

How we achieve this quality

  • We configured the SpagoBI server and integrate its SDK into our web application; this will allow our web application to call the SpagoBI server’s web services to generate the Business Intelligence reports for the retailers
  • The Business Intelligence reports generated by SpagoBI server are based on JasperReports template (jrxml)
  • The JasperReports template can be easily created by using iReport designer tool.
  • Therefore the sponsor does not have to edit any codes inside the web application in future


9 Retailer Admin System Usability Allow retailers to crop their uploaded images to the correct ratio aspect

About this quality

  • Initially we only allow retailers to upload images that are of 493 pixels x 298 pixels. However, many of the retailers either lack the capability or the software to crop an image
  • In addition, there is a challenge of making the html input type of “file” user-friendly as it has a restriction of appending new values. The restriction is due to security reasons – For example, it would be a security risk if developers are allowed to append value and submit files from the user’s hard disk without the user’s permission

How we achieve this quality

  • On the client side, we used a third-party jQuery Plugin which allows users (retailers) to select an area on their uploaded image simply by dragging the selection of the area with their mouse
  • On the server side, we used the java’s buffered image class to crop the image based on the user’s selection
  • As for the html input type of “file”, we ensured that the value appended on the input tallies with the image that is being shown to the user, otherwise, we reset the input by cloning and replacing it with the original html input type of “file”.


10 Hibernate Project Maintainability and portability By using Hibernate to communicate with the database

About this quality

  • As the project will be handed over to the sponsor, we needed to ensure that it will be easy for the sponsor to understand and deploy on her own

How we achieve this quality

  • The Hibernate implementation classes know how to write vendor-specific SQL and hence it abstracts the application from underlying SQL database and SQL dialect. This means that the switch to other SQL database is easy for the sponsor to implement in future.
  • By using Hibernate, the sponsor does not have to write complex and tedious SQL statement since it maps java objects to relational database. As a result, there is less lines of code and the system is more understandable.


Deployment

Area Details
Development Environment
  • Our application has been deployed on Android Ice Cream Sandwich (API level 14) onwards
Database
  • Database deployed on UPL server


Web Services
  • Web service to retrieve all E-coupons from shopper's favourite list
  • Web service to add an E-coupon to the shopper's favourite list
  • Web service to delete an E-coupon from the shopper's favourite list
  • Web service to share E-coupon to shopper's Facebook
  • Web service to get image of E-coupon
  • Web service to redeem E-coupon
  • Web service to enable Indoo.rs
  • Web service to add reading for Wi-Fi fingerprints (self-developed indoor positioning system)
  • Web service to get current indoor location (self-developed indoor position system)
  • Web service to get all registered retailers (self-developed indoor position system)
  • Web service to get list of E-coupons by category
  • Web service to get list of latest E-coupons
  • Web service to get list of recommended E-coupons
  • Web service to validate/create shopper's account
Web Links

User Testing

For our UT, we have divided them as according to

1) the mobile application

2) the web applications(comprising of the Retailer Admin System and the Admin Portal)


1) User Testing for Mobile Application


Summary:

For the user testing of our mobile application, we have conducted a total of 6 UT so far.

Typically, the methodology of how we conduct the UT revolves around these main areas:

Objectives
Details
Method
Scope of features tested
Results

Collated Quantitative Results:

The table summarizes the UT that we have conducted on the mobile application. Below are the details of the execution plan, instruction sheet and the results.

User Test Date Conducted Usability Test Documents Usability Test Results More Details
1 2 Nov 2012 (Fri) UT 1 Execution Plan UT 1 Results

UT 1 Video

UT 1 Details
2 14 Jan 2013 (Mon) UT 2 Execution Plan

UT 2 Test Sheet
UT 2 User Appreciation

UT 2 Results UT 2 Details
3 15 Feb 2013 (Mon) UT 3 Execution Plan

UT 3 Instruction Sheet
Link for Survey here

UT 3 Raw Qualitative Results

UT 3 Compiled Results

UT 3 Details
4 15 Feb 2013 (Mon) UT 3 Execution Plan

UT 3 Instruction Sheet
Link for Survey here

UT 3 Raw Qualitative Results

UT 3 Compiled Results

UT 3 Details
5 18 Mar 2013 (Mon) & 19 Mar 2013 (Tues) UT 5 Execution Plan

UT5 Android Instructions Sheet (Facilitator)
UT5 Instructions Sheet (User)
Link for Survey here

UT 5 Raw Qualitative Results

UT 5 Compiled Results

UT 5 Details
6 11-12 April 2013 (Thursday and Friday) UT6 at The Cathay Execution Plan

Link for Survey here
IPS Instructions Sheet

UT6 Results UT 6 Details

User Test 1

Area Details
Objectives
  • To understand whether the user finds the usability of the application user-friendly
Details
  • Participants: 7 shoppers/ undergraduates
  • Venue: SMU, SIS UPL Lab
  • Date: 2nd Nov 2012 (Friday)
  • Duration: 1 hour
Method

We conducted the user test using a high-fidelity paper prototype using the mock up designs of the application. Thereafter, we gave the participants the freedom to explore the application by themselves.

Data collection

Collecting of qualitative metrics

  • We will observe how the participants use the application during the testing procedure.
  • Upon completion of the paper prototype, the participant will be asked to give their feedback on usability and design of the application.
Scope of features tested
  • Sign in as an existing user
  • Login with Facebook
  • Bring me
  • Share me (share on Facebook)
  • Bookmark me
  • Scan a product and add to cart
  • View my shopping cart/ checkout
  • View past transactions
  • Browse E-coupons
  • View recommendations (now known as latest)
Results

User Test 2

Area Details
Objectives
  • To obtain feedback from our users with regards to the layout in our application
  • To implement a layout that is considered to be of acceptable standard by users
Details
  • Participants: 10 shoppers/ undergraduates
  • Venue: SMU, SIS UPL Lab
  • Date: 14th Jan 2013
  • Duration: 2 hours
Method
  • We conducted the user test using a low-fidelity paper prototype using the mock up designs of the application. Thereafter, we gave the participants the freedom to explore the application by themselves.
  • We recorded observations and feedback
Scope of features tested
  • Login with Facebook
  • Push notification
  • View recommended E-coupons(now known as latest)
  • View home page/ featured E-coupons
  • Share me (share on facebook)
  • Bring me (navigation)
  • Add to E-coupon Cart
  • Use E-coupon (NFC tag)
  • Browse E-coupon (by category & location)
  • Map
  • E-coupon Cart
  • Logout of application
Results


User Test 3

Area Details
Objectives
  • To test the functionalities of the application from a user's perspective
  • To obtain feedback from our users with regards to the usability of the application
Details
  • Participants: 14 shoppers/undergraduates
  • Venue: SMU, SIS SR 3-4
  • Date: 15th Feb 2013
  • Duration: 3 hours
Method
  • Testing of actual application using the Android device, Samsung Galaxy S III.
  • Each participant was given the instruction sheet and asked to circle how easy it was to complete each test case.
  • We recorded the observations and feedback of each user
Scope of features tested
  • Login with Facebook
  • View Home Page/ Latest E-coupons
  • Share Me (share on facebook)
  • E-coupon Cart
  • Use Me (NFC tag)
  • Search E-coupon (search by category & location)
  • Logout of application
Results

User Test 4

Area Details
Objectives
  • To test the functionalities of the both the Android application and the web application in a simulated real life environment
  • To gather feedback from our users with regards to the functionalities of the application and the process flow of the concept
Details
  • Participants: 15 shoppers/ undergraduates
  • Testing venues for Count Me In Android app:
    • SR 2-3 (starting & ending point)
    • GSR 3-5 (Pedro Shop)
    • GSR 2-4 (The Basement)
  • Date: 11th Mar 2013 (Monday)
  • Duration: 4 hours (each individual: 20-30mins)
Method
  • Testing of application was done using the Android device, Samsung Galaxy S III.
  • Each participant was given the Android instructions sheet and asked to circle how easy it was to complete each test case.
Scope of features tested
  • Login with Facebook
  • View recommended E-coupons(now known as latest)
  • Share me (share on facebook)
  • Add to favourite list
  • Push notification to view recommended E-coupons
  • Indoor Navigation
  • Receive location-specific push notification & view recommended E-coupons
  • Use Me
  • Bring me (navigation)
  • Delete E-coupon
  • Logout of application
Results

User Test 5

Area Details
Objectives
  • To test the functionalities of the Android application in a real life environment
  • To stress-test the application in a condition where many users will be using the application
  • To gather feedback from our users with regards to the functionalities of the application and the process flow of the concept
Details
  • Participants: 24 shoppers/ undergraduates
  • Venue: The Basement Café
  • Date: 18th Mar 2013 (Monday), 19th Mar 2013 (Tuesday)
  • Duration: 4.5 hours (each individual: 20-30mins)
Method
  • To test the functionalities of the both the Android application and the web application in a simulated real life environment
  • To gather feedback from our users with regards to the functionalities of the application and the process flow of the concept
Scope of features tested
  • Login with Facebook
  • View recommended E-coupons(now known as latest)
  • Indoor Navigation
  • Bring Me
  • Receive location-specific push notification & view recommended E-coupons
  • Share me
  • Favourite Me
  • View Categories
  • Delete E-coupon
  • Use Me
  • Logout of application
Results

User Test 6

Area Details
Objectives
  • To test and gather feedback on Count Me In in a deployed environment
  • To test the Cosine Similarity Index algorithm for the recommendation
  • To gather feedback from our users with regards to the functionalities of the application and the process flow of the concept
  • To test the indoor positioning system with these test cases: UT6 Instructions Sheet
Details
  • Participants: 22 shoppers (18 undergraduates, 4 public)
  • Venue: The Cathay
  • Participating Retail Outlets:
    • Popeyes
    • CreaTeaf Waffles
    • Gong Cha
    • Marcella
    • St. Games
    • Jshoes
  • Date: 11th Apr 2013 (Thursday) & 12 Apr 2013 (Friday)
  • Duration: 4 hours each day (each individual: 20-30mins)
Method
  • IPS Test: Instructions/goals were given for users to fulfil; their rating for the usability of the application was collected
  • Field Test: testing of application under actual conditions
    • We asked users to complete 3 steps: Download, Redeem & Complete a Survey
Scope of features tested
  • Locate Retailer
  • Indoor Map
Results


2) User Testing for Web Application


Summary:

There are 2 aspects of the web application
(1)The first aspect is the Retailer Admin System.
(2)The second aspect is the Admin Portal.

For the Retailer Admin System, we have conducted a total of 4 UT. For the Admin Portal, we have conducted a total of 1 UT.

Typically, the methodology of how we conduct the UT revolves around these main areas:

Objectives
Details
Method
Scope of features tested
Results


1) Retailer Admin System:

The table summarizes the UT that we have conducted on the Retailer Admin System. Below are the details of the execution plan, instruction sheet and the results.

Web App User Test Date Conducted Usability Test Documents Usability Test Results More Details
1 22 Jan 2013 (Tues) Web UT1 Execution Plan Web UT1 Results UT 1 Details
2 25 Mar 2013 (Mon) Web UT2 Execution Plan

Web UT2 Instructions Sheet

Web UT2 Compiled Results UT 2 Details
3 10 April 2013 (Wednesday) Web UT3 Execution Plan

Web UT3 Instructions Sheet

Web UT3 Compiled Results UT 3 Details
4 17 April 2013 (Wednesday) Web UT4 Execution Plan

Web UT4 Instructions Sheet

Web UT4 Compiled Results UT 4 Details

Webapp User Test 1

Area Details
Objectives
  • To obtain feedback from our users with regards to the layout in our application
  • To implement a layout that is considered to be of acceptable standard by users
Details
  • Participants: 2 Retailers
  • Venue: SMU, The Basement Café
  • Date: 22nd Jan 2013
  • Duration: 2 hours
  • Environment: "Sit at a table" setting
Method
  • Low-fidelity paper prototype. Users were given the freedom to explore the application by themselves
  • We recorded the observations and feedback of each user
Scope of features tested
  • Login with an account
  • Upload E-coupons
  • Edit pending E-coupons
  • View published E-coupons
  • View expired E-coupons
  • View Business Intelligence for published & expired E-coupons
  • Logout of application
Results

Webapp User Test 2

Area Details
Objectives
  • To obtain feedback from our users with regards to the usability of the Retailer Admin System
  • To create an application that is user-friendly for retailers
Details
  • Participants: 10 users
  • Venue: SIS SR 2-4
  • Date: 25th Mar 2013 (Monday)
  • Duration: 4 hours (each individual: 20-30mins)
Method

The actual application was tested this time using a laptop. Each participant was given the Web UT2 Instruction Sheet and asked to circle how easy it was to complete each test case.

Scope of features tested
  • Create a retail account
  • Login into application
  • Upload new E-coupon
  • Edit pending E-coupon
  • Copy E-coupon
  • Delete E-coupon
  • View published E-coupon statistics
  • Logout of application
Results


Webapp User Test 3 (The Cathay retailers)

Area Details
Objectives
  • To obtain feedback from our retailers with regards to the usability of the Retailer Admin System
  • To create an application that is user-friendly for retailers
Details
  • Participants: 6 retailers
  • Venue: The Cathay
  • Date: 10th Apr 2013 (Wedneday)
  • Duration: 6 hours (each individual: 20-30mins)
Method

The Retailer Admin system was tested using a laptop . Each participant was given the Web UT3 Instruction Sheet and asked to circle how easy it was to complete each test case.

Scope of features tested
  • Create a retail account
  • Login
  • Upload new E-coupon
  • Edit pending E-coupon
  • Copy E-coupon
  • Delete E-coupon
  • View published E-coupon statistics
  • Logout of application
Results

Webapp User Test 4 (The Cathay retailers)

Area Details
Objectives
  • To obtain feedback from our retailers with regards to the usability of the Retailer Admin System with the updated changes from the last user test
Details
  • Participants: 6 retailers
  • Venue: The Cathay
  • Date: 17th Apr 2013 (Wedneday)
  • Duration: 6 hours (each individual: 20-30mins)
Method

The Retailer Admin System was tested using a laptop . Each participant was given the Web UT4 Instruction Sheet and asked to circle how easy it was to complete each test case.

Scope of features tested
  • Create a retail account
  • Login
  • Upload new E-coupon
  • Crop new E-coupon
  • Edit pending E-coupon
  • Copy E-coupon
  • Delete E-coupon
  • View published E-coupon statistics
  • View or export BI report
  • Delete E-coupon
  • Logout
Results


2) Admin Portal:

The table summarizes the UT that we have conducted on the Retailer Admin System. Below are the details of the execution plan, instruction sheet and the results.

Admin Portal User Test Date Conducted Usability Test Documents Usability Test Results More Details
1 16 April 2013 (Tuesday) Admin Portal UT Execution Plan

Admin Portal UT Instructions Sheet

Admin Portal Compiled Results Admin Portal Details

Admin Portal UT

Area Details
Objectives
  • To obtain feedback from our with regards to the usability of the Admin Portal
  • To create an application that is user-friendly for administrators
Details
  • Participants: 6 SMU students
  • Venue: SMU
  • Date: 16th Apr 2013 (Tuesday)
  • Duration: 4 hours (each individual: 20-30mins)
Method

The Admin Portal was tested using a laptop . Each participant was given the Admin Portal Instruction Sheet and asked to circle how easy it was to complete each test case.

Scope of features tested
  • Login
  • View existing retailers
  • Delete existing retailer
  • Approve pending retailer
  • Toggle between Indoo.rs and self-developed indoor positioning system
  • Logout
Results

Reflections

Reflection Reflection
UglyJUN.png
  • Learned that there is no single best project management methodology & development in Android mobile application.
  • Deploying in Google Play Store puts us in a real environment where we have to take into consideration the different stakeholders.
  • In doing so, it allows us to re-align ourselves and focus on our priorities.
  • Our greatest glory is not in never failing, but in rising up everytime we fail
UglyADRIAN.png
  • Learned about how e-commerce business (like Amazon) do recommendations which revolve around algorithms.
  • Learned about mapping POJO to relational database and annotations in Hibernate.
  • Delivering value requires constant communication with stakeholders.
  • Relevance is becoming more important in today’s world and to be relevant is to know what creates value for users.
  • Persistence is key in working with real retailers.
  • What doesn’t kill you makes you stronger.
UglyCELINE.png
  • Learned how to critically analyze user feedback and prioritise the ones useful for our future development.
  • Quantitative results identify problems but qualitative results solves them.
  • User testing is critical to enhancing an application’s usability and thus increases the application’s adoption rate.
  • Strong team dynamics and a good contingency plan is crucial in an IT Project
  • Always expect the unexpected and be prepared for new challenges.
AlvinUGLY.png
  • Learned to develop sophisticated requirements to a seamless Android mobile UI to provide easy user experience for users.
  • Not everything goes according to plan and risks might happen at anytime.
  • Perseverance and motivation is required to overcome these obstacles.
  • People behave differently when they use a similar system on different devices.
  • There is a need to identify these behaviour and design accordingly.
  • It is not about how much you do but more of the value you are creating.
UglyCT.png
  • Learned the importance of understanding the basics and foundations of Android before diving into development.
  • Every platform has its own complexities and considerations such as the mobile device's UI usability and the connectivity
  • Identifying the best practice style is important in development
  • The more you do, the more mistakes you make, the more you learn.
UglyBIN.png
  • Learned the deployment of web application in greater detail and the usage of external tools such as SpagoBI SDK and Hibernate library.
  • More considerations and planning have to be done to create an application that exceeds the market standard when you deploy live.
  • The good thing about being in SIS is there are many professors and researchers around to help us with our problems on Business Analytics and Indoor Positioning System.