Skip to content
/ TMS Public

A small demo of Ticket assignment part of Customer Service systems

Notifications You must be signed in to change notification settings

dm-pr/TMS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TMS (Ticket Management Section)

This is my two-weeks final project I did on Lexicon C# course. The requirement was to use ASP.Net Core with Entity Framework Core and some form of front-end. What exactly the application should do was up to each student.

My idea for the final project originated from my previous employment where I worked with big OSS and BSS systems made up of hundreds of components. This project is a demo implementation of a part of a Customer Care system, particulary Ticket management part.

A ticket is generated by First-line customer support when they answer a call/get an email from a customer that has a problem with his equipment or service. If First-line agent can't resolve issue directly, a ticket is created and passed further on to Coordinators. These are people who have in-depth knowledge of inner workings of the company and for the most part can figure out how to fix the problem. They are not who actually fix it though, they rather push the ticket onto Operators. An Operator can be any hands-on resource, in-house or external, consultant or subcontractor etc. Coordinators job is to assign the ticket to an appropriate Operator based on type of issue, urgency, Operators contracts and other criteria.

For that each Operator has a schedule within the system and a login to view assigned jobs and report on completed ones. In reality there's a lot more to that, but for the purpose of this demo (and time constraint) I have omitted most of advanced functionality.

This demo's user stories are as follows:

General:

  • Users can login into the system

From Coordinator perspective:

  • Coordinator receives escalated ticket from first-line with info about the issue (pre-seeded in this demo)
  • Coordinator can view ticket list, search, sort, view most urgent, view closed/archived and also create new tickets
  • Coordinator can assign ticket to an operator using schedule view for that specific operator
  • Coordinator is alerted when a report is available and can review the report
  • Coordinator can close completed tickets if the issue is solved by an operator.

From Operator perspective:

  • Operator can see tickets that require attention in a summary view
  • Operator can view assigned tickets in own schedule view.
  • Operator cannot change ticket main fields, but can print/send a job order. (not implemented in demo due to time constraint)
  • Operator can create report for a ticket which will be submittet for review by assigning Coordinator
  • Operator can mark ticket as completed.

What I've used:

  • ASP.Net Core MVC with no Razor Pages
  • Entity Framework Core
  • Sql Server
  • Model Binding
  • Automapper
  • Identity
  • Role-dependent areas
  • Bootstrap 5
  • Web API & JS fetching

Notes:

API controllers have extensive error handling. Validation prevents bad parameters. Request parameters manipulation/injection that result in thrown exceptions is handled in most basic way - via middleware and Error method in Login Controller. HTTP code errors like 404 have very basic middleware handling also. Some hardcoded error messages and alerts. Also hardcoded report templates. Set mode is 'Production' Change to 'Development' in launchsettings.json if desired.

** This code is fully open for anyone to take whatever they want, completelly free **

How to actually test it

  1. Download project and extract somewhere
  2. Use Sql Server 2019 or whatever works with EF Core
  3. Run sql script with SSMS or equivalent
  4. Fix connection string in appsettings.json
  5. Rebuild and start :)

Screenshots

I've now added some screenshots in Screenshots folder

About

A small demo of Ticket assignment part of Customer Service systems

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published