Final Wiki LinkAge

From IS480
Jump to navigation Jump to search

Linkage logo.png

Home   Project Overview   Project Management   Technical Documentation Key Takeaways Midterm Wiki Final Wiki
Project Progress Summary Project Management Quality of Product Reflection

Team LinkAge Final.jpg

Project Progress Summary

Final Slides : Media:IS480_Team_LinkAge_Final_Presentation_Slides.pdf

Deployed Site Link : PwC LinkAge

Team LinkAge has finally reached the end of all of our iterations. We are at Iteration 22,ready for FYP Final Presentation and Poster Day. We have also completed 10 milestones to mark the end of IS480 FYP.After the FYP Midterm Evaluation in Iteration 13, we have progressed gradually to the end. Notably, in iteration 15 for milestone number 5, promised us a deployment opportunity with our sponsors. We have developed all the agreed functionalities with our sponsors.

There were 2 UAT conducted with sponsors before Iteration 22. We have collected valuable feedback and responses from them to constantly excel and strive in the direction of sponsor's requirements of our application. PwCLinkAge promised for 100% live deployed project management application. Based on our performance and progress the team has confidently completed the application which sponsors could enjoy working through with the profile page, project management, report management, schedule page , team member's statistics , issue data analytic , data trending , notification board and messaging service.

Project Highlights

  • Postponed deployment on sponsor’s server
    • The team plan to deploy Linkage application progressively on sponsor’s server. However, due to postponed deployment, the team decided to host Linkage application on Google App Engine, and focus on front-end development.
  • Google App Engine vs. MySQL
    • Initially, the team plan to implement MySQL database. However, with the change of server to GAE, it does not freely support MySQL database. The team decided to implement GAE Python database firstly, and ensure all front-end development first.
  • Short span of time for converting back-end from Python to MySQL
    • Although with fully functioned front-end and Python database, and successfully deployed this version on sponsor’s server, the team is required to convert existing database to MySQL version within a short period of time.

Project Management

Project Status

1ProjStatus1.jpg 1ProjStatus2.jpg

Project Schedule(Plan Vs Actual)

Team LinkAge's approach is by iteration. Each iteration will cover Document Review, Development Codes, Development Designs, Metrics Review, Case Testing and Debugging. We have been keeping track of both Schedule and Bug metrics. Till date, Iteration 1 to Iteration 14 are all 'On Schedule' as recorded in the Schedule Metrics. However, going by task level, there are a breakdown in total of 13 'Ahead Schedule' , 76 'On Schedule' and 30 'Behind Schedule'.

Noticeable scope change will be when the deployment is not on schedule. Team LinkAge had to restrategise and focus on the front end development as much at that moment and slowed down on the backend development till sponsors got back to us about the deployment date. The connection problem / configuration with the mysql severs made us realised and discovered AngularJS.

Detailed iteration schedule planning is found in : Schedule LinkAge

Iteration Planned Actual Comments
FYP Acceptance Proposal
FYP Acceptance Demo Prototypes
FYP Acceptance Demo Prototypes Phase 2
Project Management Phase 1
Acceptance Clean-up Dropped IT Audit function
Dropped voice chatting function
Droped auto members to tasks
Project Management Phase 2
Project Management Phase 3
Project Management +
Report Management Phase 1
Project Management +
Report Management Phase 2
Iteration 10 Project Management +
Report Management Phase 3
Project Management
UI Front End
Deployment was being put to a hold till sponsors’ server had to finish maintenance
Iteration 11 UAT Preparation
Wrap up on :
Profile Page & Project Management
UAT was shifted to Iteration 12 as sponsors’ schedule did not allowed for it
Iteration 12 Report Management +
Schedule Management Phase 1
Heuristic & UAT Heuristic & UAT Feedback collection
Changes done to UI from UAT feedback
Iteration 13 FYP Midterm Preparation Report Management & Schedule Management Phase 1 is shifted to Iteration 14
Iteration 14 Schedule Management Phase 2 Report Management & Schedule Management Phase 2 Deployment is to be scheduled in recess week
Iteration 15 Analytics Phase 1 Adjustment to sponsor’s UI outlook 1st Deployment is successful
Analytics Phase 1 shifted to Iteration 16
Iteration 16 Analytics Phase 1 & 2
Iteration 17 UAT 2 Preparation Touch Screen Enabled with Responsive Website Phase 1 UAT 2 is shifted to Iteration 18
Iteration 18 Touch Screen Enabled with Responsive Website Phase 1 Touch Screen Enabled with Responsive Website Phase 2 UAT 2 is shifted to Iteration 19
Iteration 19 Touch Screen Enabled with Responsive Website Phase 2 UAT 2 2nd Deployment completed
UAT 2 Results Collection & Feedback
Iteration 20 UAT 3 UAT 2 Adjustment on spsonsor's UI requirements FYP Final Presentation Phase 1
Iteration 21 FYP Final Presentation UAT 3
FYP Final Presentation
Final Deployment
FYP Hand Over
FYP Final Presentation
Iteration 22 FYP Poster Day

Project Metrics

Team LinkAge keeps track of two different types of metrics. They are for schedule and bugs. Both metrics have scoring index tagged to identify the actions required. The metrics index indicator are recorded by formulas. The description could be found at Metrics. The recording of bug and schedule metrics could be found at LinkAge Metrics.

Bug Metric Summary:
LinkAge Bug Metrics Chart.jpg Bug22.jpg

Schedule Metric Summary :
IterationSchedule1.jpg IterationSchedul2.jpg

Project Risks

Risk Probability Impact Mitigation
Development risk High Medium The team plan to deploy Linkage application progressively on sponsor’s server. However, due to postponed deployment, the team decided to host Linkage application on Google App Engine first. By taking this development risk, the team focuses on front-end development and implements Restful dataservice as support.
Converting back-end from Python - GAE datastore change to PHP - MySQL database Medium High Although with fully functioned front-end and Python database, and successfully deployed this version on sponsor’s server, the team is required to convert existing database to MySQL version. The team is taking high risk of converting the entire backend support within a short period of time.

Technical Complexity

Rank Issue Issue-Description Technical Solution
1 Restful data-service Implementing Restful data-service, we can keep developing the front-end design. Even there is a change of back-end to another database, we just need to change the queries and all front-end design remains. Discussed below
2 Report generation Users can edit report through LinkAge application, with “Generate Report” function, users can download a well formatted report into word document. Discussed below
3 Chatting function To enhance communication among team members though Linkage application, the team design a chatting function. And the team builds Channel function to accomplish this real time chatting function. Discussed below

1.Technical Solution for Restful Data Service Tech1.jpg
2. Technical Solution for Report Generation Tech2.jpg Tech22.jpg
3. Technical Solution for Chatting Function

Quality of Product

We designed a responsive, web-based application for managing project, personal and generation of reports.
Using angular js and java script to create controllers, we create an application function primarily on the client side. Hence lessening the reliance on the back end for processing power. A client-side based approach also allow us to integrate the system with minimum configuration on the client side, simplifying deployment process
This made sense as our client's employees each has their own laptop at work, and multiple concurrent users are expected to be on the system at the same time.

Intermediate Deliverable

Stage Specification Modules
Project Management Iteration & Milestone Schedule Management
Metrics Metrics Description
Minutes Minutes
Content Storyboard Story Board
Design Use Case Use Case Diagram
Entity Relationship Diagram Entity Relationship Diagram
Logical Diagram Logical Diagram
User Interface Mockup User Interface
Testing UAT1 UAT Test Plan Test Plan
UAT Survey Form Survey
UAT Feedback Heuristic Feedback
Testing UAT2 Detailed UAT Test Plan UAT Test Plan
Simplified UAT Test Plan UAT2 Test Plan
UAT Survey Form Survey Form
UAT Feedback Survey Result


Team LinkAge kept all the codes, mainly on Google App Engine and GitHub to collaborate with the internal stakeholders. Codes could be deployed to any machine on the condition of having Google App Engine installed in the hardware. The server at PwC,operating on Linux could work with Google App Engine launcher and installing all build dependancies for Python with the build-dep option in apt-get "sudo apt-get build-dep python" : apt.get.build.dep.python.The first deployment was done in Iteration 15,on the 7th March 2013 at 3pm, the second deployment was done in Iteration 19, on the 4th April 2013 at 4pm and the last deployment was done in Iteration 21, on the 15th April 2013 at 3pm.


Description Details
Date 4th April 2013, 4.30pm
  • Final User Acceptance Test on the final application
  • Sponsors'requirements are achieved
Scope completed
  • Admin
  • Registration
  • Profile Page
    • Edit Password
    • Add Skillsets
  • Project Management
    • Create Project
    • Current Project
    • Completed Project
  • Tasks Management
    • Add Tasks
    • Allocate Members to Tasks
  • Report Management
  • Schedule Management
    • My Schedule
    • Team Schedule
    • Project Schedule
  • Team Member's Statistics
  • Data Analytics
    • Issues
    • Trending
  • Notification Board
  • Messaging
  • Sign Out

7 Users, (3 Males & 4 Females)
1 Project Managers
6 Team Members

Test Plan Flow
  • Admin

1. User will create an Admin account for reseting password for members and approving member's manager role.

  • Registration

1. Users will create a new account if she/he is a new user of Pwclinkage.
2. Users will click on "Create new account" to get started.
3. Users will input personal details and role in the department.
4. Users will click on "Join Linkage!" to sign in.

  • Profile Page

5. Users will click on "Edit Info" on the Profile Page,
to add skillsets or choose from auto-populated skillsets available.
6. Users will click on "Change Password" on the Profile Page,
to set new password and be signed in again to complete process.
7. Users will click on "Go To My Schedule" to apply for leaves.

  • Project Management

8.Users (Manager) will click on "Create Project" to create a project.
9.Users (Manager) will add team members into the project.
10.Users (Manager) will create task and allocate the team members for the task.
11.Users (Members and/or Manager) will submit the task when done.
12.Users (Manager) will edit,delete,indicate completed for a task.
13.Users (Manager) will edit,delete,complete the current project.

  • Report Management

14.Users will edit the report content in the report generator.
15.Users will add issues.
16.Users will click on auto-populate from history issue if issue is identical as before.

  • Schedule Management

17.Users will apply leaves in the "My Schedule".
18.Users will view the project schedule in the "Project Schedule".
19.Users will view the team schedule in the "Team Schedule".

  • Team Member

20. Users will click on a team member's name and see their individual schedule for different project.
21. Users will click on "stats" to display the statistics for the number of projects that she/he completed.

  • Data Analytics

22. Users will click on "Data Analytics" to display the percentage by a search for the industry ranking.
23. Users will click on "Trending" to display the occurence of issues.

  • Notification

24.Users will click on "Notification" to be reminded for submission.

  • Message

25. Users will click on Member's name and message them.

  • Sign Out

26. Users will click on sign out icon to sign out of application.


User Test Plan:UAT Test Plan
User Acceptance Test Survey Form:Survey Form
UAT Feedback Form :Feedback
Results of heuristic rating:Survey Form Results


Team Reflection

After the completion of FYP IS480, Team LinkAge has gained valuable lessons in life in dealing with internal stakeholders and sponsors.This is an all rounded experience from us,stretching our capabilities and applying concepts learnt in the previous modules to good use. Collaborating with PwC has been an eye opener for us all,in understanding their business concepts,the requirement of what the industry needed and aligning sponsor's requirements with Information Technology.

Team LinkAge has enjoyed very much providing a service that value adds for our sponsors. We are proud of our customised application, PwCLinkAge. This journey has not been easy for anyone of us but we learnt to give and take,leverage on each team member's strength, be an effective communicator and a believer of faith and determination.

Team LinkAge has the benefit of doubt about deployment.Deployment was new to all of us but we have managed to work alongside with our sponsor well enough to successfully get our application for deployment. It was a privileged learning experience to be deploying in the server room of actual settings.

Individual Reflection

