HeaderSIS.jpg

Difference between revisions of "IS480 Final wiki: 2016T1 WEGOT"

From IS480
Jump to navigation Jump to search
Line 44: Line 44:
  
 
<br>[[File:Midterm-project-summary.png|center|900px]]<br>
 
<br>[[File:Midterm-project-summary.png|center|900px]]<br>
 +
[[File:Xfactor.png|center|900px]]<br>
  
 
===Project Highlights:===
 
===Project Highlights:===

Revision as of 22:38, 13 November 2016

Logo-vertical.png


HOME

ABOUT US PROJECT OVERVIEW PROJECT MANAGEMENT DOCUMENTATION


MAIN WIKI MIDTERM WIKI FINAL WIKI

Documentations


Presentation-slides.png
Video-pitch.png
Deployment-link.png
Past-docs.png








WEGET Progress Summary


Midterm-project-summary.png


Xfactor.png


Project Highlights:


Project-highlights-progress.png


Project-highlights-main.png


Project Challenges:

Challenge Faced Impact Mitigation Plan Outcome

Lack of resources to market mobile application

Without proper marketing, our application would be on the play store with no real users. This makes our entire project pointless as the core of our project's revolves around user to user interactions

Develop and upload marketing plan given the resources we have at the moment

Mitigated: Weget Marketing Plan

Proof-of-concept testing for our mobile application with real users

We have done user testing with simulated users for short periods of time. However, our real users would be using this application in a much more frequently. Hence, our group feel its important to obtain users feedback from a prolonged user testing.

Executing marketing plan in targeted areas that are within our reach. After execution, obtain some of these newly found users to assist us in doing a live testing lasting at least one week.

In-Progress

Team is not supported by sponsor, sponsor was dropped after being uncontactable for more than 2 months

Initially, our sponsor had assured us that he would be obtaining live users for our application. However, halfway through he decided that he wanted to use this as a prototype. We tried reasoning with him but he has been uncontactable since. Without his support our group now has to perform additional tasks of marketing and obtain users with whatever means possible to make our application a success.

Adopting our own business and marketing plan, change focus from profiting to understanding whether current business model works and how to improve based on live feedback.

In-Progress


Project Achievements

Xfactor-targed-vs-achieved.png

Project Management

Project Scope (Plan Vs Actual):

Changes-made-scope.png


Planned-title.png


Scope-4.png


Actual-title.png


Banner-Project Scope.png



You can view WEGET's detailed scope changes here!

Project Schedule (Plan Vs Actual):

Changes-made-schedule.png


Planned-title.png


Schedule-version-4.jpg


Actual-title.png


Banner-schedule.jpg


You can view WEGET's detailed schedule changes here!

Project Metrics:

Bug&task-title.png


Combined-wegot.png


You can view WEGET's detailed metrics here!

Technical Complexity:

Banner-archi--midterms.png


Complexities-title.png


Complexity What is the complexity How it was resolved
Firebase Notifications

We made use of the popular FCM(Firebase Cloud Messaging) to broadcast notifications to our users in the event. With Firebase notifications, a notification is required in order for FCM to locate and send notifications to the specific user. However, this notification token is generated device-based, as opposed to user account-based. Therefore, if different users signed in on the same device, they essentially be sharing a single notification token. As such, all the messages sent from FCM (Firebase Cloud Messaging) console will be accessible to all user accounts logged in on a single device. This pattern of messaging behavior is not desired for our application.

In order to combat this unintended behaviour, we have decided to generate an FCM token based on user registration with his/her device. Based on every user login, this token is uploaded to our application database. And this FCM token is cleared from database by web-service after user logout. In this design, although the FCM token is device based, it can be used by a single user login session only. The notification message behaves in the correct manner.

Security

Our application involves the transmission of users’ sensitive information such as their password, contact number and payment details over multiple HTTP GET and POST between our client devices and our web service. As such, we had to implement a secure means for the data to be transferred between client and server. In addition, with the expected volume of simultaneous users, we need a lightweight and quick means to secure these sensitive information when performing the webservice calls.


Client-Side:
To maintain the security of the client-server channel, we decided to utilize an industry standard of securing our web service calls with Basic Authentication(Username and password is encoded in Base64 and sent) over a HTTPS connection. In essence, this provides a lightweight and efficient means of security by ensuring that each web service call is authenticated. In addition, Basic Authentication is preferred due to the scale of our project, and provides greater efficiency as compared to alternatives such as Digest or OAuth which requires several connections between client and server. In addition, we made used of a HTTPS connection to prevent man-in-the-middle attacks.

Server-Side:
Since the web service is developed on the Spring framework, we chose to secure the application with Spring Security and utilizes the in-built authentication manager to authenticate all web service calls from the client side application.

In addition, all sensitive user information such as passwords and tokens are encrypted with the Spring in-built BCrypt Encoder which uses a salt to prevent against brute-force and rainbow-table attack should the database be compromised.

Chat

To help enable communication between our two different types of users, we chose to implement an in-app chat function. The challenge for our team is to develop a chat function with proper infrastructure to enable fast and live chats between users. Traditionally, before embarking on building a chat module, developers needed to build an infrastructure to support communication which can be very tedious and complex. Thus, the worry for the team is to enable an effective and robust communication channel for users and to also integrate communication into our other mobile application features.

Sendbird’s Chat API helped us by removing the need to create a complex infrastructure to enable communication for our application. Thus, we would only need to focus on implementing and enabling communication channels by using their chat API.

After signing up a new user, we will initialize Sendbird and also sign register them on Sendbird using a unique id that is tied to that user upon registration. After registration, we can then create and open communication channels with other users when they communicate with each other.

Create new channel between 2 users:
GroupChannel.createChannelWithUserIds(userIds, true, new GroupChannel.GroupChannelCreateHandler(){};

Open existing channel between users:
GroupChannelListQuery mQuery = GroupChannel.createMyGroupChannelListQuery();
GroupChannel.createChannelWithUserIds(userIds, true, new GroupChannel.GroupChannelCreateHandler() {};

We can then load these channels and display messages between users which can be displayed in real-time as well



Quality of product

Intermediate Deliverables:

Type Specification Documentations
Project Management Risk, Metrics and Minutes

Risk Management
Task and Bug Metrics
Meeting Minutes

Analysis, Design and Diagrams Market Research,Prototype, Persona, Scenarios, Storyboard, Use Case and Architecture Diagram Market Research and Surveys

Prototype
Persona and Scenarios
Storyboard
Use Case and Architecture Diagram

Testing User Test Plan User Testing 1, Test Plan

User Testing 2, Test Plan
User Testing 3, Test Plan
Live User Testing (UT 4), Test Plan

Quality

Deployment:

WEGET android application can be found on the Play Store or can be downloaded via https://play.google.com/store/apps/details?id=com.weget.fuyan.fyp

  • Our application is compatible with all android devices
  • Testing:

    User Testing User Testing Results

    UAT 1

    Insert result file here

    UAT 2

    Insert result file here

    UAT 3

    Insert result file here

    Live User Testing (UT 4)

    Insert result file here


    Reflection

    Team Reflection:

    Reflection-1.png
    Reflection-2.png