IS480 Team wiki: 2013T2 Silicon Geeks Final Presentation

From IS480
Jump to navigation Jump to search

Final logo.PNG

Home Team Description Project Overview Project Management Project Documentation Project Testing Key Milestones

Acceptance Presentation   Mid Term Presentation   Final Presentation

Project Progress Summary


Final Presentation Slide

Deployment Information

Link to Site

  • Username: win2008_machine16
  • Password: P@ssw0rd480
Current Phase

Current Iteration: 14
Development: 100% Of Core Modules and 100% Completion of Secondary Modules
Starts: 28 November 2014
Ends: 03 December 2014
Current Status: Preparation for finals presentation

Iterations Remaining (Excluding Current Iteration)


Project Highlights:

Iteration Features Description Action
5 First Printing First Printing of card was unsuccessful Relook at the codes. Decide to take a look at the printer SDK instead of using javascript
6 Local Deployment Acceptance Feedback that deployment was not done for reviewers to look at our application Approach Fiona for obtaining a school VM
7 Merging of Forms Acceptance Feedback given that the webparts should be merged Merge the webparts together. Feature pushed forward to this iteration.
7 Local Deployment Obtaining of school's VM took longer than expected -
8 Caml Query Jason proposed to ask about finding a more efficient way of retrieving the data Introduce new function - Caml Query
9 Create New Pass Type Sponsor proposed the flexibility of the user to create any new pass type that he wants Added as new functionality for Iteration 11 and 12
9 Tableau Analytics Sponsor interested in obtaining a connection from Tableau to SharePoint Added as new functionality for Iteration 11 and 12
9 Printing Module Troublesome to do testing with Sentosa printer during office hours Printer was brought home over the weekend for testing.
10 Change in Sponsor Angeline (Sponsor) officially step down and a new sponsor (Fayyaz) took over. Update Supervisor and Project Coordinator on the new changes
10 Printing Module Difficulty in obtaining the printer to carry on alignment testing for the rest of the card type Lead to a delay in the iteration. Rest of modules still carry on in schedule as per normal.
11 UI Module Midterm Feedback about the lack of UI Design UI Module added. Create New Pass Type functionality dropped.
11 Tableau Analytics Face some technical issues and we were unable to connect SharePoint lists to Tableau. Hence we focus on priority functions Tableau Functionality dropped.
12 Client Deployment Jquery features all not working Debugging to be carried out immediately
13 Client Deployment 2 Codes that accesses the printer API is run on the server side, but the printer is connected locally via USB cable. Hence the code cannot access the printer Carry out debugging

Project Challenges:

  • Deployment to the production server was challenging because there were some configurations that was done by their external vendor was not made known to us. Thus, we faced some issues when we did our first deployment. However, we managed to overcome this by changing and making some adjustments to the reference links.
  • Connecting the printer to the network that Sharepoint server can recognise. Currently the printer is connected to a standalone computer which the is only recognisable by the particular computer with the old card printing software. However, our application is deployed in the Sharepoint server and the printing process is done through the backend of our application. Thus, we had to work closely with the external vendor of Sentosa to solve this issue as we were afraid that we might crash the system if we were to connect it without any help.

Project Achievements:

  • Despite the deployment challenges faced, our team managed to conduct a UAT for the core functionalities.
  • The team is preparing to do a full deployment.

Project Management

Provide more details about the status, schedule and the scope of the project. Describe the complexity of the project.

Project Schedule (Plan Vs Actual):

Plan VS Actual

Scope Change

Add Search Pop up & Reissue functionaity

  • Priority to be on core functionality as there were some unexpected bugs and we wanted to ensure that core functionalities work as best as possible
  • Time spent on revamping the UI design for the web parts through using of Jquery and SPquery
  • Hence we drop Create new Pass Module as we realise that after our research, it will be too time consuming and complex
  • Added Reissue feature which allows the user to create multiple cards in one shot.

Dropped Tableau Functionality

  • We tried connecting to the OData but an unknown error was returned. We tried to seek help from Tableau forums and tried various methods.
  • We were unable to connect SharePoint lists to Tableau. Hence we focus on what was more important and the priority functionalities.


  • Usability testing and UAT to be shifted as we wanted it to be tested after the search popup was implemented