Name Individual Reflection
Liang Yahui From the project, I learnt how to learn, how to solve problem, how to manage time as well as how to cooperate with teammates and clients. First, regarding of the technique aspect, since I am a front-end coder, I need to learn a lot of bootstrap, javascript, jQuery, Angularjs, etc. I learnt a lot from online tutorial, peers, supervisor and other forums. There are so many latest front-end technologies out there that I could not learn them all in a short time. I found that the best process of learning is making mistakes, posting the problems and solving the problems. Through the continuous replay of this process, I learnt a lot of new knowledge about css and javascript in a shorter time. Secondly, due to the client and our own underestimation, we have very limited time to finish the project. Therefore, our teammates, everyone take a part and work concurrently to ensure the completion of the project. The most important thing is to be effective which link back to my first point. However, due to the time constraint, we need to reduce the scope of our project and drop the least value added functions. Thirdly, there are a lot of misunderstanding and disagreement during programming, especially when facing certain bugs or bottlenecks. I found that sometimes argument is inevitable but it is not a bad thing; argument sometimes may inspire brilliant ideas and deeper concerns. The last but not least, I learnt how to cooperate with client. There are lots of aspects on their side that are totally uncontrollable by us. Therefore, we should always have a plan B in hand.
Liu Huan Among all SIS projects, FYP endows the highest degree of freedom of developing an IT project. This is the most challenge and fulfilling part about it.

On project management, I have learnt the importance of communication. With miscommunication, the team may spend double time and efforts to complete a task. Next time, if a member does not understand something, it is always the best to ask clarifications immediately; do not guess. In addition, effective project management must have an audit and tracking system. This is to make sure everyone is in progress and will deliver components on time. With tracking system, even if someone encounter problems, it is easier to allocate extra resources to resolve the problems. On technical side, I have learnt a lot from my teammates. Through pair programming sessions, they help me to building a sense of programming. The most significant method is how to debug program step by step. Last but not least, seeking help via posting questions online is a good learning experience, too.

Li Lu FYP is a good learning experience for me. Learn to learn, and learn from teammates, supervisor and clients.

To learn new programming languages such as Python, to learn front end coding, to adjust deployment plan based on real world situation. My role is technical analyst and coder. As a technical analyst, I improve in drawing technical diagrams based on real world situation. As a back end coder in the starting stage of the project, I reviewed the sql and java programming language and learn new language – Python. As a front end coder in the second half part of the project, I improve html, and learn AngularJS, jquery, and boostrap. My multiple roles is caused by the change of deployment plan. To avoid wasting time, we change our back end plan in the half way. I also learn that back-up plan is very important. In real world, there are a lot of things that we cannot control. It is always good to take as many factors as possible into consideration, and do the best of the part that you can control.

Jerome Ching The experience has been challenging and rewarding at the same time. Apart from juggling our other modules, we also had to keep up with the pace of our other team members. Also, we had to manage our sponsor in terms of fulfilling their requirements and needs while keeping them aligned with that of our project requirements. It is challenging to come to a common vision on our end product versus what the client has in mind and there is a constant process of probing and evaluation in order to keep these two goals aligned as close as possible. Since areas in our project require new skills which we may not have had much practice in our other IS modules, there was alot of emphasis on self-learning, though without the help of structured learning tools. Overall, the satisfaction of having a product that can add value to an organization is rewarding.
Zhong Zhenyu The FYP experience so far has been challenging and fulfilling. The team had to manage their time well rolling out product while juggling other subjects at the same time. I found that practices encouraged in my previous IS core courses are extremely useful in preventing code conflicts (such as keeping a common repository) and improving communication. The learning curve is certainly steep, starting with only knowlege in java and visual basic, i can now code in angular js, html and javascript (not to mention other languages tested along the way). Learningm new languages maybe hard, but it also bring a sense of great fulfillment whenever I resolved a bug and find myself more proficient in the language.

through this project i learnt that my biggest advantage as a SMU SIS student is my versatility and the ability to learn from other. Technology is changing in an increasing pace, technologies are being replaced by something better every few month, hence it is important for us to leverage the vast information on the internet and the online community to produce quality product in a limited time.

Low Ying Lin Being a Project Manager for Team LinkAge has always been pleasurable. I have learnt tangible and intangible skill sets which allow me to be versatile. I have the responsibility to make sure that the team progress on steadily without any hiccups.Even with obstacles,I could resolve and mitigate issues calmly.I am an effective communicator to know about the capabilities of my team members and assign accordingly to their skills and workload.I understand that strength is unity in my team and have been an awesome journey for me, working with our sponsor, our supervisor and my team together. This has taught me valuable experience and make an impact to see that our application is able to be deployed , make use of by sponsors and their department.