IS480 Team wiki: 2013T2 Silicon Geeks Final Presentation
Home | Team Description | Project Overview | Project Management | Project Documentation | Project Testing | Key Milestones |
---|
Acceptance Presentation | Mid Term Presentation | Final Presentation |
Project Progress Summary
Deliverable |
---|
Deployment | Information |
---|---|
|
Current Phase |
---|
Current Iteration: 13 |
Iterations Remaining (Excluding Current Iteration) |
---|
1 |
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. |
11 | Usability Testing 2 | Usability Testing 2 to be done with the new revamp design | User Testing 2 postponed to Iteration 13 |
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 | Currently in the midst of debugging |
Project Challenges:
Describe areas of the project that were particularly difficult and how they were dealt with, whether successfully or not. Again, a few sentences are enough. If there are no challenges, remove this section.
- 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:
Methods, technologies, processes, teamwork, etc. which were particularly successful – highlight things which worked very well towards completing the project. A bulleted list of one to two sentences each will do. If there are no achievement, remove this section.
- Despite the challenges faced, our team managed to deploy the application on to the server and the users were satisfied with our progress and work done.
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):
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
- Face some technical issues and we were unable to connect SharePoint lists to Tableau. Hence we focus on priority functions
Testing
- 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 | 90% Completed and tested | 1 | Chun Fatt, Jeremy/ Left alignment for remaining passes |
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:
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. |
|
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. |
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
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
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
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 |
Deployment:
Quality:
Improved flexibility of system
1) List referencing
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 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
Testing:
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.
Reflection
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 | Apart from the usual time management and project coordinating, one biggest takeaway will be conducting user testing efficiently. When conducting user testing in big groups, it was important for us to ensure that all participants are clear of their roles and will give useful feedbacks. That aside, time management was extremely critical in this stretch of our project as we have many pressing datelines, while having to consistently work on the FYP. Through these, i was not only able to work more efficiently, but have also learnt to be more independent when doing the project |
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. |