Customer Support Ticket System

A selected portfolio piece by Rohail Khan, highlighting the idea, approach, execution, and outcome behind the work.

Created on Nov 05, 2025 Visit Project
Customer Support Ticket System

Project Overview

Customer Support Ticket System is a full-stack web application developed to simplify and organize customer support operations. The system provides a centralized platform where customers can submit their issues, while support agents can view, assign, prioritize, and update tickets from an interactive dashboard.

The backend was developed using ASP.NET Core Web API and C#. It follows a RESTful API architecture, where separate endpoints handle ticket creation, ticket retrieval, status updates, agent assignment, and user registration. The backend is organized into controllers, models, DTOs, database configuration, and Entity Framework migrations, making the project easier to maintain and extend.

Entity Framework Core is used as the Object-Relational Mapper. It connects the C# models with the database and handles database operations asynchronously. SQLite is used as the database because it provides a lightweight, file-based solution that is suitable for prototypes, demonstrations, and smaller applications. Entity Framework migrations define and track the database structure.

The ticket model stores information such as the customer’s name, email address, ticket title, detailed issue description, priority, status, assigned support agent, and creation date. Ticket priorities are categorized as Low, Medium, and High, while the available ticket statuses include Open, In Progress, Resolved, and Closed.

The system includes a user-registration API. During registration, email addresses are normalized and checked for duplicate accounts. User passwords are never stored directly; they are securely converted into password hashes using BCrypt before being saved to the database. Each user record also contains a name, email address, role, and account-creation date.

The frontend was developed using HTML5, CSS3, and vanilla JavaScript. JavaScript communicates with the backend through the Fetch API, loads ticket information dynamically, submits new tickets, and sends status or assignment updates without requiring separate server-rendered pages.

A responsive administrative dashboard provides an overview of support activity. It displays statistics for total, open, in-progress, and resolved tickets. Support agents can review ticket details, change ticket statuses, and assign tickets directly through the interface. The layout uses responsive CSS so the application remains usable on desktop, tablet, and mobile screens.

The complete application is served through ASP.NET Core. Static frontend files are stored in the wwwroot directory, while API requests are handled by controller endpoints. This keeps the frontend and backend together in a single deployable application and avoids unnecessary cross-origin configuration.

The project is containerized using a multi-stage Docker build. The first stage uses the .NET SDK to restore dependencies and publish the application, while the second stage runs the published output using the smaller ASP.NET Core runtime image. This approach reduces the final container size and provides a consistent deployment environment.

The source code is managed using Git and GitHub. The application is deployed on Render using its Docker configuration. Each update pushed to the main GitHub branch can trigger an automatic build and deployment, creating a simple continuous deployment workflow.

Main Features

  • Customer support ticket creation
  • Ticket listing and individual ticket details
  • Low, Medium, and High priority levels
  • Open, In Progress, Resolved, and Closed statuses
  • Support-agent assignment
  • Dynamic dashboard statistics
  • User registration
  • Duplicate-email validation
  • Secure BCrypt password hashing
  • RESTful API endpoints
  • Asynchronous database operations
  • Responsive dashboard design
  • Docker-based deployment
  • GitHub version control
  • Automatic Render deployments

Technology Stack

Backend

  • ASP.NET Core Web API
  • C#
  • .NET 10
  • RESTful API architecture
  • Asynchronous programming

Database

  • SQLite
  • Entity Framework Core
  • Code-first data models
  • Entity Framework migrations

Frontend

  • HTML5
  • CSS3
  • Vanilla JavaScript
  • Fetch API
  • Responsive web design

Security

  • BCrypt password hashing
  • Duplicate-account validation
  • Normalized email addresses
  • DTO-based registration input

Deployment and Tools

  • Docker
  • Multi-stage Docker builds
  • Render
  • GitHub
  • Git
  • Visual Studio