Dpenz Midterm Wiki
|Home||Our Team||Project Overview||Project Management||Project Documentation|
- 1 Project Progress Summary
- 2 Project Management
- 3 Quality of Product
- 4 Reflection
Project Progress Summary
- Deployment pushed back due to long time needed to get through compliance process in bank.
- Cannot connect to Active Directory (AD).
- Remove function: Single sign on, replace with password login process.
- Remove function: Connect to AD, replace with function of Admin Panel to add new users.
- Currently deployed on IS480 server with external IP for clients to use it.
- Delay in report function due to insufficient information from our client.
- Delay in Approval function due to change in approval flow after client test.
- Delays in communication due to the festive season (Christmas, New Year and Lunar New Year).
|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.
|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|
Please view our metrics on our Metrics Management page
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.
|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.|
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.
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.
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.
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:
|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.
-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
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
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.
|Project Management||Minutes||Meeting Minutes|
|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|
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.
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.