Skip to content

AldrianLoberiano/helpdesk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

867 Commits
 
 
 
 
 
 

Repository files navigation

IT Helpdesk Ticketing System

A full-featured web-based helpdesk ticketing system built with PHP, MySQL, and Bootstrap. Supports role-based access for Admin, Technician, and Employee users with real-time notifications, performance tracking, and customizable themes.

Need for System Development

Problem Statement

In many organizations, IT support requests are handled through informal channels such as email, phone calls, or walk-in requests. This approach leads to several critical issues:

  • Lost Requests - Without a centralized system, support requests can be lost, forgotten, or overlooked, leading to unresolved issues and employee frustration
  • Lack of Accountability - No clear ownership of tickets makes it difficult to track who is responsible for resolving each issue
  • No Priority Management - Urgent issues may not be prioritized appropriately, causing delays in critical system repairs
  • Poor Visibility - Management lacks insight into IT support performance, workload distribution, and common issue patterns
  • Inconsistent Service - Without standardized workflows, the quality and speed of support vary greatly between technicians
  • No Historical Data - Organizations cannot analyze past issues to identify recurring problems or make informed decisions about IT investments

Solution Benefits

This IT Helpdesk Ticketing System addresses these challenges by providing:

  • Centralized Request Management - All support requests are captured in one place with automatic ticket numbering and categorization
  • Clear Ownership and Accountability - Tickets are assigned to specific technicians with full audit trails of all actions
  • Priority-Based Workflow - Critical issues are flagged and prioritized to ensure timely resolution
  • Real-Time Visibility - Dashboards provide instant insights into ticket status, technician performance, and system health
  • Standardized Processes - Consistent workflows ensure every request receives the same level of attention and care
  • Data-Driven Decisions - Historical reports help identify trends, recurring issues, and opportunities for process improvement
  • Improved User Satisfaction - Employees can track their requests and receive timely updates, improving overall satisfaction with IT support

Expected Outcomes

  • Reduction in average ticket resolution time
  • Improved first-response time
  • Better resource allocation based on workload data
  • Enhanced communication between IT staff and end users
  • Increased accountability and transparency in IT operations
  • Data-backed decisions for IT infrastructure investments

Features

Role-Based Access Control

  • Admin - Full system access: manage users, departments, categories, view reports, and all tickets
  • Technician - View and update assigned tickets, add comments, change ticket status
  • Employee - Create tickets, view own tickets, reopen resolved tickets

Ticket Management

  • Create, view, update, and close support tickets
  • Ticket number auto-generation (TKT-YYYYMMDD-XXXX)
  • Priority levels: Low, Medium, High, Critical
  • Status workflow: Created > Assigned > In Progress > Resolved > Closed
  • File attachments with extension validation (JPG, PNG, GIF, PDF, DOC, DOCX, TXT, ZIP)
  • Comment system with role badges and timestamps
  • Ticket reassignment between technicians

Dashboard Analytics

  • Admin Dashboard - Total tickets, open/pending/resolved/closed counts, monthly trend chart, status distribution with percentages, technician performance metrics, recent tickets
  • Technician Dashboard - Assigned tickets overview, priority/status pie charts, recent tickets
  • User Dashboard - Personal ticket stats, status doughnut chart, quick actions

Notifications

  • Real-time notification bell with unread count badge
  • Auto-polling every 30 seconds for new notifications
  • Mark all as read / individual mark as read
  • Notifications for: assignment, status changes, comments, resolves

User Profile

  • Upload and manage profile photo (JPG, PNG, GIF, max 2MB)
  • Photo displayed in navbar avatar and users table
  • Fallback to initials when no photo is set
  • Edit personal information (name, email, phone)
  • Change password with current password verification

Theming

  • 10 preset theme colors + custom color picker
  • Light and Dark mode
  • Compact mode option
  • Per-user theme persistence via database
  • Real-time preview in settings page

Admin Management

  • User Management - Create, edit, activate/deactivate, delete users with profile photos
  • Department Management - CRUD operations for departments
  • Category Management - CRUD operations for ticket categories
  • Reports & Analytics - Date range filters, status/priority/category/department breakdowns, Chart.js visualizations, printable reports

Security

  • CSRF protection on all forms
  • Prepared statements for all SQL queries (PDO)
  • Password hashing with password_hash() (bcrypt)
  • Session-based authentication with 30-minute timeout
  • Role-based access control middleware
  • File upload extension whitelist validation

Tech Stack