Module Status Confidence Level In-charge / Comment
Create Pass 100% Completed and tested 1 Chun Fatt, Wen Jie
Edit Pass 100% Completed and tested 1 Alex, Shu Han
Card Design Tool 100% Completed and tested 1 Jeremy, Leonard
Merging of Create & Edit 100% Completed and tested 1 Chun Fatt
Zebra Printer Print Script 100% Completed and tested 1 Chun Fatt, Jeremy
Caml Query 100% Completed and tested 1 Shu Han, Leonard
Reporting Functionality 100% Completed and tested 1 Wen Jie, Alex
Export 100% Completed and tested 1 Alex
Search Popup 100% Completed 1 Chun Fatt, Jeremy
Jquery Enhancement 100% Completed 1 Chun Fatt, Leonard
Reissue 100% Completed 1 Alex, Jeremy

Project Metrics:

Details about the metrics

Summary of the metrics

Iteration Number Percentage Reason Solution
4 78.57% Underestimate the time taken to complete certain modules. Re-estimate the following tasks and reschedule.
5 85.29% Picture overlay and drawing text on pictures proves to be more challenging than expected because it requires more time to learn.
  • Re-estimate following tasks and reschedule.
  • Provide more time for difficult functionalities that team members have not tried before.
9 88.23% Testing of printing code could only be tested with the specific printer. Hence, it requires more time instead to complete testing and debugging the code. Re-estimate following tasks and reschedule.
10 83.33% Alignment of cards took longer than expected to complete because of the difficulty of obtaining the printer Re-estimate following tasks and reschedule.
12 65.22% Jquery error occurs when deployed on client side. Re-estimate following tasks and reschedule.
13 75% Printer bugs found. Inform supervisor and used up buffer days

Technical Complexity:

Different business logic for different pass types

1)link with existing entry for another pass

Certain fields are populated from another existing entry from another pass type.
Example: ranger pass populating information from existing staff pass

2) Project information entry can have multiple entries for the same contractor tied to different projects and multiple entries for the same project tied to different contractor

3) Calculated fields

Family pass dob.PNG
Expiry date field is calculated from DOB for son/daughter relationship(21 years added to the DOB)

4) Reissue VIP, Wave and Family passes

Users can reissue passes to a person which will create a new entry for the pass with extended expiry dates and it will automatically invalidate the original pass.

Printing of Passes

1) Printer API

Used the Zebra SDK to call its API as shown in the image above to print customisable texts and pictures.

2) Properly draw images and strings to preview printed pass

Printer picture.PNG
The image has to be previewed properly and correctly using a separate library to draw the image on the previewer. Once it is printed, the application uses a separate code (Printer API) to print the pass.

Linq Methods

Linq search.png


We are using LINQ to implement database functions for our web parts through C# programming language. Through LINQ, we are able to:

  • Full outer join data tables for the reporting function
  • Implement search functionality in the search pop ups

Quality of product

Provide more details about the quality of your work. For example, you designed a flexible configurable system using XML.config files, uses Strategy Design Pattern to allow plugging in different strategy, implement a regular expression parser to map a flexible formula editor, etc.

Project Deliverables:

Stage Specification Links
Project Management Meeting Minutes Meeting Minutes
Metrics Metrics
Requirements Gathering Business Requirements Project Overview
Current System Client Current System
Analysis Deployment Diagram Deployment Diagram
Use Case Use Case Diagram
Design UI Prototype UI Prototype
Testing Test Plans Internal Test Plan and Test Cases
Bug Metric Bug Metric
Usability Testing & User Acceptance Test Usability Testing & User Acceptance Test



Deployment Information

Link to Site

  • Username: win2008_machine16
  • Password: P@ssw0rd480


Improved flexibility of system

1) List referencing

SID Reference.PNG

There are different SID formats for all the different entries. The application is made to be as flexible as possible by making it reference configurable items that are stored in the list so that future changes can be taken into account. Changes such as a change in SID prefix value can be made to the list directly so that the application will reference the list and use the new SID formats in the future. Other areas where we made sure the system is as flexible as possible is the options for dropdowns such as the existing divisions, departments, pass status. These are all stored in lists so that users in the future can modify the dropdown values easily.

Improved intuitiveness/ease of use and efficiency of system

1) AJAX validation


