Dpenz Midterm Wiki

From IS480
Jump to navigation Jump to search

Dpenz logo.jpg

Neophase Home.png Home DPENZ Team Icon 2.png Our Team DPENZ Overview Icon.png Project Overview DPENZ Project Management Icon.png Project Management DPENZ Project Documentation Icon.png Project Documentation

Project Progress Summary

Midterm Slides: Midterm slides

Deployment Site Link: IPS

Login Details

User Role Name XPID Password
Functional Owner Mandy 9002 INGBank
Procurement Staff Tom 9003 INGBank
Manager Marlie 9112 INGBank
C-level Dany 9113 INGBank

Project Highlights

  1. Deployment pushed back due to long time needed to get through compliance process in bank.
    1. Cannot connect to Active Directory (AD).
    2. Remove function: Single sign on, replace with password login process.
    3. Remove function: Connect to AD, replace with function of Admin Panel to add new users.
    4. Currently deployed on IS480 server with external IP for clients to use it.
  2. Delay in report function due to insufficient information from our client.
  3. Delay in Approval function due to change in approval flow after client test.
  4. Delays in communication due to the festive season (Christmas, New Year and Lunar New Year).

Project Management

Project Status

Task/function/features, etc Status Confident Level (0-1) Comment
CRU Projects Fully deployed and tested 100% 1 Malique, Ching Png
Search Project Fully deployed and tested 100% 1 Nicole
Edit PAF Template Fully deployed and tested 100% 1 Dex, Ching Png
Customizable PAF Template Fields & Phases Fully deployed and tested 100% 1 Dex, Ching Png
Audit Log Fully deployed and tested 100% 1 Malique
CRU Supplier Information Fully deployed and tested 100% 1 Nicole, Zoey
Generate Report Fully deployed and tested 100% 1 Dex, Ching Png
Approve Procurement Fully deployed and tested 100% 1 Malique
Notification Fully deployed and tested 100% 1 Zoey, Ching Png
Admin Panel 0% Starting after midterm 0.9 Ching Png has started the planning process
Export Report 0% Starting after midterm 1 Dex
Export Project Details 0% Starting after midterm 1 Malique
View Past PAF Templates 0% Starting in Sprint 8 1 Dex

Project Schedule (Planned vs Actual)

