
A modern and user-friendly ticket management system. This project is designed for tracking customer support requests, assigning staff, and analyzing performance.
- Customer: Create and track tickets
- Staff: Manage assigned tickets
- Manager: Manage all tickets and assign staff
- Admin: Full system administration
- β Ticket creation and management
- β Staff assignment and transfer
- β Comment system
- β File attachments
- β Timeline tracking
- β Filtering and search
- β Statistics and reporting
- β CSV export
- β JWT-based security
- ASP.NET Core 9.0
- Entity Framework Core
- PostgreSQL
- JWT Authentication
- BCrypt (for password hashing)
- React 18
- TypeScript
- Modern CSS
- Responsive Design

login page

register page

customer homepage

ticket creation, listing and details

staff homepage

staff page

Β admin homepage

admin page
π¦ Installation
- .NET 9.0 SDK
- Node.js 18+
- PostgreSQL
- Create the database:
# Create a PostgreSQL database
createdb ticket_system
- Install backend dependencies:
cd backend/TicketSystem.API
dotnet restore
- Configure the connection string:
Update the PostgreSQL connection string in
appsettings.json
:
{
"ConnectionStrings": {
"DefaultConnection": "Host=localhost;Database=ticket_system;Username=your_username;Password=your_password"
}
}
- Apply database migrations:
dotnet ef database update
- Start the backend:
dotnet run
- Install frontend dependencies:
cd frontend
npm install
- Start the frontend:
npm start
Configure JWT options in backend/TicketSystem.API/appsettings.json
:
{
"Jwt": {
"Key": "your-super-secret-key-here-minimum-16-characters",
"Issuer": "TicketSystem",
"Audience": "TicketSystemUsers",
"ExpireMinutes": 60
}
}
Update the frontend URL in Program.cs
:
policy.WithOrigins("http://localhost:3000")
ticket-system/
βββ backend/
β βββ TicketSystem.API/
β βββ Controllers/ # API endpoints
β βββ Entities/ # Database models
β βββ Migrations/ # EF Core migrations
β βββ Program.cs # Application configuration
βββ frontend/
βββ src/
βββ components/ # React components
βββ pages/ # Page components
βββ services/ # API services
βββ utils/ # Utility functions
βββ contexts/ # React contexts
- JWT-based authentication
- Password hashing with BCrypt
- Role-based authorization
- CORS protection
- Input validation
POST /api/Auth/login
β User loginPOST /api/Auth/register
β User registrationPOST /api/Auth/change-password
β Change password
GET /api/Ticket
β List all ticketsGET /api/Ticket/my
β List userβs ticketsPOST /api/Ticket
β Create new ticketPUT /api/Ticket/{id}
β Update ticketDELETE /api/Ticket/{id}
β Delete ticket
GET /api/Ticket/statistics
β General statisticsGET /api/Ticket/personel-stats
β Staff performanceGET /api/Ticket/export-csv
β Export as CSV
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to your branch (
git push origin feature/amazing-feature
) - Create a pull request
Email: yusfuzn@hotmail.com