Before a user clicks on the submit button, ajax validation is done so that the user does not have to click on the submit button before he knows that the staff id already exists.

2) Search popups

Search popups.PNG

Search popups were used in place of dropdown lists to find a specific entry. This helps in improving flexibility of the system as the number of entries increase. It also gives user a way to filter out results and more easily find the entry that they are looking for. This was a feature which the client did not ask for but we added it in as we felt that this would help improve the efficiency and ease of use of the entire process for the user.

3) Improve intuitiveness using jqueryUI effects



Expands and show/hide hidden elements of the form to make the use of the form as intuitive as possible depending on the user input. In the example screenshots, when the user selects that the first deposit is received, it displays the form for the user to input details of the first deposit.

4) Tooltips for input field


We displayed tooltip suggestions and help when a user mouseover an input field. This helps the user to remember the format of the SID and also prevents users from inputting incorrect values.

5) Used SPQuery more extensively across the code for item retrieving from the lists.

Use SPQuery across the code to find objects from lists in order to make sure that it scales better when the list grows in the future and that results


Describe the testing done on your system. For example, the number of user testing, tester profile, test cases, survey results, issue tracker, bug reports, etc.

Usability Test 1 With Sentosa Staff

As the users in Sentosa are usually busy with their work, it was not possible to arrange a time with them toUs conduct the Heuristic test. As such, we sent an email to inform the users about the test.

"Thank you for assisting us in our heuristic testing. Your assistance would greatly help us in improving our prototype design to make it more user friendly. Below are the instructions to proceed on with the tests.

  • Click on the Sign In button at the top right corner of the page
  • User name: Win2008_Machine16, Password: P@ssw0rd480
  • Once you are logged in, you can experiment with the three web parts: Create Pass, Edit Pass and Card Design Tool.
  • This is only a usability test focusing on the design and usability of the prototype, thus you do not need to test whether the prototype works
  • Attached to the email is a form for you to fill up. You do not need to exactly fill up the whole form. All we are interested in are the problems you have encountered when using the prototype and potential improvements to the prototype if you can come up with any.
  • You do not need to feel stress if you face any problem or you get stuck when experimenting with the prototype. You can type it down in the form.
  • If you have any queries, you can email us and we will help you answer them."

Usability Test 1 Results and feedback from Sentosa Staff

Comments from Kwang Chin (IT Manager):

"Good job. Much improved since the last presentation made by the students.

I see that they managed to find a Date picker, and started to use list to manage configurable items.

I’ve indicated some comments (attached) for their refinement.

Few general comments:

  • Do limit number of characters for text field
  • Do consider use of text area for Remarks
  • Consider having some logic to manage “Division” and “Department” fields. They are linked.
  • Great if they can design a page where the “pass type” are clickable to add or edit. This can be done as a complex page (with many widgets put together). These 2 functions can be combined together, instead of having a 2 separate drop downs and buttons. Sample graphics below, where user click on the pass type, then start the form filling process. Either it’s a new or update depending on where Staff Id is entered. If not found, then assume it’s new staff entry.
  • They should separate Card Design and Add/Edit form. The user group is different. Ask the students to think about the user/role segregation so as to make the online form intuition, and less training is required to figure out how to use the form."

Refer to his word document/feedback here : Media:Useability-test-12Sep2014.docx

Comments from Remedios B. Pena:

Please help to add New Pass called “Visitor Pass” it will be the same as “Contrator T-Pass” including the report.

We will give you the template for card printing once we have the design.

Edit Form Fields

  • Change Edit Button name to "Save"
  • For Project form - project title needs to be in Text field
  • Remove Reissue button

Create Form Fields

  • Family Pass - DOB to be earlier
  • For all forms - to display the SID
  • Ranger Pass - Select Staff - needs to be in Text field

Printing Interface

  • All Contractors will have mass printing based on Contractor dropdown list
  • Island Partner - Display company name in dropdown list

Usability Test 2 with students whom have SharePoint and C# experience

Justification of choice of users: After the mid term presentation and advice from our supervisor, Prof Jason, we decided to conduct a usability test with students who have experience in SharePoint and C# experience as they will be able to critic our SharePoint application from their past experience. As the Sentosa users were busy during this period of time, we have decided to replace the actual Sentosa users with students so that we can further enhance our SharePoint Application. A total of 5 students were chosen for this usability test. Quantitative and qualitative questions were asked.

