Skip to content

yusufuznn/TicketManagementSystem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

9 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Ticketly

ticketly

A modern and user-friendly ticket management system. This project is designed for tracking customer support requests, assigning staff, and analyzing performance.

πŸš€ Features

User Roles

  • Customer: Create and track tickets
  • Staff: Manage assigned tickets
  • Manager: Manage all tickets and assign staff
  • Admin: Full system administration

Core Features

  • βœ… 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

πŸ› οΈ Technologies

Backend

  • ASP.NET Core 9.0
  • Entity Framework Core
  • PostgreSQL
  • JWT Authentication
  • BCrypt (for password hashing)

Frontend

  • React 18
  • TypeScript
  • Modern CSS
  • Responsive Design

πŸ“Έ Screenshots

login

login page

register

register page

musHp

customer homepage

ticketDetail

ticket creation, listing and details

persHp

staff homepage

persPanel

staff page

adminHp

Β admin homepage

adminPanel

admin page

πŸ“¦ Installation

Requirements

  • .NET 9.0 SDK
  • Node.js 18+
  • PostgreSQL

Backend Setup

  1. Create the database:
# Create a PostgreSQL database
createdb ticket_system
  1. Install backend dependencies:
cd backend/TicketSystem.API
dotnet restore
  1. 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"
  }
}
  1. Apply database migrations:
dotnet ef database update
  1. Start the backend:
dotnet run

Frontend Setup

  1. Install frontend dependencies:
cd frontend
npm install
  1. Start the frontend:
npm start

πŸ”§ Configuration

JWT Settings

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
  }
}

CORS Settings

Update the frontend URL in Program.cs:

policy.WithOrigins("http://localhost:3000")

πŸ“ Project Structure

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

πŸ” Security

  • JWT-based authentication
  • Password hashing with BCrypt
  • Role-based authorization
  • CORS protection
  • Input validation

πŸ“Š API Endpoints

Auth

  • POST /api/Auth/login β€” User login
  • POST /api/Auth/register β€” User registration
  • POST /api/Auth/change-password β€” Change password

Tickets

  • GET /api/Ticket β€” List all tickets
  • GET /api/Ticket/my β€” List user’s tickets
  • POST /api/Ticket β€” Create new ticket
  • PUT /api/Ticket/{id} β€” Update ticket
  • DELETE /api/Ticket/{id} β€” Delete ticket

Statistics

  • GET /api/Ticket/statistics β€” General statistics
  • GET /api/Ticket/personel-stats β€” Staff performance
  • GET /api/Ticket/export-csv β€” Export as CSV

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to your branch (git push origin feature/amazing-feature)
  5. Create a pull request

πŸ“’ Contact

Email: yusfuzn@hotmail.com

About

A full-stack, role-based ticket management system for tracking, assigning, and resolving customer support requests. Built with ASP.NET Core and React.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors