Challenge Overview
1.0 - Challenge Overview
Welcome to the QIR .NET Web App - Workflow Management challenge! In this challenge, you will be building out pages to monitor and manage notification workflows in the QIR .NET App.
1.1 - Project Overview
The client for this project has an existing system called Quality Incident Reporting (QIR) application. This existing application was created using SharePoint and is used for creating and managing quality incident records. The goal for this project is to build a new Quality Incident Reporting application using .NET (based on the existing QIR application).
This assembly will focus on enhancing the functionality around workflows (details below).
1.2 - Competition Task Overview
A complete list of deliverables can be found in the TopCoder Assembly competition Tutorial at: http://apps.topcoder.com/wiki/display/tc/Assembly+Competition+Tutorials
Note: We do not have extensive implementation notes this time around, but we do have some clear guidelines and an existing app with which to work. Please ask questions early and often in the forums.
1.2.1 Workflow Management UI
Currently, our workflow management is headless, built into the backend services. For this assembly challenge, we would like to expose parts of the workflows through an admin user interface.
For this assembly, you will be building out a user interface for admins to be able to do the following:
-
Configure workflow frequencies (Days, Hours, Minutes)
-
See “Workflow Config - All Items - Screenshot.png” for example from old app
-
See “New Workflow Config - Mock - a la Dept Regions.png” for a mockup borrowed from Dept Regions page
-
-
View a list of running workflows
-
See “Workflows - Screenshot.png”. An admin would be able to go to a list of all workflow instances, and then drill into a list of incidents that have run or are running that workflow, and then drill into a history
-
Includes entry condition to exit condition
-
All tasks
-
-
View Workflow History (See when a workflow started and completed, status changes along the way, emails sent, etc)
-
See “Workflow Status - Screenshot.png” and “Workflow Status - Action Item WF History - Screenshot” for example from old app.
-
Each step along the workflow should log info (e.g. changed incident status, sent email, started action item, etc.)
-
This is needed to help to troubleshoot issues such as “I didn’t get the email” or “Why is this QIR stuck in a certain state?”
-
-
Modify and kick off workflows manually
-
Use Case: user changes role or leaves company, or runs into an error
-
Admin needs to be able to redirect or cancel workflows
-
Admin needs to track manual changes to workflows (for reporting or troubleshooting)
-
Can re-assign tasks, and re-start task step
-
-
Example: Action Item WF
-
Kicked off when a new action item is added to a QIR
-
This should be added to the active WF list
-
Admin should be able to reassign to redirect WF or cancel the WF, edit the action item, and restart the action item WF manually.
-
-
Verification of Effectiveness Workflow - GONE
The workflow of incidents and action items is implemented in IncidentService and ActionItemService. See “Quality Incident Reporting Workflows 6-13-12.pdf” “Quality Incident Reporting Workflows 5-30-14.vsd” for flow diagrams.
For weekly and monthly email notifications, we are using Quartz.NET. The frequency is configured in Src\Frontend\quartz_jobs.xml. The emails that get sent are built in to our EmailService’s #SendWeeklyScheduledEmails() and #SendWeeklyScheduledEmails() methods.
Weekly examples are:
-
Reminder Awaiting Approval (for incidents awaiting approval)
-
Incident Oversight Escalation (for overdue incidents awaiting approval)
-
Reminder Rework Requested (for rejected incidents)
-
Incident Rework Escalation (for overdue rejected incidents)
Monthly examples are:
-
Action Item Escalation Reminder (for action items)
-
Action Item QA Escalation Reminder (for overdue action items)
1.3 - Technology Overview
- Windows Server 2008 R2
- MS SQL Server 2012
- IIS 7
- C# 4.0
- .NET Framework 4.0
- ASP.NET Web Form
- jQuery 1.11.1 http://jquery.com
Browser Requirements:
Your submission must works on browser in the list below:
- IE8+
- Safari latest version on Mac & Windows
- Firefox latest version on Mac & Windows
- Chrome latest version on Mac & Windows
1.4 - Documentation Provided
Documentation and Applications that will be provided to registered members:
Document Name |
Document Description |
Application Design Specification |
Architecture documentation attached |
Class Diagrams |
Architecture documentation attached |
Sequence Diagrams |
Architecture documentation attached |
ERD |
Architecture documentation attached |
UI Prototype |
HTML / CSS / JS prototype attached |
Assembly 1: Model, Exception, Authorization, and Notification Assembly |
Completed 1st assembly challenge in this series |
Assembly 2: Codes, Regions, Logs and Root Cause Assembly |
Completed 2nd assembly challenge in this series |
Quality Incident Report Enhancements -April 8 2015.xlsx |
Excel file with latest requirements (form fields, access levels, classifications, root causes, etc) |
Workflow Screenshots |
Screenshots from existing app |
Quality Incident Reporting Workflows 5-30-14.vsd |
Diagrams of workflows |
1.5 - Testing
Please include unit tests to verify your application successfully meets the requirements of the project. You should provide functional tests.
1.6 Approval phase
- Since the codebase may be updated in parallel, the winner may be asked to merge the codebase into the main branch.
- Some minor UX/UI fixes may be requested by the client during approval phase.
Final Submission Guidelines
- Completed code for the application (see architecture documentation and section 1.2 of this challenge spec above)
- A complete and detailed deployment documented explaining how to deploy the application including configuration information.
- Tests to verify your application successfully meets the requirements of the project.
A complete list of deliverables can be found in the TopCoder Assembly competition Tutorial at: http://apps.topcoder.com/wiki/display/tc/Assembly+Competition+Tutorials