The answers from the quantitative questions were compiled and analyzed.


In addition, the qualitative questions were analyzed. This includes the following:

  • Have to remember Staff ID to create ranger and family pass, could have an addition option of selecting recently created staff to speed up the process. Have a list recently created passed based on creation date, to mass print the passes created on a particular.
  • I like the recently modified tab on the left panel so that I can quickly repeat the steps to create similar passes.
  • Generate report date have to manually type, but create passes can auto click in the popup.
  • Under Generate Summary Report, there is no date picker popup. Was expecting to see that since every other date input has this popup.
  • Under Generate Pass Reports>Create Family Report, I thought I could search by ID also.
  • Create VIP id is not compulsory, but edit/print VIP passes only can search by id (I realised it is automatically added when I click VIP Card under the lists tab) maybe can just autofill the textbox the value of the automatic id? Or make edit/print also searchable by name

Action to be taken:: We realized that the UI design needs improvement as users did not know the most important area of the web-part that they should be working on. In addition to some of the bugs such as no date picker, auto fill etc which we need to fix, we have decided to create a pop up box so users are able to search by Staff ID given a certain set of criteria. There were a number of students who criticized that it was difficult to remember the staff ID and there should be a search function for it.

Overall, the users were satisfied with the system and there were no major complains as it was easy to learn and use it.

User Acceptance Test 1

We conducted a user acceptance test with the actual users of Sentosa. The application was deployed onto the school's SharePoint Server. The User Acceptance Test is conducted to ensure all the functions completed by our team fully comply with the requirements provided by our client at the beginning of the project. It is also to ensure that our client is satisfied and happy with the system.


• We had initially planned to conduct the UAT onto Sentosa SharePoint Server. However, we faced hiccups in the deployment and after a discussion with our sponsor, both parties agreed that we should conduct a 1st UAT using the school's SharePoint Server. This will allow the users to test out the system and to give feedback while we make the necessary changes over the weekend before we conduct a 2nd UAT onto Sentosa SharePoint Server and sign off the handover form.


The aim of the user test is as follows:

• Ensure all the functions in the system meets the requirements of our client which were set at the beginning of the project

• To obtain our client’s sign off on the acceptance of our system.

• Discover any bugs that had previously been missed out so we are able to fix them and users can test them out in UAT 2.

Schedule Location & Test Date

• Sentosa Information Technology Office, 20th November 2014


• Remedios B.Pena – Main user for the Card Pass System and Card Design Tool

• Adeline Kwok – Human Resource Assistant Manager

Set up and Environment

Users will access the system using Internet Explorer. The details for the access are as below:

• Username: win2008_machine16’

• Password: P@ssw0rd480

Testing Method

The participants will be given a list of test cases to test the functionalities of the entire system. For each test case, users will complete them and indicate a pass or fail for each test case and record if bugs were encountered. Users will also review the original list of requirements set out at the start of the project and ensure that no functionalities have been left out. At the end of UAT 1, our sponsor and users will sign off to acknowledge that we have completed UAT 1. Also, users will give a feedback if any other improvements / bugs are to be made. The team will then review the changes and feedback and prepare a 2nd UAT which will act as the end of the project once it has been signed off.

The User Acceptance Test 1 include test plan, sign off forms and the test cases as well as our users' comments and feedback.

The results of the user test can be found here: File:UserAcceptanceTest1.pdf

IMG 0228.jpeg IMG 0229.jpeg
IMG 0230.jpeg IMG 0231.jpeg

Additional Feedback / Changes

S/N Description
1 Create/Edit:Date remove the (M/D/YYYY)
2 Create/Edit:Expiry Date for family pass(son/daughter) configurable

3 Create/Edit:Edit passes sid search txt box and pre input the prefix values
4 Create/Edit:Contractor master edit search contractor master function(popup)
5 Create/Edit:Project information popup align
6 Create/Edit:Form selection group the options: project info and contractor master group together
7 Create/Edit:Status options add from a list
8 Create/Edit:Sid YY change to year number
9 Create/Edit:User guide to specify all the configurable(etc status options)
10 Create/Edit:Date of Clearance change to Clearance/Invalid Date
11 Create/Edit:Staff Temp no reissue, only family wave and vip card have reissue
12 Individual Report:Excel report export to latest format and also direct export to excel. dun need to generate report first
13 Individual Report:The button names change: generate report change to submit, export to excel change to generate report
14 Individual Report:Header names for reporting forms change to Generate Detailed Reports
15 Individual Report:Date range give option for entire year for all reports
16 Individual Report:Contractor name do search popup
17 Individual Report:The selection choice remove report so no duplicate. and dun need "create" word

