Skip to content

dengaertig/TicketSystem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🎫 TicketSystem — A Modern ASP.NET Core Ticket Management System

TicketSystem is a full-featured ticket management platform built with
ASP.NET Core MVC, Entity Framework Core, C#, and SQL.
It is designed as a portfolio and learning project focusing on clean architecture, real-world backend patterns, and relational database design.


🚀 Features

✅ User Management

  • User creation, editing, and deletion
  • Admin Dashboard
  • Role-based access (Admin, User)
  • Secure password hashing (Salt + Hash + Iteration Count)
  • Safe deletion via Soft Delete or SetNull behavior

🛠️ Admin Dashboard

  • Overview of all users
  • Edit and delete user accounts
  • Ticket and system analytics
  • Manage roles and permissions
  • Quick access to key management actions (users, tickets, assignments)

🎫 Ticket Management

  • Create and assign tickets
  • Track status, priority, creator, and assignee
  • Comment system per ticket
  • Automatic history tracking for all changes

🧩 Clean Architecture

  • Models for domain entities
  • Services handling all business logic
  • DbContext for EF Core persistence
  • ViewModels for safe data binding
  • Controllers kept thin and readable
  • Razor Views with TagHelpers and validation

🗄️ Entity Framework Core

  • Navigation properties
  • Delete behaviors (Restrict, Cascade, SetNull)
  • Migrations
  • SQL-based relational database design

🧱 Tech Stack

Layer Technologies
Backend C#, .NET 8, ASP.NET Core MVC
Database Entity Framework Core, PostgreSQL/SQLite
Frontend Razor, HTML, CSS, Bootstrap
Tools Git, GitHub, Postman, Visual Studio

📐 Architecture Overview

/TicketSystem
│
├── Controllers/         → MVC controllers (HTTP layer)
├── Models/              → Domain entities (User, Ticket, Comment, ...)
├── Services/            → Business logic (interfaces + implementations)
├── ViewModels/          → Models for views/forms
├── Data/
│   ├── TicketDbContext  → Entity Framework Core context
│   └── Migrations/      → Database migrations
└── Views/               → Razor frontend

🔑 Key Concepts Demonstrated

  • Constructor-based Dependency Injection
  • Clear separation between UI, business logic, and persistence
  • PBKDF2 password hashing with Salt + Iteration Count
  • EF Core SetNull delete pattern to preserve historical tickets
  • Strong ViewModels to prevent over-posting
  • Validation on both server and client
  • Relational DB modeling with one-to-many and many-to-many patterns

🖥️ Getting Started

1️⃣ Clone the repository

git clone https://github.com/dengaertig/TicketSystem.git
cd TicketSystem

2️⃣ Configure the database

Edit the appsettings.json connection string.

3️⃣ Apply migrations

dotnet ef database update

4️⃣ Run the project

dotnet run

🛠️ Roadmap

  • Improved filtering & search
  • Email notifications
  • Analytics dashboard
  • REST API endpoints

📬 Contact

Dennis
📧 [email protected]
🎮 Discord: kenkolino


“Built with clean architecture, learning, and a lot of C# energy.”

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published