HeaderSIS.jpg

Difference between revisions of "IS480 Team wiki: 2013T2 Zora Final Wiki"

From IS480
Jump to navigation Jump to search
 
(8 intermediate revisions by 4 users not shown)
Line 6: Line 6:
 
|bgcolor="#8275aa"|Final Presentation Slides
 
|bgcolor="#8275aa"|Final Presentation Slides
 
|bgcolor="#dbdbdb"|
 
|bgcolor="#dbdbdb"|
*[[Media:Zora_Final_Presentation.pdf‎ ‎|v1: 8 Apr 2014]]
+
*[[Media:Zora_Final_Presentation.pdf‎ ‎|v2: 21 Apr 2014]]
 
|- align="left"
 
|- align="left"
 
|bgcolor="#8275aa"|Deployed Site Link
 
|bgcolor="#8275aa"|Deployed Site Link
Line 280: Line 280:
  
  
 +
{| align="center" cellpadding="2" style=  width="550px"
 +
|- align="left"
 +
! scope="col"  bgcolor="#4D4D4D"| <font color="white">Integration of various modules</font>
 +
|- align="left"
 +
! The various modules of our application are not individual silos and they are tightly integrated with each other. In order to manage the challenge of sharing data, we have developed extensive documentation for all the tables in our database. An example is shown in the picture below. 
 +
|- align="left"
 +
! [[File:Zora Final db documentation.jpg|550px|center]]<br>
 +
|}
 +
 +
 +
 +
{| align="center" cellpadding="2" style=  width="550px"
 +
|- align="left"
 +
! scope="col"  bgcolor="#4D4D4D"| <font color="white">Managing Live Data</font>
 +
|- align="left"
 +
! As we have deployed our application early, we also faced the challenge of handling existing data our application as we make changes to our database tables. We use the Beyond Compare software to identify changes in order to ensure smooth migration.   
 +
|- align="left"
 +
! [[File:Zora Final Managing real data.jpg|550px|center]]<br>
 +
|}
 