Sponsor Comment:

S/N Name Reflection
1 Mohamed Fayaz Reissue Function is very helpful. Summary report functions is very efficient and save us alot of time in the preparation report for management used.
2 Adeline Kwok Search pop up feature is very useful to users, saves time searching through the list for past entries.
3 Remedios B. Pena Customized fields are helpful in our tracking of records. it is clear, and specific to our requirements & functions.


• Our sponsor and users are very happy with our system and are delighted that we have done a better job than their current vendor. They have asked us if any of us are interested to be a SharePoint Developer for them.

• The users and sponsor have expressed interest to participate in our final presentation. Our group is currently trying to arrange another time slot for the final presentation as Sentosa Staff is having an event during our final presentation and they are unable to make it during this time.

• We will continue to work on the above changes which have been highlighted to us by our users.


Team Reflection

Team Reflection
Teamwork is very important and we have to help one another especially when we have many pressing deadlines.

Individual Reflections

S/N Name Reflection
1 Tan Shu Han My biggest takeaway from this was the importance of linking the test cases to the business requirements rather than just testing on the technical components of functionality. In addition, I have also learnt to conduct usability test more efficiently through finding users which are close to our actual users and asking them to play the role of the actual user. It is also important that we explain the business scenario properly, which was a major challenge during testing.
2 Chan Chun Fatt This semester has been a very trying semester for me wholly due to FYP. As I had did Sharepoint before for EWS, I had thought that it would have been a breeze. However I was very wrong as I found out that FYP has many angles to it and not just the product development side of things. I learnt that being able to juggle between differing roles in the team is a very important and vital skill to have as I found myself doing the work of different roles within the team quite frequently. Communication with the client is also very crucial. Small things such as replying to emails and remembering to follow up on minor promises made during meetings become hard to handle when flooded with the work of development. Although, it has been a very difficult time for me, I learnt quite a lot of things through the experience.
3 Chuah Li Xian This project has really prepared me for real life work experience. I have learnt an important lesson from this project. Anything that can go wrong, will go wrong. It is how we react to these sudden changes that matters. As a programmer who experienced a lot of unexpected setbacks, the only thing I can do is to stay resilient and proceed ahead with a solution.
4 Jeremy Lim Self-learning is important. There are skills and knowledge, especially regarding design tools and software, are not taught in school and I have to learn them myself. Because of time constraint, I have to train myself to be a fast learner to quickly pick up the necessary skills for the role.

In addition, I have learnt that collaboration is extremely important. There are different ideas and suggestions from supervisors, clients, project reviewers and also from other team members. I had to collaborate with not only other team members ourselves but also with clients and supervisors bring the ideas into action and to the real production.

5 Lee Wen Jie This project has taught me that in the real working world, always be prepared for many unexpected situations. Be prepared to adapt, be prepared to try harder, and be prepared for changes. It also taught me that as a PM, there are alot of planning to be done especially when it concerns a large scale project such as FYP. Time management is extremely critical in order for us to juggle between school and FYP
6 Leonard Ong Throughout the entire project, I have learnt that managing client's expectation is not as easy as it seems because it is challenging to adapt to sudden changes and requests. Apart from that, time management is the key takeaway for me. Having good time management is challenging because nobody has the perfect technique or solution. I have also learnt that everyone in the team is important. Other than that, team collaboration and communication is the key to the success of a project. Given the scale of IS480, it is crucial that we have constant communication and collaboration throughout the team.

S/N Name Reflection
1 Mohamed Fayaz Reissue Function is very helpful. Summary report functions is very efficient and save us alot of time in the preparation report for management used.
2 Adeline Kwok Search pop up feature is very useful to users, saves time searching through the list for past entries.
3 Remedios B. Pena Customized fields are helpful in our tracking of records. it is clear, and specific to our requirements & functions.