A web-based IT support ticket management system built with ASP.NET Core MVC, Entity Framework Core, Identity, and SQLite.
The system allows users to report technical issues, technicians to manage and resolve tickets, and administrators to monitor the system and manage users.
- Secure registration and login.
- User, Technician, and Administrator roles.
- Create and manage support tickets.
- Assign tickets to technicians.
- Ticket priority and status tracking.
- Automatic SLA deadlines based on priority.
- Overdue ticket indicators.
- Comments inside tickets.
- Complete ticket activity history.
- Search and filter tickets.
- Dashboard with ticket statistics.
- User and role management.
- Export tickets to CSV.
- Responsive Arabic interface.
- Automatic SQLite database creation.
- Docker support.
- GitHub Actions build checks.
| Role | Permissions |
|---|---|
| User | Create tickets, view personal tickets, add comments, and close resolved tickets |
| Technician | View tickets, assign tickets, update status and priority, and export reports |
| Administrator | Full ticket access, dashboard, user management, roles, and reports |
- .NET 8
- ASP.NET Core MVC
- Entity Framework Core
- ASP.NET Core Identity
- SQLite
- Razor Views
- Bootstrap
- HTML, CSS, and JavaScript
- Docker
- GitHub Actions
HelpDeskSystem/
├── Controllers/ # Application actions and request handling
├── Data/ # Database context and seed data
├── Models/ # Database entities
├── ViewModels/ # Interface-specific models
├── Views/ # Razor pages
├── Services/ # Business logic
├── wwwroot/ # CSS, JavaScript, and static files
├── docs/ # Project documentation
├── .github/ # GitHub workflows and templates
├── Program.cs # Application startup and configuration
├── appsettings.json # Application and database settings
└── Dockerfile # Docker configuration
- The application starts from
Program.cs. - ASP.NET Core Identity handles authentication and user roles.
- Entity Framework Core connects the application to SQLite.
- The database and default administrator account are created automatically.
- A user can register and create a support ticket.
- The system calculates the SLA deadline according to ticket priority.
- A technician assigns the ticket and updates its status.
- Every important change is saved in the ticket activity history.
- Administrators can manage users, view statistics, and export reports.
- Visual Studio 2022.
- ASP.NET and web development workload.
- .NET 8 SDK.
- Git, if you want to clone the repository.
A separate database server is not required because the project uses SQLite.
Clone the repository:
git clone https://github.com/5mlan/it-help-desk-system.git
cd it-help-desk-system- Open
HelpDeskSystem.slnin Visual Studio 2022. - Wait for NuGet packages to restore.
- Select
HelpDeskSystemas the startup project. - Press
F5or click Run. - The SQLite database will be created automatically.
dotnet restore
dotnet run --project HelpDeskSystem/HelpDeskSystem.csprojEmail: admin@helpdesk.local
Password: Admin123!
Change or remove the demo administrator credentials before publishing the application online.
Open → Assigned → In Progress → Resolved → Closed
A ticket can contain:
- Title and description.
- Category.
- Priority.
- Current status.
- Ticket creator.
- Assigned technician.
- SLA deadline.
- Comments.
- Activity history.
The main database entities are:
- Users: User accounts and roles.
- Tickets: Technical support requests.
- Ticket Comments: Communication between users and technicians.
- Ticket Activities: History of changes made to each ticket.
Entity Framework Core manages all database relationships and stores the information in SQLite.
Technicians and administrators can export ticket data to a UTF-8 CSV file.
The exported file supports Arabic text and can be opened using Microsoft Excel or other spreadsheet applications.
Build the Docker image:
docker build -t help-desk-system .Run the application:
docker run --name help-desk-system -p 8080:8080 help-desk-systemOpen:
http://localhost:8080
- Email notifications.
- File and screenshot attachments.
- Password reset by email.
- PDF reports.
- Advanced dashboard analytics.
- REST API.
- Mobile application.
- Cloud deployment.
- Unit and integration tests.
- Do not upload passwords or private keys to GitHub.
- Store production secrets in environment variables.
- Change the default administrator password.
- Use HTTPS when deploying the application.
- Update NuGet packages regularly.
Contributions and suggestions are welcome.
You can open an issue or submit a pull request with a clear description of the proposed change.
Salem Al-Mokhles
Computer Information Systems Graduate
- GitHub: @5mlan
- LinkedIn: Salem Al-Mokhles
نظام إلكتروني متكامل لإدارة بلاغات الدعم الفني. يتيح للمستخدم إنشاء التذاكر ومتابعتها، وللفني استلامها وتحديث حالتها والتواصل مع صاحب البلاغ، بينما يستطيع المدير متابعة الإحصائيات وإدارة المستخدمين والصلاحيات وتصدير التقارير.
تم تطوير المشروع باستخدام ASP.NET Core MVC وSQLite، ويمكن تشغيله مباشرة باستخدام Visual Studio 2022 دون الحاجة إلى تثبيت خادم قاعدة بيانات منفصل.
If you find this project useful, consider giving it a ⭐.