Layer Technology
Backend PHP 8.1 (Native, no framework)
Database MySQL 8.0
Frontend HTML5, CSS3, JavaScript
CSS Framework Bootstrap 5.3.0 (CDN)
Charts Chart.js (CDN)
Font Inter (Google Fonts)
Icons Inline SVG
Server Laragon (Apache + MySQL)

Project Structure

helpdesk_system/
├── admin/                      # Admin role pages
│   ├── dashboard.php           # Admin dashboard with analytics
│   ├── tickets.php             # View and manage all tickets
│   ├── view_ticket.php         # Ticket detail view
│   ├── users.php               # User management (CRUD)
│   ├── departments.php         # Department management (CRUD)
│   ├── categories.php          # Category management (CRUD)
│   ├── announcements.php       # Manage announcements
│   ├── create_announcement.php # Create new announcement
│   ├── edit_announcement.php   # Edit announcement
│   └── reports.php             # Reports and analytics
├── technician/                 # Technician role pages
│   ├── dashboard.php           # Technician dashboard
│   ├── tickets.php             # Assigned tickets list
│   ├── view_ticket.php         # Ticket detail view
│   └── update_ticket.php       # Update ticket status
├── user/                       # Employee role pages
│   ├── dashboard.php           # Employee dashboard
│   ├── tickets.php             # My tickets list
│   ├── view_ticket.php         # Ticket detail view
│   ├── create_ticket.php       # Create new ticket
│   └── reopen_ticket.php       # Reopen resolved ticket
├── auth/                       # Authentication pages
│   ├── login.php               # Login page
│   ├── logout.php              # Logout handler
│   ├── forgot_password.php     # Password reset request
│   └── reset_password.php      # Password reset form
├── pages/                      # General user-facing pages
│   ├── index.php               # Landing/redirect page
│   ├── announcements.php       # View announcements
│   ├── notifications.php       # Full notifications list
│   ├── profile.php             # User profile with photo upload
│   ├── settings.php            # Theme and notification preferences
│   └── seed_dummy_data.php     # Database seeder
├── api/                        # AJAX endpoints
│   ├── get_notification_count.php  # Get unread notification count
│   └── mark_notifications_read.php # Mark notifications as read
├── docs/                       # Documentation pages
│   ├── active_directory.php    # Active Directory documentation
│   ├── network_topology.php    # Network topology documentation
│   ├── remote_desktop.php      # Remote desktop documentation
│   └── server_room.php         # Server room documentation
├── config/
│   └── database.php            # DB config, helper functions, CSRF, session
├── database/
│   └── database.sql            # Database schema and seed data
├── includes/
│   ├── header.php              # HTML head, theme CSS variables, meta tags
│   ├── navbar.php              # Role-based navigation, notifications, avatar
│   ├── footer.php              # Footer, modals, flash messages
│   └── auth.php                # Authentication middleware, role checks
├── assets/
│   ├── css/
│   │   ├── bootstrap.min.css   # Bootstrap CSS
│   │   └── style.css           # Custom styles
│   └── js/
│       ├── bootstrap.bundle.min.js # Bootstrap JS
│       ├── chart.js            # Chart.js library
│       └── main.js             # Custom JavaScript
├── uploads/
│   └── profile/                # User profile photos
└── index.php                   # Entry point/router

Database Schema

Table Description
roles Admin, Technician, Employee
departments IT, HR, Finance, Administration, Operations
ticket_categories Network, Hardware, Printer, Software, Account, Email, Internet, Others
users User accounts with profile_photo column
tickets Support tickets with status, priority, assignment
ticket_comments Comment threads on tickets
ticket_attachments File attachments for tickets
notifications User notifications for assignments and updates
activity_logs Audit trail for user actions
user_settings Per-user theme preferences

Login Credentials

Role Username Password
Admin admin admin123
Technician tech_carlos password123
Technician tech_maria password123
Technician tech_james password123
Technician tech_anita password123
Employee juan_d password123
Employee anna_m password123
Employee robert_c password123
Employee rachel_b password123
Employee kevin_t password123

Setup

  1. Place project in C:\laragon\www\helpdesk\helpdesk_system\
  2. Ensure Laragon Apache and MySQL are running
  3. Import database/database.sql or run pages/seed_dummy_data.php to populate tables
  4. Access at http://localhost/helpdesk/helpdesk_system/

License

Aldrian C. Loberiano - Devloped as a comprehensive IT helpdesk ticketing system with advanced features and security best practices.

About

A full-featured web-based helpdesk ticketing system built with PHP, MySQL, and Bootstrap. Supports role-based access for Admin, Technician, and Employee users with real-time notifications, performance tracking, and customizable themes.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors