Exceptions Manager

I created a system used by employees at a credit union to track and fix errors made while opening accounts, creating loans, and submitting documentation.

Overview

Verifying that procedures have been followed with exactness is extremely important – especially if you are dealing with money and legal matters. That is why credit unions have processes in place to ensure employees have correctly filled out forms, acquired necessary documentation, and disbursed correct funds.

I created a system to manage such a process at a credit union. It is called an Exceptions Manager system. It allows a department within the credit union, whose job it is to check that everything is done correctly, to request that corrections be made by employees throughout the financial institution. It also tracks the types of errors that are most common and generates reports to help managers determine where additional training may be needed for an employee, a branch, a department, or for the credit union as a whole.

Requirements

Exception Tracking

Allows employees to see their own assigned exceptions and their branch or deparment's exceptions. Employees can enter notes and communicate with the person who created the exception. Once an exception is resolved by an employee, it goes through a checkback process to allow the reporting employee to verify that the problem has been resolved.

Reporting

There are several reports in this system. One report shows the types of problems an employee has had exceptions created for, the number of open exceptions that are no resolved, and the percentage of exceptions per account, loan, and mortgage created. A department report shows the number of exceptions created for the department, the employees in the department with their associated number of exceptions open and overdue, and the most common types of problems an exception has been created for in the department. There are many other reports available.

Intranet Integration

The system needs to know the hierarchical structure of the organization in order to do things like notify managers if an employee isn't completing their exceptions. So it is integrated with the company intranet to get this information.

Active Directory Integration

There is no login screen for this system. It is integrated with Active Directory so, as employees use it, the system automatically knows who they are.

Document Attachment

Every exception can have an unlimited number of documents attached to it. This is very useful because many exception types require documentation to be submitted.

My Involvement

I was the only developer on this project. I worked with an employee in the Operations department to create and refine the requirements for this system. I developed all layers of the application including database, back end, web services, and front end. I also created the hosting environment on internal web servers for the web services and front end and installed the database on the SQL server.

Process

Starting out, I created a new repository on the internal Git server. Then I created a new database in SSMS on my local machine and created the rough schema for the project.

I opened Visual Studio and created a new solution with projects for the data layer, business logic layer, web services, and web front end. I generated a database first Entity Framework context in the data layer (if I were to do it again, I would use code first with scaffolding).

Then I generated the service layer with separate projects for the models, the business logic, and the actual web service itself. The web service was created with WCF but I would use either WebAPI or gRPC now.

The front end is an ASP.NET MVC project with plain CSS, Bootstrap, vanilla Javascript, and some jQuery.

The front end is integrated with Active Directory and uses Windows Authentication so employees do not need to sign in at all to the app. They just load the web page and it already knows who they are and displays the exceptions they need to work on.

After creating several pages, I created a test environment on the test web server and migrated a fresh copy of the database to the test SQL server. I then worked with the Operations employee to refine some concepts and get her thoughts on how it is working and what she would like to change.

We went through several iterations and came up with a solution that would work well for her department.

When the solution was ready to launch, I created the production environment on the production web servers, created new entries in the internal DNS servers, created a new fresh database instance on the production SQL servers and did everything else that was required to get it ready for use.

Results

The launch was successful with no reported problems. Since launch, there have been more than 134,000 exceptions created in the system. There have been over 1,700 employees who have used it since launch and, at the time of this writing, there are currently 586 active employees using it.

I have made several improvements to the system since that time. The majority of the updates have been additional reporting features to help management better understand what they can do to help improve processes.

Technologies Used

C# ASP.NET MVC SQL Entity Framework WCF Visual Studio Git Bootstrap CSS jQuery JavaScript Windows Server