Between Acceptance and Midterm, everything has proceeded as planned, with some changes as mentioned in Project Highlights. Other changes have been logged in our change log. (Please see section on Change Management

We've had some delays with respect to our client as they were more busy the past months and did not have time to provide us with required information to proceed with some of our functions. We are currently 8 days behind in Sprint 6, and we will be trying to get back on track in Sprint 7 by putting in more work hours each day.

An overview of our project can be seen in our Project Schedule page. A detailed schedule is also available in the page.

Iterations Planned Actual Comments
1 Define scope 27 Aug 2013 27 Aug 2013
Create requirements list 6 Sep 2013 6 Sep 2013
Create technical diagrams 18 Sep 2013 18 Sep 2013
2 Set up database, server 21 Sep 2013 20 Sep 2013
View/edit projects 24 Sep 2013 23 Sep 2013
Search Project 24 Sep 2013 23 Sep 2013
Learn .NET C# 1 Oct 2013 3 Oct 2013 Training took longer than expected as the frameworks were relatively new and much research needed to be done.
Port prototype from Java to .NET C# 10 Oct 2013 16 Oct 2013 Took longer time than expected as members were not familiar with .NET C#
3 Submit new project 24 Oct 2013 24 Oct 2013
Proposal submission 28 Oct 2013 28 Oct 2013
User Testing 1 29 Oct 2013 29 Oct 2013
Acceptance 5 Nov 2013 5 Nov 2013
Edit PAF Template Shifted to Sprint 4
4 Edit PAF Template 14 Dec 2013 14 Dec 2013 Shifted from Sprint 3
Customizable Fields & Phases 18 Dec 2013 20 Dec 2013 Customizable fields were more technically complex than we expected during planning.
Audit Log 18 Dec 2013 18 Dec 2013 Shifted from Sprint 5
Submit supplier 18 Dec 2013 18 Dec 2013 Shifted from Sprint 5
Approve Procurement Shifted to Sprint 5
Active Directory, Single Sign On Pushed back due to delays in approval process from client (eventually we are replacing this function with Admin Panel to add in new users)
5 UT2 27 Dec 2013 30 Dec 2013 Clients were not free at the proposed time.
Generate report 5 Jan 2014 20 Jan 2014 Did not receive sufficient information from client to proceed with function. We created templated reports and proceeded with other functions while waiting for the information.
Submit Supplier Shifted to Sprint 4
Search Supplier 4 Jan 2014 9 Jan 2014 Public holidays and festive season -- lesser working days.
View Supplier Shifted to Sprint 6
Export Report As there was a huge delay for Generate Report function, it would be too late to carry out this function in the same sprint, hence we decided to shift Export Report to a sprint that starts after Generate Report is complete (Sprint 7)
View Audit Log Moved to Sprint 4
Approve Procurement 10 Jan 2014 10 Jan 2014 Shifted from Sprint 4
6 View, update supplier info 26 Jan 2014 19 Jan 2014
View past PAF templates Low priority. Will complete in Sprint 8 after Admin Panel.
UT3 27 Jan 2014 27 Jan 2014
UT4 7 Feb 2014 7 Feb 2014
Notifications 5 Feb 2014 18 Feb 2014 Insufficient resources as we were also preparing for UT3, UT4 and generate report.
Customizable phases Completed in Sprint 4 together with Edit PAF Template.
Export project details Shift to Sprint 7

Project Metrics

Please view our metrics on our Metrics Management page

Project Risks

Click to view our expected risks.

Here are some updates to our expected risk, some of which appeared in our project and we have effectively mitigated the risk by pre-empting it.

Risk Probability Impact Mitigation
System cannot be deployed to client’s server on time and user testing will be delayed.

Unable to do integration with existing systems in client’s server.
High High Replicate testing environment on our own server for initial user testing.

We have activated this mitigation step. We will no longer be deploying our system on the client's server. Instead, we will host the system on the IS480 server.
Change of requirements Medium (Now high) Medium (Now high) Review the requirements list with client at every iteration so changes can be addressed as soon as possible. We have also a change log to record the changes. More details can be found in our Change Management section.
Bureaucratic process for getting through compliance. High High Find out the documents needed for compliance and prepare them beforehand so less time is needed between stages of compliance.

We are no longer deploying our system on our client's server due to the long time needed for the IT department to process the request. We will not be implementing the functions of authenticating with Active Directory and Single Sign-On, instead we will replace it with an Admin Panel.More details can be found in our Change Management section.
Development team is unfamiliar with the development environment (.NET, Active Directory). High High (now the impact is medium) Though we have taken more programming hours than expected for features (due to being unfamiliar with the programming language), we only face minor delays in our schedule, some of which are unavoidable. Please refer to our Metrics Management page for more details.

Tehnical Complexity

1. Customizable fields and phases

Our system allows for the PAF template to be modified in the long run. This editable feature allows user to dynamically add, remove, or reorder the fields in the PAF template. Any changes made would then be reflected as the latest PAF version and used when new projects are being created. Old projects will still retain the template that was at the point of creation.

Editable PAF Template
Our Editable PAF Template can handle any number of field inputs and keep tracks of the sequence, making use of Model Binding, Model Validation, HTML Helpers, Partial Views and JQuery.

By implementing the DefaultModelBinder in ASP.NET MVC, our system can bind submitted form values to arguments of action method in controller and at the same time capturing the sequence of field inputs. It works perfectly for collection if we are posting a collection of primitive type.

Dpenz Model Issue.png

Unfortunately, that is not a very robust approach when the collection consists of complex type. Issue arises when our system can’t distinguish from the fact that there may well be another field input unrelated to our list of model atributes which could throw off our binding.

Fix To Resolve The Issue
Dpenz Model Fix.png

Since we can’t distinguish that there may well be another Name input unrelated to our list of Phase which could throw off our binding. Our system provides an index (GUID) for each item and uses TagBuilder class to build HTML.Helper which in return is used to bind the complex objects to the model, it also retains the order of items within the collection when it is being passed over to controller as an object. This ensures we can unambiguously match up the submitted properties with the correct object.

JQuery is being used heavily to allow user to dynamically add and remove Models, drag and drop the field inputs within the PAF template. However, cache must be cleared all the time to resolve the duplicating ID issues created by the GUID fix mentioned above.

Render Partial View
Dpenz Render Partial.png

The PAF Template is then broken down into 3 component and implemented with HTML.RenderPartial to manage it individually. The overall template maintains a partial view while Phase and Phase Fields input Model are each being rendered partially. This provide advance form management when our system to break down a Parent Model consisting of several child Models, and each child model is rendering its own view for display and capturing any modification made to that model itself.

2. Restructuring Database

Previously, the database stores the form fields as columns and the data pertaining to respective project as row, as shown:

Project_ID Field_Name_1 Field_Name_2 Field_Name_3 Field_Name_4 Field_Name_5 Field_Name_6 Field_Name_7
1 Data 1 Data 2 Data 3 ? ? ? ?
2 Data 1 Data 2 Data 3 Data 4 Data 5 ? ?
3 Data 1 Data 2 Data 3 Data 4 Data 5 Data 6 Data 7

This does not ensure data consistency by allowing for additional fields to be added in the long run without modifying the table structure. Catering to any number of fields means table columns would increase as time goes by. Data inconsistency occur when user modify the name of an existing field to another when previous projects have data associating to that field. This also makes it hard for our application to keep track of relevant details for searching, editing, approving and auditing.

As a result, we have restructured the database tables to accommodate for the changes made in PAF template.

Dpenz Revised DB.png

Template Table -Stores the fields information pertaining to template.
Project -Stores field values pertaining to basic fields. E.g. Project Name, Project ID, Functional Owner, Project Budget.
Project Extra -Stores field values of phase fields and refers to Template table to determine its field type.

3. Popup Modal

Dpenz Modal Supplier.png

Our system made use of popup via server as compared to the typical client end in script. A typical process of short-listing suppliers while updating a project details would require the procurement staff to browse through the list of suppliers available and make comparisons.

When the procurement staff founds out that their desired supplier is missing, they would have to perform a search or create a new supplier into the system. Usually, users would open a new tabs to perform these actions. With the Modal, our system opens up additional window dialog which allows user to perform Supplier Management functions such as creating, searching or even selecting of suppliers to aid in their project editing process.

However, when implementing the Popup Modal, the newly created supplier or selected supplier information is not passed back to the parent.
Fix for Modal

Dpenz Modal Supplier Fix.png

Quality of Product

We designed our system with usability as our priority. As such, we allow for customisability such as customizing the PAF template and some report generation fields. To make the Edit PAF Template easier to use, we also implemented the drag and drop functionality. On all tables, we have also implemented the sortable function so users can find their desired data easily. We also have several search bars to make locating information easier.

Most importantly, our system is maintainable with minimal hardcoding.

Intermediate Deliverables

Stage Specification Modules
Project Management Minutes Meeting Minutes
Metrics Metrics Management
Project Schedule Project Schedule
Product Burndown Chart Product Burndown Chart
Risk Management Risk Management
Change Management Change Management, Change Log
Requirements Project Description Project Description, Requirements List
Analysis Use case Overall Use Case Diagram
Architecture & Deployment Diagram Architecture Diagram
Project Process Flow Process Flowchart
Design Class Diagram Class Diagram
Testing User tests User Tests Conducted
Bug metrics and trackers Bug Metrics


Deployment diagram: here
Deployment Site Link: IPS

Login Details

User Role Name XPID Password
Functional Owner Mandy 9002 INGBank
Procurement Staff Tom 9003 INGBank
Manager Marlie 9112 INGBank
C-level Dany 9113 INGBank


We have completed a total of 4 user testings, including a heuristic evaluation. Details can be found on our User Testing page.

We also perform regression testing on our functions every iteration. Details of the bug trackers and metrics can be found in our Metrics Management page.


Team Reflection

We have learnt how to work with a new language and framework: ASP.NET MVC4. We have shared our resources on the Knowledge Base page here.
In our project, we have also learnt how to be adaptable and handle constant change requests, as well as how to react when we are faced with delays in communication.