{| align="center" cellpadding="2" style=  width="550px"
 
{| align="center" cellpadding="2" style=  width="550px"
 
|- align="left"
 
|- align="left"
Line 338: Line 357:
 
**Validation is done at input to prevent cross site scripting  
 
**Validation is done at input to prevent cross site scripting  
 
*Dynamic Access Control
 
*Dynamic Access Control
 +
 +
=== Maintainability===
 +
 +
*Coding conventions & standards carefully adhered to. Our framework has a [http://ellislab.com/codeigniter/user-guide/general/styleguide.html| style guide] that we follow.
 +
*We have 3 layers of abstraction within our application - Views, Controllers & Model
 +
 +
<br/>'''MVC Model:'''
 +
[[Image:Zora architecture.png|400px|center]]
  
 +
 +
<br/>'''Architecture Model:'''
 +
[[Image:Zora architecture real.png|400px|center]]
  
 
===Project Deliverables:===
 
===Project Deliverables:===
Line 388: Line 418:
 
|- align="left"   
 
|- align="left"   
 
|bgcolor="#dbdbdb"|Deployment Diagram
 
|bgcolor="#dbdbdb"|Deployment Diagram
|bgcolor="#dbdbdb"|[[IS480_Team_wiki:_2013T2_Zora_Business_Requirements|<font color="#069" face="">'''System Architecture'''</font>]]
+
|bgcolor="#dbdbdb"|[[IS480_Team_wiki:_2013T2_Zora_System_Architecture|<font color="#069" face="">'''System Architecture'''</font>]]
 
|}
 
|}
 
=== Quality:===
 
 
 
*To ensure maintainability, we have 3 layers of abstraction within our application - Views, Controllers & Model
 
*Coding conventions & standards carefully adhered to
 
 
====<br/>Architecture Diagram:====
 
[[Image:Zora architecture.png|400px|center]]
 
  
 
===Deployment:===
 
===Deployment:===
  
In an iterative approach, ready to use system should be available (deployed) for client and instructions to access the system described here (user name). If necessary, provide a [[IS480_Final_Wiki#Project_Deliverables: | deployment diagram link]].
+
*Deployed on client's server on [http://www.bluehost.com// bluehost] on 12 Apr 2014.
 +
*Deployed version consist of ALL modules that we have coded for the entire iteration.
 +
*Handover to our client Sterling Engineering completed.
  
 
==Testing==
 
==Testing==
Line 554: Line 577:
 
{| align="center" cellpadding="2" style=  width="750px"
 
{| align="center" cellpadding="2" style=  width="750px"
 
|- align="left"
 
|- align="left"
! scope="col"  bgcolor="#4D4D4D"| <font color="white">User Test 2 Analysis</font>
+
! scope="col"  bgcolor="#4D4D4D"| <font color="white">User Test 3 Analysis</font>
 
|- align="left"
 
|- align="left"
 
! scope="col"  bgcolor="#ffffff"| [[Media:User Test 3 Analysis.pdf|<font color="#069" face="">'''
 
! scope="col"  bgcolor="#ffffff"| [[Media:User Test 3 Analysis.pdf|<font color="#069" face="">'''
Line 621: Line 644:
 
|- align="left"
 
|- align="left"
 
|bgcolor="#4dbfd9"|
 
|bgcolor="#4dbfd9"|
 +
*Through IS480, I had learnt the important of building a system with flexible concept/design on the backend, to allow easy amendment to changes and new requirements and programming framework became very handy in such situation.
 +
*The challenge I faced the most is getting the missing piece of requirements into a workable system. As our project is built on the agile methodology, changes and new requirements come at different phase. Therefore, I have to ensure that the database design is flexible enough to capture the new data and also striking a balance between ease of accessing to data and minimize data redundancy.
 
|bgcolor="#9fc1fe"|
 
|bgcolor="#9fc1fe"|
 
*Being a quality analyst, I had learnt that testing is an essential procedure that should not be eliminated or avoided when developing an application, especially user test. Without user test, there is no way the application that we built can be perfect because as developers, we can never fully understand the real needs of the user until they tried the system themselves and provide us feedbacks to improve accordingly.  
 
*Being a quality analyst, I had learnt that testing is an essential procedure that should not be eliminated or avoided when developing an application, especially user test. Without user test, there is no way the application that we built can be perfect because as developers, we can never fully understand the real needs of the user until they tried the system themselves and provide us feedbacks to improve accordingly.  

Latest revision as of 16:09, 21 April 2014

Project Progress Summary

Deliverable Link
Final Presentation Slides
Deployed Site Link


Completion of project

100% (Core, Secondary, Good to Have)
View detailed scope here

Number of Iterations

12
View detailed schedule here

Number of Heuristics

1

Number of User Testing

3

Deployment

  • Deployed on client's server on bluehost on 12 Apr 2014.
  • Handover to our client Sterling Engineering completed.

Changes since Mid-Term

  • Addition of new X-Factor to compensate for lack of technicality: Fraud Detection
  • Did not implement 2 good to have features: Audit Log, Portal Notification due to the new addition X-Factor.

Milestones

Completed Milestones Remaining Milestones
  • Heuristics 1 (18 Sep 2013)
  • User Test 1 (18 Oct 2013)
  • Proposal Submission (28 Oct 2013)
  • Acceptance Presentation (8 Nov 2013)
  • User Test 2 (3 Feb 2014)
  • Live Deployment 1 – Leave, Claim, Administration (19 Feb 2014)
  • Mid-Term Presentation (26 Feb 2014)
  • User Test 3 (17 Mar 2014)
  • Live Deployment 2 (12 Apr 2014)
  • Final Presentation (21 Apr 2014)

Completed Functionalities

Project Scope & Progress
View detailed completed features
Core Modules Secondary Modules Good to Have Modules
  • Basic Remuneration
  • Claims
  • Leave
  • Basic System Administration
  • ACL
  • Training & Development
  • Performance Management & Appraisal
  • Claim Analysis Report
  • Advanced Remuneration
  • X-Factor: Fraudulent Claim Detection
  • Manage Performance Management


Project Highlights

Issue Description Consequences Mitigation Plan
Client request for 2 additional features in leave module and claim module. If not handled appropriately, might result in big delay in schedule and project not being able to complete by final presentation.
  • Using the Change Management Metric , we negotiated with the sponsor and managed to reject the change in claim and greatly reduced the scope of the change in leave module.

Project Achievements:

  • Able to get users to use our early live deployed copy with 41 Claims, 14 Leaves being submitted as of 13 April 2014.
  • Conducted a training session on 17 April 2014

Project Management

Project Schedule
View Full Project Schedule Details
Project Scope & Progress
View Full Project Scope Details
Planned VS Actual Schedule
View Planned VS Actual Schedule Details (Finals)
Project Risks
View Project Risks

Project Schedule

Final Project Timeline
Expanded project schedule overview actual.png

Project Metrics:

Schedule Metric

Schedule Metrics
ZORA ScheduleMetricScore.jpg

Highlights of Project Schedule

Iteration Category Reasons Action Taken
2 C (SM > 1.1)
  • Apply Leave: It is more complex that it initially was anticipated. Leave consist of annual, maternity, unpaid and others. All of which requires different business rules. We took longer than we expected for this section.
  • Upload file for Leave & Claim: It is of a high difficulty level for the team due to the lack of knowledge and time to research.
  • PM shifted incomplete tasks to other iteration.
  • All other tasks are being reviewed to ensure that they are broken down to the simplest task possible.
7 C (SM > 1.1)
  • User Test: Time is taken up to do intensive test on the deployed application using the user test task instructions.
  • Other commitments: Team members have other submissions and presentation with other modules during iteration 7. As such, some tasks are delayed.
  • Drop of previous X-Factor of claim analysis interactive graph to free up manpower resources
  • Allocate time to do intensive user test using task instructions in the user’s environment before the next user testing
  • PM to find out commitments in other modules other than FYP for later iterations and reschedule tasks accordingly/re-allocate tasks

View more details on schedule metric here

Bug Metric

Bug Score Tracking
Zora Final Bug Metric.png

View more details on bug metric here

Change Management Plan

2 new additional changes updated in the change tracker:

Iteration Feature Description Function Feasibility How does it value add? Priority level
11

Additional Features for Leave

  • Generate Leave Report
  • Include 1 additional page for HR Personnel to view all the leave applied
  • Filtering to of the dates to be done
  • Information include leave details, date duration, applied by whom, approved/rejected by whom, status
  • HR can view the different leave of all employee at one go
3
(Instead of creating one additional page, allow HR personnel to access to feature "View Approved & Rejected Leave"


11

Additional Features for Claims

  • Claim summary report
  • Include 1 additional page for HR Personnel to view the summary of all claims
  • Filtering to of the dates, claim type, claim name to be done
  • Information include claim date, approved by whom, validated by whom, receipt link
  • HR can view all the claims in a page
4
(Rejection of change due to lack of time & high complexity)

View more details on the Change Management Plan & Results

Technical Complexity

Application
  • Codeigniter Framework
  • PHP 5.2.17
  • Apache
  • TCPDF
  • PHPass
Browser
  • HTML
  • CSS
  • Javascript
  • Jquery Library
  • Jquery Validation Plugin
Database
  • MySQL 5.1.66
  • phpMyAdmin
  • One challenge faced is the integration of various libraries into our application. We would need to figure out how to utilise the various libraries. While there are documentation for the libraries, they are sometimes not adequate when we are debugging our application
  • The 2 libraries we have used so far is TCPDF and PHPass
    • TCPDF is used to generate PDF documents such as claim slips, pay slips etc.
    • PHPass is used for password hashing and encryption


Integration of various modules
The various modules of our application are not individual silos and they are tightly integrated with each other. In order to manage the challenge of sharing data, we have developed extensive documentation for all the tables in our database. An example is shown in the picture below.
Zora Final db documentation.jpg


Managing Live Data
As we have deployed our application early, we also faced the challenge of handling existing data our application as we make changes to our database tables. We use the Beyond Compare software to identify changes in order to ensure smooth migration.
Zora Final Managing real data.jpg

k-nearest neighbor algorithm
Zora Final kNN.jpg

We have used the k-nearest neighbor (kNN) algorithm to classify and detect fraudulent claims. Based on past claims data, we have built a training set on fraudulent claims. When a claim is submitted, our application will calculate the distance of the new claim in relation to all the claims that is already classified. Based on the nearest k - neighbours, the algorithm will classify the claim. As shown in the picture above, where k is 3, the new claim is classified as fraudulent as 2 out of the 3 neighbours is fraudulent.


Calculating distance:

We have used the following variables in calculating distance:

  • Claim amount
  • Income of claimer
  • Claim type
  • Department of claimer
  • Day of date incurred


Each variable is normalised to ensure that all variables would have equal weight and the distance will not be skewed by variables with large values. After normalising, each variables are given different weighs based on their significance in determining the possibility of claim fraud.


Quality of product

Design Considerations

  • We have chosen to use Twitter Bootstrap for our User Interface (UI) as users a familiar with the layout of the design.
  • Our team can move away from reinventing the wheel and focus on providing our users a more intuitive interface instead.
  • In the design of our UI, we use the Nielsen's 10 heuristics as our guideline
Nielsen's Heuristics Screenshot
  • Error prevention
  • Help users recognize, diagnose, and recover from errors
Zora midterm errorprevention.jpg
  • User control and freedom
Zora midterm redo.jpg

Security considerations

  • Password salting and hashing
    • Using PHpass library, each password is assigned a unique salt and hash
  • Cross Site Scripting Validation
    • Validation is done at input to prevent cross site scripting
  • Dynamic Access Control

Maintainability

  • Coding conventions & standards carefully adhered to. Our framework has a style guide that we follow.
  • We have 3 layers of abstraction within our application - Views, Controllers & Model


MVC Model:

Zora architecture.png



Architecture Model:

Zora architecture real.png

Project Deliverables:

Stage Specification Links
Project Management Meeting Minutes Meeting Minutes
Metrics Metrics
Requirement Gathering Business Requirements

Business Requirements

Analysis Use Case Business Requirements
System Sequence Diagram System Architecture
Business Process Diagram Business Requirements
UI Protoypes UI Prototypes
Design ER Diagram System Architecture
Class Diagram System Architecture
Testing Test Plans Testing
Handover Manuals User Manuals
Deployment Diagram System Architecture

Deployment:

  • Deployed on client's server on bluehost on 12 Apr 2014.
  • Deployed version consist of ALL modules that we have coded for the entire iteration.
  • Handover to our client Sterling Engineering completed.

Testing

User Test 3

User Test 3
Zora UT3 Participant 6.png
Zora UT3 Participant 2.JPG

Details

  • 21 & 22 March 2014, Friday & Saturday
  • 10am – 2pm
  • Sterling Engineering Pte Ltd (Client’s Office)
  • No of Participant: 9
  • Participant Profile: Business Development Manager (Administrator), HR Personnel, Contract Manager (Higher Management), Structural Draftsman (Line Manager), 2 x Quality Surveyor, Design Engineer, Work & Safety Health Officer, Student Intern

Objectives

  • Determine usability of application.
  • Obtain both qualitative and quantitative feedback from system users.
Scope of Test
Claims
  • Submit New Claim
  • Validate Submitted Claim
  • Edit Payment Method
  • Approve/Reject Submitted Claim by HR
  • Approve/Reject Submitted Claim by MD
  • Generate Claimslip
  • View Claim History
  • View Personal Claim Status
  • Generate Claim Report
Leave
  • Apply Annual Leave
  • Edit Leave
  • Apply Other Leave
  • Approve/Reject Leave
  • View Status of Leave & Cancel Leave
  • View Leave History
  • Record Medical Leave
  • Record Unpaid Leave & Approve Recorded Leave
  • Generate Leave Report
Remuneration
  • View Past Payment Record for Employees
  • View Personal Payment Record
  • Input Timesheet for Workers
  • Input OT Timesheet for Drivers
  • View Worker Costing
Performance Management & Appraisal
  • Create Employee Appraisal
  • Approve/Revise Salary Increment Request
  • Distribute Bonus
  • View Scheduled Increment/Bonus
Training & Development
  • Propose a Training
  • Approve/Reject Training by HR
  • Approve/Reject Training by MD
  • View Proposed Training Status
  • View Nominated Training
  • Manage External Training
System Administration
  • Create New Profile
  • Update Profile
  • Manage Default Number of Leave
Common Feedback (Before & After)
Claims Before
550


After
550
Leave Before
550


After
550
Training & Development Before
550


After
550
Quantitative Feedback - User Test 2 versus User Test 3
Ease of Use
Zora Ease of use analysis.png


Overall Layout
Zora overall layout analysis.png


Analysis for the same 5 participants from user test 2

This is the analysis done from user test 2:

Zora UT3 Before Analysis.png

Reasons for the time taken:

  • Validate Submitted Claim - Most users are not able to locate the "view" claim receipt link
  • Edit Payment Method - Confirmation message was not display thus user did not know the payment method had been updated
  • Apply Other Leave - Most users was unsure how to upload 2 files as no instruction was stated hence a huge amount of time was spent figuring it out


This is the analysis done for user test 3:

Zora UT3 After Analysis.png

Reasons for changes in timing:

  • Changes that we made and improved on the application was useful
  • Live Deployment + user interacting with the system before enables them to familiar with the system
User Test 3 Analysis

View Full Analysis.

Bug Log

Bug Log
Zora Final Log Metric.png
Click here to view the Bug Log & Metrics file.

Reflections

Team Reflection

Zora team photo.jpg

Throughout the course of the project, we experienced many ups and downs as a team. One of the key takeaways is the need for change management, the importance of documenting client changes along the way. Teamwork, in supporting and motivating each other during challenging and difficult times also proved to be especially critically in seeing the project to its completion.

Individual Reflections

Zora learning fiona.jpg
Zora learning kk.jpg
Zora learning yunxi.jpg
Fiona Woo Lim Ken Khoon Tan Yun Xi
  • Through IS480, I have learnt to be an independent learner by picking up good project management skills from projects done by our seniors.
  • Being a project manager made me understand the importance in seeking common concensus from my fellow groupmates in whatever decision I have made. I have also come to understand that maintaining the morale and camaraderie of the team is essential for the success of the team.
  • The challenge that I face the most is understanding the capabilities and schedule of each team member so as to give a realistic deadline to each tasks. The use of metrics and the weekly meetings to update project progress really aid for me to overcome this challenge.
  • IS480 gave me a chance to step out of my comfort zone. As a lead developer, I often had to be a trailblazer by researching on new technologies, weigh their cost and benefits in order to decide whether to implement them. As such, I am now more versatile as I become more receptive towards unexplored technologies.
  • I have also honed my mentoring skills as I not only have to introduce any new technologies that I have researched to my team members, I would also need to assist them in adopting the new technologies.
  • However, it is has not been a smooth journey throughout the IS480 journey. There was the time where I faced problems in implementing several technologies in data visualization for data analytics. This was solved by exploring other alternatives and close communication with the team, especially, project manager.
  • Due to the various project scopes, we took a substantial amount of time to gather business requirements. I learned the need to document business requirements properly which will allow both the developers and the client to understand better on how the project will turn out. Also, the hi-fidelity prototype in the business requirement made it easy for both parties to be on the same frequency and picture the upcoming system more easily.
  • I also learned that even though a business requirement document was prepared, the document serves just as a guideline. Throughout the development phrases, as the developers who have more expertise in developing a system, we should initiate some system changes that were not stated in the document if we foresee that it will aid the client in their business activities and is not hard to implement.
  • One of the toughest challenges was to meet the client’s changing/new requirements yet with the limited amount of time we have to develop. I learned the need to ensure our system is flexibility so that we would be able to cater these changes more effectively.
Zora learning yixian.jpg
Zora learning meizhen.jpg
Zora learning darryl.jpg
Lee Yi Xian Tan Mei Zhen Darryl Leong
  • Through IS480, I had learnt the important of building a system with flexible concept/design on the backend, to allow easy amendment to changes and new requirements and programming framework became very handy in such situation.
  • The challenge I faced the most is getting the missing piece of requirements into a workable system. As our project is built on the agile methodology, changes and new requirements come at different phase. Therefore, I have to ensure that the database design is flexible enough to capture the new data and also striking a balance between ease of accessing to data and minimize data redundancy.
  • Being a quality analyst, I had learnt that testing is an essential procedure that should not be eliminated or avoided when developing an application, especially user test. Without user test, there is no way the application that we built can be perfect because as developers, we can never fully understand the real needs of the user until they tried the system themselves and provide us feedbacks to improve accordingly.
  • The challenge that I faced the most is the dilemma I was in to choose between the quality of our system and to implement all the feedback provided by our users given our tight schedule. The use of a response plan and change tracker aids me in overcoming my challenge.
  • Learnt that system UI design requires deep, intimate understanding of the client’s business processes and environment .
  • I have also realized that prototyping plays an important part in being able to observe how users interact with the users.

-Watch this space-