A self-hosted support ticket management system built with Blazor and Entity Framework Core. This application enables organizations to manage support requests internally without relying on external vendor solutions.
- Track and manage support tickets
- Email notifications
- Role-based access control
- Technician assignment system
- Self-hosted solution
- .NET SDK (version 8.0 or later)
- SQL Server (2019 or later)
- (Optional) Visual Studio 2022 or later for enhanced development experience
- Clone the repository:
git clone https://github.com/Cezol-ZaMan/blazorTickets.git
cd blazorTickets- Restore dependencies:
dotnet restore- Configure the application:
- Create appsettings.json in the root folder
- Update settings according to the Configuration section.
- Set up the database:
dotnet ef database updateStart the application using:
dotnet run --urls=http://localhost:5000/Access the application at http://localhost:5000 in your web browser.
Create an appsettings.json file in the root directory with the following structure:
{
"Technicians": {
"Emails": [
"example1@domain.com",
"example2@domain.com"
]
},
"Smtp": {
"Host": "smtp.domain.com",
"Port": 465,
"EnableSsl": true,
"Username": "example3@domain.com",
"Password": "P@ssword"
},
"ConnectionStrings": {
"DefaultConnection": "Server=localhost\\SQLEXPRESS;Database=Tickets;Trusted_Connection=True;"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*"
}- Technicians: List of email addresses that will automatically receive technician role upon registration
- Smtp: Email server configuration for notifications
- ConnectionStrings: Database connection settings
- Logging: Application logging configuration
When modifying data models:
- Create a migration:
dotnet ef migrations add YourMigrationName- Apply the migration:
dotnet ef database update- Build the project:
dotnet build- Run tests:
dotnet test- Create production build:
dotnet publish --configuration Release-
Environment Variables:
- Replace sensitive configuration with environment variables
- Update Program.cs:
var builder = WebApplication.CreateBuilder(args); builder.Configuration .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) .AddEnvironmentVariables();
-
Security Considerations
- Use HTTPS in production
- Secure database connection strings
- Implement proper authentication
- Regular security updates
Common issues and solutions:
-
Database Connection Failed: Verify connection string and SQL Server instance
-
Migration Errors: Ensure database is up to date with dotnet ef database update
-
Email Sending Failed: Check SMTP settings and firewall configuration
Contributions are welcome! Please feel free to submit a Pull Request or Issue. For changes:
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature) - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.