Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Main Con Hss

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 77

CHAPTER 1

INTRODUCTION
1.1 ABOUT THE ORGANIZATION

Spell Global Services, based in Puducherry, India, specializes in a diverse range of


design and manufacturing services. The company offers expertise in interior design,
fashion design, and industrial design, catering to both individual and corporate clients.
Their specialty design services are tailored to meet unique customer requirements,
ensuring creativity and functionality in every project. By integrating contemporary trends
with practical solutions, Spell Global Services delivers high-quality design outputs that
stand out in the market.

In addition to their design capabilities, Spell Global Services provides comprehensive


manufacturing services, including publishing, printing, and reproduction. The company
also offers materials recovery services, emphasizing sustainability and efficient resource
use. Their publishing services, available on a fee or contract basis, ensure professional
and timely production of content, catering to a wide array of publishing needs. With a
commitment to quality and customer satisfaction, Spell Global Services stands out as a
versatile player in the design and manufacturing sectors in Puducherry.

Beyond their core services, Spell Global Services is dedicated to leveraging advanced
technologies and innovative methods to enhance their offerings. Their expertise in
printing and reproduction ensures precise and high-quality outputs, which are essential
for businesses that require reliable and visually appealing printed materials. The
company's commitment to sustainability is evident in their materials recovery services,
which focus on recycling and efficient waste management practices. By combining their
design prowess with robust manufacturing capabilities and eco-friendly initiatives, Spell
Global Services not only meets the diverse needs of their clients but also contributes to
environmental conservation, positioning themselves as a forward-thinking and
responsible company in the industry.

1
2.2 ABOUT THE PROJECT

Nowadays, Helpdesk ticketing system is the most widely used tool for solving the
day-to-day queries in the organization. Previously, the conventional system such as e-
mail were used for solving the queries which was much time consuming & irrelevant.
The Help Desk Ticketing system has shown 25% reduction in costs, 40% increase in
users’ satisfaction & 31% increase in productivity. This ticketing system has proved
many organizations to solve the queries in a efficient & effective manner thereby giving
solution to queries as soon as possible in mean time.

The time of ticket creation till the time of solving the ticket consumes a lot of time for
solving any level of ticket/query. The timeline for solution of queries can be reduced by
proposing three tier architecture for helpdesk ticketing system which is divided as User,
IT coordinator & Engineers. This proposed system will result in getting the tickets
resolution in the meanest time.

The Help Desk Ticketing System is designed to streamline the management of IT support
requests within an organization, providing a centralized platform for users to report issues
and track their resolution status. The system enhances communication between end-users
and IT staff, ensuring that all support requests are handled efficiently and effectively. By
consolidating all tickets in one place, the system aims to reduce response times and
improve overall IT support operations, leading to increased user satisfaction and
productivity.

Key features of the system include ticket creation and management, user and role
management, department management, and comprehensive reporting and analytics. Users
can easily submit tickets with detailed descriptions, and IT staff can update the status of
these tickets as they work on resolving the issues. Administrators have the ability to
configure the system, manage user roles, and generate reports to monitor performance
and identify areas for improvement. The system is designed to be intuitive and user-
friendly, ensuring that all users can navigate and utilize its features with ease.

2
The system's technical architecture is built to ensure security, scalability, and
compatibility. Robust security measures protect sensitive data from unauthorized access,
while the system's scalable design allows it to handle an increasing number of users and
tickets without compromising performance. Additionally, the system is compatible with
various devices and operating systems, providing users with the flexibility to access the
platform from different environments. Future enhancements, such as AI integration and
mobile access, will further improve the system's functionality and user experience,
making it an indispensable tool for managing IT support within any organization.

3
CHAPTER 2
PROBLEM DEFINITION AND FEASIBILITY ANALYSIS

2.1 PROBLEM DEFINITION

Help Desk System’s primary objective is to give solution to the tickets raised at
the possible earliest time. In the traditional system of Help Desk Ticketing system when
the user raises any query for the solution, the query gets pushed into the ticketing system
where the engineers can view the tickets raised. This consumes a lot of time for the
engineers as engineers are unaware of the problem & nature of the query when they open
any ticket. The solution to this traditional system is three tier architecture mainly divided
as User, IT coordinator & engineer. When the user raises ticket for the query for the
problem arising, firstly, the ticket gets reflected onto the portal of IT coordinator. The IT
coordinators work is to assign the query to the engineer according to the nature of the
problem arising. The three-tier architecture will provide an effective solution to the
queries not getting the delays in giving solutions while giving resolutions as soon as
possible.

2.1.1 EXISTING SYSTEM

The Helpdesk systems are widely used by the organizations to manage support
requests from the user. When the user creates a query with the problem definition, the
tickets gets logged into the system. The tickets logged are reflected directly to the support
engineer’s management system, which are then opened/viewed for the resolution of the
ticket. The status of the ticket changes to “Opened” so as to start work on the query. After
resolution of the ticket by giving solution to the query, the ticket is then closed & in turn
notified to the user as closed. The helpdesk systems are typically based on the web based
interfaces where users can log the tickets for the queries. i.e., raise the tickets, which gets
routed to the support engineers for providing a solution to the queries. The system tracks
the ticket lifecycle which can be easily viewed by the by the user such as updates to the
ticket, which also notifies the user whether the issue has been resolved or not. Some of
the popular helpdesk ticketing systems include Zendesk, Freshdesk & Servicenow. The

4
Helpdesk ticketing system has become an essential part of the organizations. It provides
hassle free experiences to the users within the least amount of time while solving queries
at the earliest.

DRAWBACKS:

1. Manual and Time-Consuming Processes: The current system relies heavily on


manual processes for tracking and managing IT support tickets, leading to
inefficiencies. This can result in delayed responses and prolonged resolution times
as IT staff manually sort and prioritize tickets without automated support.
2. Lack of Centralized Management: Without a centralized platform, data is often
scattered across different systems or maintained through ad-hoc methods like
emails and spreadsheets. This fragmentation makes it difficult to get a
comprehensive view of all tickets, track their progress, and generate accurate
reports.
3. Poor Communication and Transparency: The existing system provides limited
visibility for users into the status of their support tickets. Users often have to
follow up repeatedly to get updates, leading to frustration and decreased
satisfaction. IT staff also lack efficient tools to communicate updates and
resolutions back to users.
4. Inadequate Reporting and Analytics: The system lacks robust reporting and
analytics capabilities, making it challenging for administrators to monitor
performance, identify trends, and make data-driven decisions. This hinders the
ability to optimize support processes and improve overall service quality.

2.1.2 PROBLEM IDENTIFICATION

Access permission problems prevent users from reaching necessary files or


applications due to incorrect permissions or security settings. Printer issues, such as
unresponsive printers, stuck print jobs, or poor print quality, are often due to driver
issues, network problems, or hardware malfunctions like paper jams. Data recovery and
backup issues arise when users cannot recover lost data or when backup solutions fail due
to corrupted backups or software failures. Lastly, security concerns, including malware

5
infections, phishing attacks, or unauthorized access, pose significant risks and are often
due to lack of antivirus software or outdated security measures. Providing detailed
information in help desk tickets, such as specific error messages, steps already taken to
resolve the issue, and any relevant screenshots, can greatly assist the IT team in
diagnosing and resolving these problems efficiently.

2.1.3 PROPOSED SYSTEM

This proposed system will help users to easily generate tickets for the queries
while giving desired solution for the users. The solution to ticket raised will be given by
the specialized engineer according to the nature of the query. It will not only provide a
solution to the query but also reduce the timeline for resolving the queries for the better
working. When user generates a ticket for the query, the ticket will reflect into the
ticketing system of the IT coordinator by logging with his/her credentials. The tickets are
only visible to IT coordinator on the ticketing system unless & until it is assigned to the
engineer. IT coordinator then assigns the ticket to the engineer according to the nature of
the query. Also, it checks which engineer is specialized in solving these types of queries.
The ticket is then assigned to the engineer for the solution of the query with the given
timeline. The timeline given is based on the problem statement for which the query
should be resolved in given timeline only. Suppose, If the engineer is unable to solve the
query, then, the query gets passed on to the other engineer of the same specialization.
Other engineer of the same specialization takes down the work of solving the query
which is unresolved.

2.2 FEASIBILITY ANALYSIS

Conducting a feasibility analysis for an help desk ticketing system involves


evaluating various aspects to determine its practicality and potential benefits. Technical
feasibility assesses whether the organization's current IT infrastructure can support the
new system, including hardware, software, and network capabilities. Operational
feasibility examines how well the system will integrate with existing workflows and
improve efficiency, while also considering the training required for staff. Economic
feasibility evaluates the cost-effectiveness by comparing total costs (such as software

6
fees, implementation, and maintenance) against anticipated benefits like improved
productivity and reduced resolution times. Legal feasibility ensures compliance with data
protection laws and industry regulations, assessing data security measures and user
privacy protections.

Additionally, schedule feasibility analyzes the timeline for implementation, setting


realistic milestones to minimize disruption. Resource feasibility considers the availability
of skilled personnel, financial resources, and technical tools necessary for the system's
deployment and ongoing support. Risk feasibility identifies potential risks, such as staff
resistance or data migration issues, and develops mitigation strategies. A comprehensive
feasibility analysis provides a clear understanding of the ticketing system's practicality
and benefits, enabling informed decision-making and planning for successful
implementation.

2.2.1 OPERATIONAL FEASIBILITY

Operational feasibility for an help desk ticketing system evaluates whether the
proposed system will effectively integrate with the organization's current operations and
improve efficiency. This involves examining how the new system will fit into existing
workflows and processes, ensuring it aligns with the daily activities of the IT help desk
and other related departments. Key considerations include the system's user-friendliness,
the ease of incorporating it into routine tasks, and its potential to streamline problem
resolution processes. Additionally, operational feasibility assesses the system's ability to
handle the volume and complexity of support tickets the organization typically
encounters, ensuring it can meet current and future demands without causing disruptions.

Another critical aspect of operational feasibility is evaluating the training and support
required for staff to use the new system effectively. This includes analyzing the learning
curve associated with the new ticketing system and determining the resources needed for
comprehensive training programs. Ensuring that staff can quickly adapt to the new
system is essential for minimizing downtime and maintaining productivity during the
transition. Furthermore, operational feasibility involves assessing the potential for

7
improved customer satisfaction through faster response times and more efficient issue
resolution. By thoroughly evaluating these factors, the organization can ensure that the
new IT help desk ticketing system will enhance operational efficiency and support long-
term goals.

2.2.2 TECHNICAL FEASIBILITY

Technical feasibility for an help desk ticketing system assesses whether the
organization's current technology infrastructure can support the new system. This
involves evaluating the compatibility of existing hardware, software, and network
components with the proposed ticketing solution. Key considerations include ensuring
that servers, workstations, and other devices meet the system's requirements and that the
network bandwidth can handle the additional load without performance degradation.
Additionally, the feasibility study should examine the scalability of the system to
accommodate future growth, ensuring it can integrate seamlessly with other tools and
platforms already in use, such as email systems, customer relationship management
(CRM) software, and remote support tools.

Another crucial aspect of technical feasibility is the system's reliability and security. This
includes assessing the robustness of the ticketing system against potential technical
failures, data breaches, and cyber threats. It is essential to ensure that the system has
adequate security measures, such as encryption, user authentication, and regular security
updates, to protect sensitive data. The analysis should also consider the ease of
maintenance and support, including the availability of technical support from the vendor
and the complexity of system upgrades and patches. By thoroughly evaluating these
technical aspects, the organization can determine whether the new ticketing system is
capable of operating effectively within its existing technical environment and maintaining
the desired level of performance and security.

2.2.3 ECONOMICAL FEASIBILITY

Economic feasibility for an IT help desk ticketing system involves a thorough


analysis of the costs and financial benefits associated with implementing the system.

8
Initial costs include software purchase or subscription fees, hardware upgrades if
necessary, and implementation expenses such as consulting and customization.
Additionally, there are ongoing costs to consider, such as maintenance, support, and
potential future upgrades. These costs must be weighed against the organization's budget
to ensure the investment is financially viable. A detailed cost-benefit analysis should be
conducted, considering both direct financial impacts and indirect benefits like improved
productivity and reduced downtime.

On the benefits side, economic feasibility assesses the potential financial gains from
improved efficiency and productivity. A well-implemented ticketing system can lead to
faster issue resolution, reducing the time employees spend on troubleshooting and
increasing overall productivity. This can translate into cost savings and a higher return on
investment. Moreover, better tracking and management of IT issues can prevent minor
problems from escalating into major disruptions, potentially saving significant repair and
recovery costs. By comparing these benefits against the initial and ongoing expenses, the
organization can determine whether the financial outlay for the new system is justified
and likely to result in a positive financial outcome.

Total Line of Code: 4237

Number of Tables: 4

Number of Database: 1

Time Line Chart:

9
CHAPTER 3

SOFTWARE REQUIREMENTS SPECIFICATION


3.1 INTRODUCTION

The following section provides an overview of the derived Software Requirements


Specification (SRS) for the subject Helpdesk ticketing system. To begin with, the purpose
of the document is presented and its intended audience outlined. Subsequently, the scope
of the project specified by the document is given with a particular focus on what the
resultant software will do and the relevant benefits associated with it. The nomenclature
used throughout the SRS is also offered. To conclude, a complete document overview is
provided to facilitate increased reader comprehension and navigation.

3.2 REQUIREMENT ANALYSIS

Requirement analysis for an help desk ticketing system involves gathering and
documenting the needs and expectations of stakeholders to ensure the system meets
organizational goals and user needs. This process includes identifying functional and
non-functional requirements, engaging with stakeholders, and prioritizing the features
and capabilities needed for the system to be effective. Here’s an overview of the key
components involved in requirement analysis:

10
1. Ticket Management: The system must allow for the creation, tracking, and
resolution of support tickets. This includes features like ticket categorization,
prioritization, assignment, and status updates.
2. User Management: It should support user authentication and role-based access
control to ensure that users have appropriate access to features and data.
3. Knowledge Base: A repository for common issues and their resolutions, enabling
users and IT staff to find solutions quickly.
4. Reporting and Analytics: Tools to generate reports on ticket volume, response
times, resolution times, and other key performance indicators (KPIs) to help
manage and improve the support process.
5. Integration Capabilities: The ability to integrate with other systems and tools,
such as email, chat, CRM systems, and remote support tools.
3.2.1 PURPOSE
The purpose of an IT help desk ticketing system is to streamline and improve the
management of technical support requests within an organization. This system serves
multiple essential functions, including:

1. Efficient Issue Tracking and Management: The ticketing system provides a


centralized platform for logging, tracking, and managing support requests. It
ensures that all issues are recorded systematically, allowing IT staff to monitor
their progress from initiation to resolution. This helps in preventing issues from
being overlooked or forgotten.
2. Improved Communication and Coordination: By organizing support requests
into tickets, the system facilitates better communication between users and IT
staff. It allows for clear documentation of the problem, the steps taken to resolve
it, and any ongoing updates. This transparency helps in setting user expectations
and keeps everyone informed about the status of their requests.

3.2.2 SCOPE

11
The scope of an help desk ticketing system encompasses a wide range of
functionalities and activities designed to manage and streamline IT support within an
organization. Below are the key components included in the scope:

1. Ticket Management:

 Creation, assignment, tracking, and resolution of support tickets.

 Categorization and prioritization of tickets based on urgency and impact.

 Escalation procedures for unresolved or critical issues.

2. User Management:

 Authentication and authorization mechanisms.

 Role-based access control to ensure appropriate access levels for users, IT


staff, and administrators.

3. Communication Tools:

 Integrated messaging and email notifications to keep users and IT staff


informed about ticket status updates and changes.

 Automated alerts and reminders for pending or overdue tickets.

3.2.3 OVERVIEW

An help desk ticketing system is a centralized platform designed to streamline and


manage technical support requests within an organization. It enables efficient tracking,
categorization, prioritization, and resolution of support tickets, enhancing communication
between users and IT staff. Key features include user authentication, role-based access
control, automated notifications, a knowledge base for self-service, and robust reporting
and analytics tools. The system supports scalability, usability, performance, security, and
reliability, ensuring it can handle growth and maintain high service levels. By improving
issue resolution times and optimizing resource allocation, the system ultimately enhances
user satisfaction and operational efficiency.

12
3.2.4 GENERAL DESCRIPTIONS

An help desk ticketing system is a comprehensive software solution designed to


centralize and streamline the management of technical support requests within an
organization. Users can submit support tickets for various IT-related issues, such as
software glitches, hardware failures, and network problems. The system tracks these
tickets from initiation to resolution, ensuring that all issues are documented and
addressed systematically. Key functionalities include ticket creation, categorization,
prioritization, assignment, and escalation. Additionally, it supports user management with
authentication and role-based access controls, ensuring appropriate access to system
features and data. Integrated communication tools, such as messaging and email
notifications, facilitate clear and timely interactions between users and IT staff, keeping
everyone informed about the status and progress of their support requests.

The system also features a knowledge base, offering a repository of solutions for
common issues, which empowers users to find answers independently and reduces the
volume of support requests. Robust reporting and analytics tools provide insights into
ticket volumes, response times, and resolution times, helping to identify trends and areas
for improvement. Integration capabilities with other IT systems, such as CRM and ERP,
enhance the overall functionality and streamline workflows.

3.2.4.1 PRODUCT FUNCTIONS

The functions of an help desk ticketing system can be categorized into several key areas,
each serving to streamline and enhance the management of technical support requests.
These functions include:

1. Ticket Creation and Logging:

 Users can easily submit support requests by creating tickets, providing


details about their technical issues or queries.

13
 Tickets are logged into the system with relevant information such as the
user's contact details, issue description, and priority level.

2. Ticket Categorization and Prioritization:

 Tickets are categorized based on the type of issue, such as software,


hardware, or network problems.

 Priority levels are assigned to tickets to ensure that critical issues are
addressed promptly, while less urgent matters are handled accordingly.

3. Ticket Assignment and Tracking:

 Tickets are assigned to appropriate IT staff members or teams based on


their expertise and availability.

 IT staff can track the progress of each ticket, monitor its status, and update
relevant information as needed.

3.2.4.2 USER CHARACTERISTICS


Understanding the characteristics of users who interact with an help desk ticketing
system is essential for designing a system that meets their needs effectively. Here are
some key user characteristics:

1. Technical Proficiency:

 Users may vary in their technical knowledge and abilities. Some may be
experienced and capable of troubleshooting minor issues independently,
while others may require more guidance and support.

2. Communication Preferences:

14
 Users may have different preferences for how they prefer to communicate
with the IT help desk, whether through email, phone calls, chat, or self-
service portals. Understanding these preferences helps tailor the system's
communication channels accordingly.

3. Urgency and Patience:

 Users may exhibit varying levels of urgency when submitting support


requests, depending on the severity of their issues and their expectations
for resolution times. Some may be patient and understanding, while others
may require immediate assistance.

3.2.4.3 GENERAL CONSTRAINTS

When implementing an helpdesk ticketing system, several general constraints


must be considered to ensure successful deployment and operation. These constraints can
influence the design, functionality, and overall performance of the system. Here are some
key general constraints:

1. Budget Constraints:

 Funding Limitations: The budget allocated for the implementation,


maintenance, and operation of the ticketing system may be limited,
affecting the choice of software, hardware, and the extent of customization
possible.

 Cost Management: Ongoing costs for subscriptions, licenses, and support


must be managed within the allocated budget.

2. Time Constraints:

15
 Implementation Timeline: The project must be completed within a
specific timeframe, which can limit the scope of the system and the extent
of customizations and integrations.

 Training and Transition: Adequate time must be allocated for training


users and transitioning from the old system to the new one, ensuring
minimal disruption to operations.

3. Technical Constraints:

 Compatibility: The new system must be compatible with existing


hardware, software, and network infrastructure to avoid additional costs
and complexities.

 Scalability: The system must be scalable to handle growth in the number


of users and support requests without performance degradation.

 Integration: The ability to integrate with existing systems (e.g., CRM,


ERP, email) is essential for seamless operations.

3.2.5 FUNCTIONAL REQUIREMENTS

Functional requirements for an help desk ticketing system outline the specific
behaviors, functions, and capabilities that the system must possess to effectively manage
technical support requests. Here are the key functional requirements:

1. Ticket Management:

 Ticket Creation: Users can create tickets to report IT issues or requests


for service.

 Ticket Tracking: The system tracks the status and progress of each ticket
from creation to resolution.

16
 Ticket Categorization: Tickets can be categorized based on the type of
issue (e.g., software, hardware, network).

 Ticket Prioritization: Tickets can be assigned priority levels (e.g., high,


medium, low) based on the urgency and impact of the issue.

 Ticket Assignment: Tickets can be assigned to specific IT staff members


or teams based on their expertise and availability.

 Ticket Escalation: Automated escalation procedures for tickets that are


not resolved within a specified timeframe.

2. User Management:

 Authentication and Authorization: Secure login for users with role-


based access control to ensure appropriate access levels.

 User Profiles: Management of user profiles, including contact information


and history of support requests.

3. Communication Tools:

 Internal Messaging: Communication between users and IT staff within


the ticketing system.

 Email Notifications: Automated email notifications for ticket updates,


assignments, and resolutions.

 Alerts and Reminders: System-generated alerts and reminders for


pending or overdue tickets.

3.2.5.1 TECHNICAL ISSUES

Implementing and maintaining an IT help desk ticketing system can encounter


several technical issues. Addressing these issues is crucial for ensuring the system's
reliability, performance, and user satisfaction. Here are some common technical issues:

17
1. Integration Challenges:

 System Compatibility: Integrating the ticketing system with existing IT


infrastructure, such as CRM, ERP, and other enterprise systems, can be
complex and may require custom development.

 Data Synchronization: Ensuring real-time data synchronization between


the ticketing system and other integrated applications to prevent data
discrepancies.

2. Performance Issues:

 Scalability: As the number of users and tickets grows, the system must
scale effectively without performance degradation. This can be
challenging if the system is not designed for high scalability.

 Response Times: Slow response times for ticket creation, updates, or


searches can frustrate users and reduce productivity.

3. Security Concerns:

 Data Protection: Ensuring that sensitive user data and support ticket
information are adequately protected against unauthorized access and
breaches.

 Compliance: Meeting regulatory requirements such as GDPR, CCPA, or


other data protection laws can be challenging, especially for organizations
operating in multiple jurisdictions.

3.2.5.2 RISK ANALYSIS


Implementing and maintaining an helpdesk ticketing system can encounter several
technical issues. Addressing these issues is crucial for ensuring the system's reliability,
performance, and user satisfaction. Here are some common technical issues:

1. Integration Challenges:

18
 System Compatibility: Integrating the ticketing system with existing IT
infrastructure, such as CRM, ERP, and other enterprise systems, can be
complex and may require custom development.

 Data Synchronization: Ensuring real-time data synchronization between


the ticketing system and other integrated applications to prevent data
discrepancies.

2. Performance Issues:

 Scalability: As the number of users and tickets grows, the system must
scale effectively without performance degradation. This can be
challenging if the system is not designed for high scalability.

 Response Times: Slow response times for ticket creation, updates, or


searches can frustrate users and reduce productivity.

3. Security Concerns:

 Data Protection: Ensuring that sensitive user data and support ticket
information are adequately protected against unauthorized access and
breaches.

 Compliance: Meeting regulatory requirements such as GDPR, CCPA, or


other data protection laws can be challenging, especially for organizations
operating in multiple jurisdictions.

3.2.6 INTERFACE REQUIREMENTS


Interface requirements for an help desk ticketing system define how users
interact with the system, ensuring usability, efficiency, and a positive user experience.
These requirements cover various aspects such as user interface design, accessibility, and
integration with other systems. Here are the key interface requirements:

19
1. User Interface Design
Requirement: The system must have an intuitive, user-friendly interface.

 Navigation: Clear and straightforward navigation menus with logical groupings


of functions.
 Consistency: Consistent design elements such as fonts, colors, and icons to
enhance user familiarity and ease of use.
 Responsiveness: Responsive design to ensure usability across different devices,
including desktops, tablets, and smartphones.
 Dashboard: A customizable dashboard providing users with an overview of their
tickets, status updates, and notifications.

2. Accessibility
Requirement: The interface must be accessible to all users, including those with
disabilities.

 Compliance: Adherence to accessibility standards such as WCAG (Web Content


Accessibility Guidelines).
 Keyboard Navigation: Full functionality accessible via keyboard shortcuts.
 Screen Reader Compatibility: Compatibility with screen readers and other
assistive technologies.
 Text Alternatives: Text alternatives for non-text content, such as images and
icons.

3.2.6.1 HARDWARE REQUIREMENTS

The hardware requirements of a Helpdesk ticketing system will depend on several


factors, including the size of the operation, the number of users, and the specific features
and functions of the software.
Here are some general hardware requirements that may be necessary:
Computer System: A computer system is essential for running the helpdesk ticketing
system. The computer system should have enough processing power and memory to

20
support the software.
Server: If the system is going to be used by multiple users, a server may be necessary to
manage the data and allow for simultaneous access to the software.
Networking Equipment: If the system is going to be used by multiple users, networking
equipment such as routers and switches may be necessary to connect the computers and
the server.
Storage Devices: Adequate storage devices such as hard drives or solid-state drives
(SSDs) are required to store the data generated by the system.
Backup Devices: It is important to have backup devices such as external hard drives or
cloud storage to ensure that the data is secure and can be recovered in case of a system
failure.

It is important to note that these hardware requirements are not exhaustive and
may vary depending on the specific needs of the system.

 Processor : Any processor after Pentium 4


 Internal Storage : 40GB to 80GB
 RAM : 2GB
 Internet speed : Standard speed

3.2.6.2 SOFTWARE REQUIREMENTS

The software requirements document is the specification of the system. It should include
both a definition and a specification of requirements. It is a set of what the system should
do rather than how it should do it. The software requirements provide a basis for creating
the software requirements specification.

 IDE : Visual Studio


 Front End : HTML5,CSS,JAVASCRIPT
 Back End : PHP, ,XAMPP Server
 Data base : MYSQL

3.2.7 OTHER FUNCTIONAL ATTRIBUTES

21
In addition to the key functional requirements previously mentioned, here are
additional functional requirements that an IT help desk ticketing system should meet to
ensure comprehensive functionality and optimal performance:

1. Workflow Automation
Requirement: Automate routine processes to enhance efficiency.

 Automated Ticket Routing: Automatically route tickets to the appropriate IT


staff or team based on predefined criteria such as issue type, priority, or location.
 Auto-Response: Automated responses to acknowledge ticket receipt and provide
initial instructions or information.
 SLA-Based Escalation: Automatically escalate tickets that are nearing or have
exceeded their Service Level Agreement (SLA) timeframes.

2. Service Level Agreement (SLA) Management


Requirement: Manage and monitor SLAs to ensure timely resolution of issues.

 SLA Definition: Define SLAs with specific response and resolution time targets.
 SLA Tracking: Track SLA compliance and notify IT staff of impending
breaches.
 SLA Reporting: Generate reports on SLA performance to identify areas for
improvement.

3.2.7.1 SECURITY
Security is a critical aspect of any software solution, especially for a Helpdesk
ticketing system that deals with sensitive customer and business data. Here are some
security measures that a Helpdesk ticketing system have:
Authentication and Authorization: The system should require strong authentication to
ensure that only authorized users can access it. Multi-factor authentication is a good
practice to enhance security.
Access control: The system should have access controls in place to restrict access to

22
sensitive data and functionalities. Access should be granted based on the principle of least
privilege.
Regular security updates: The system should be regularly updated to ensure that
security patches are installed to address known vulnerabilities.

3.2.7.2 RELIABILITY
Reliability is crucial for any software solution, especially for a Helpdesk ticketing
system where any disruption can result in significant consequences. Here are some
measures that a Helpdesk ticketing system should have to ensure reliability:
Fault-tolerance: The system should have redundancy and failover mechanisms to ensure
that critical functionalities remain available in the event of hardware or software failure.
Scalability: The system should be able to handle increasing volumes of data and users as
the users grows without impacting the system's performance.
Regular backups: The system should have regular backups of data and configurations to
ensure that data can be restored in the event of a system failure or other disaster.

3.2.7.3 MAINTIANABILITY

Maintainability is an essential attribute of any software system, including a


Helpdesk ticketing system. Here are some measures that a Helpdesk ticketing system
should have to ensure maintainability:
Code quality: The system should have well-written and well-documented code that is
easy to read and maintain by developers.
Modularity: The system should be designed with a modular architecture, allowing
developers to modify or replace specific components without impacting the rest of the
system.
Standardized development practices: The system should follow standardized
development practices, including code reviews, testing, and documentation, to ensure that
the system is easy to maintain.
Version control: The system should use version control to track changes and provide a
history of modifications made to the system.

23
3.2.7.3 USABILITY

Usability is a quality attribute that assesses how easy user interfaces are to use.
The word usability also refers to methods for improving ease of use during the design
process. On the testing usability is a necessary condition for survival. Website design can
be opened in any of the devices like PC and Laptops because the helpdesk ticketing
system was designed only for this company.
Intuitive Onboarding: Ensure a user-friendly and intuitive onboarding process for
donors, allowing them to easily register, understand system functionalities, and
efficiently list surplus food items.
Dashboard Clarity: Design a clear and concise donor dashboard that provides real-time
insights into donation status, pickup schedules, and overall engagement metrics.
User-Friendly Request Interface: Create a straightforward and visually appealing
interface for submitting food requests, guiding users through the process with clear
instructions.
Transparent Prioritization: Communicate the prioritization algorithm transparently to
users, ensuring they understand how the system determines the urgency and relevance of
their requests.
Automated Confirmation: Implement an automated confirmation system to
acknowledge users when their requested food items are available, enhancing
communication and user satisfaction.

24
CHAPTER 4

SYSTEM ANALYSIS

4.1 INTRODUCTION

System analysis is a critical phase in the development of an help desk ticketing


system. It involves a detailed examination of the current processes, identification of user
requirements, and evaluation of the technical and operational feasibility of the proposed
system. The primary objective of system analysis is to understand the existing workflow,
identify inefficiencies, and propose solutions that align with the organizational goals and
user needs. This phase sets the foundation for designing a robust, scalable, and user-
friendly ticketing system that enhances the efficiency of IT support services and
improves user satisfaction.

4.2 USE CASES AND USE CASE DIAGRAM


Use cases are scenarios that describe how a user or actor interacts with a system
in order to achieve a specific goal. A use case diagram is a graphical representation of
25
these use cases and how they relate to each other. Use cases and use case diagrams are an
important part of the requirements gathering process for software development, as they
help to identify the features and functionalities that the system must support. Here are
some examples of use cases and use case diagrams for a food distribution management
system

26
Fig 4.1: Use Case Diagram

27
Fig 4.2: Admin Use Case Diagram

28
4.3 SEQUENCE DIAGRAM
Sequence diagrams describe how and in what order the objects in a system
function. These diagrams are widely used by businessmen and software developers to
document and understand requirements for new and existing systems.

Fig 4.3: SEQUENCE DIAGRAM

4.4 ACTIVITY DIAGRAM

An activity diagram is a type of UML (Unified Modeling Language)


diagram that is used to model the flow of activities or processes within a system or a
specific use case. It is a graphical representation that shows the steps, actions, and
decisions involved in completing a particular task or activity.

29
Fig 4.4: ACTIVITY DIAGRAM

30
4.5 CLASS DIAGRAM

Fig 4.5: CLASS DIAGRAM

31
CHAPTER 5

SYSTEM DESIGN

5.1 INTRODUCTION

System design is a critical phase where the system's architecture, components,


interfaces, and data structures are defined based on the requirements gathered during the
system analysis phase. The goal is to create a detailed blueprint that guides the
development and implementation of the help desk ticketing system.

The system design phase translates the requirements gathered during the analysis phase
into a detailed blueprint that guides the development of the help desk ticketing system.
By defining the architecture, database schema, user interfaces, application logic,
integrations, and security measures, the design ensures that the final system will be
robust, scalable, and secure, meeting the needs of all stakeholders.

5.2 ARCHITECTURAL DESIGN


The architecture of the IT help desk ticketing system should be designed to ensure
scalability, reliability, and performance. A typical architecture might follow a multi-tier
design, consisting of:

 Presentation Tier: Handles the user interface and user interactions.


 Application Tier: Contains the business logic and processes requests from the
presentation tier.
 Data Tier: Manages the data storage, retrieval, and management.

32
Fig 5.2: Architectural design

5.3 DATA DESIGN

Data design is a crucial aspect of system design that involves defining the
structure, organization, and storage of data to ensure efficient data management, retrieval,
and integrity. For an IT help desk ticketing system, the data design phase includes
creating a detailed data model, defining database schemas, establishing relationships
between data entities, and ensuring data normalization and integrity.

5.4 ER DIAGRAM

An Entity-Relationship (ER) diagram is a visual representation of the entities


within a system and the relationships between them. Below is a detailed description of

33
the ER diagram for an IT Help Desk Ticketing System, which includes entities such as
Admin, User, Department, Ticket, SLA, and Action

FIG 5.4 ER DIAGRAM

5.5 USER INTERFACE DESIGN

34
The issue of usability is an important issue that must be addressed during the design
of the user interface. Though the system is not intensively used, it is still important
to try to reduce the time it takes to carry out a task. While it is perceivable that
cutting the time it takes to carry out a task by fractions of a second may save
certain companies, employing hundreds of people carrying out the same task, a lot
of money, it simply won’t be the case at spell global services. More importantly
for the company is the need for the interface to be designed so that learning the
system is simple and carrying out day-to-day tasks is more efficient than the
current system. Many web based systems fail to combat basic usability issues and
end up being less efficient than their predecessors.

35
CHAPTER 6

IMPLEMENTATION

INTRODUCTION

Implementation refers to the process of translating a design or plan into a


functional system or software application. It involves actually writing the code and
building the system according to the specified requirements and design specifications.
In the context of software development, implementation is the stage where developers
write the actual program logic, create the user interface, integrate different modules and
components, and establish the necessary connections with databases, APIs, or external
services.It is the phase where the software application comes to life.
During the implementation phase, developers follow the design and architectural
guidelines provided by the system design and make use of programming languages,
frameworks, and tools to build the software solution. They write the code, define classes,
methods, and functions, and handle data processing and manipulation.

LIST OF MODULES

 Admin
 Dashboard
 Sub-Admin
 department
 Tickets
 Reports
 View ticket
 User

36
ADMIN

The Admin module is designed to provide comprehensive control and oversight


of the IT Help Desk Ticketing System, ensuring that it operates efficiently and
effectively. Through robust user management, detailed reporting, and stringent security
measures, the Admin module empowers administrators to maintain the system's integrity,
optimize IT support processes, and improve overall user satisfaction.

Fig 6.1: Admin login

DASHBOARD

In this section, admin can briefly view total sub-admin, all tickets received, Total New
Tickets, Total In-Process Tickets, Total On-Hold Tickets, Total Tickets Resolved, Total
department.

37
Fig 6.2: Dashboard

SUB-ADMIN

In this section, admin can manage sub-admins (add/delete/update).

Fig 6.3: Sub admin

38
DEPARTMENT

In this section, admin can manage department(add/delete). It allows admins to


create, edit, and view department details, ensuring that users and tickets are appropriately
assigned. This module enables the organization to structure IT support by associating
users with specific departments, facilitating better tracking and resolution of tickets, and
ensuring that support resources are allocated effectively.

Fig 6.4: department

TICKETS:

In this section, admin can manage tickets and resolved user’s queries. This module allows
users to submit new tickets detailing their IT issues, track the status of their tickets, and
receive updates. IT staff can access and update these tickets, assign priority levels,
provide resolutions, and close tickets upon completion. Administrators can oversee all
tickets, ensuring efficient handling and timely resolution of support requests, thereby
maintaining smooth IT operations and enhancing user satisfaction.

39
Fig 6.5: Tickets

REPORTS:

In this section, admin can view the and check tickets details in a particular period. It
includes features for creating reports on ticket resolution times, ticket volumes by
department, and IT staff performance metrics. The module offers real-time dashboards,
customizable report templates, and options to export reports in various formats such as
PDF and Excel, enabling data-driven decision-making and effective monitoring of IT
support operations.

40
Fig 6.6: Reports

View ticket:

Users can view and update the ticket. The View Ticket module allows users, IT staff, and
administrators to access detailed information about individual support tickets within the
IT Help Desk Ticketing System. Users can view the status, priority, description, and
updates related to their submitted tickets, enabling them to track the progress of their
issues. IT staff can access all assigned tickets, seeing specific details needed for
troubleshooting and resolution. Administrators can view any ticket in the system to
monitor the support process, reassign tickets, and ensure timely resolution.

41
Fig 6.7: View ticket

USERS:

User can raise the Ticket

Check the Ticket History

Users can Update the Ticket

42
Fig 6.8: Users

43
CHAPTER 7

TESTING
7.1 INTRODUCTION

Testing is a critical phase in the development lifecycle of the Help Desk Ticketing
System, ensuring the system's functionality, reliability, and performance meet the
specified requirements. It involves various testing methods such as unit testing,
integration testing, system testing, and user acceptance testing to identify and rectify
defects, validate that the system performs as expected under different conditions, and
confirm that the end-user experience aligns with the intended use. Comprehensive testing
helps to minimize risks, enhance the system's robustness, and ensure a smooth
deployment and operation in a live environment.

7.2 TEST PLAN

A Test Plan refers to a detailed document that catalogs the test strategy,
objectives, schedule, estimations, deadlines, and the resources required for completing
that particular project. A Software testing strategy provides a road map for the software
developer. Testing is set of activity that can be planned in advance and connected
systematically.

Introduction: This section provides an overview of the system and the purpose of the
test plan, including the testing objectives, scope, and timeline.

Test objectives: This section outlines the goals and objectives of the testing effort,
including what the testing should achieve and what the testers are looking for.

Testing scope: This section defines the scope of the testing effort, including what areas
of the system will be tested, what functionalities will be tested, and what testing methods
will be used.

Testing approach: This section describes the testing approach, including the types of
testing that will be performed, the testing tools and techniques that will be used, and the

44
roles and responsibilities of the testing team.

Test environment: This section outlines the hardware, software, and other resources that
will be needed to conduct the testing, including the testing environment, test data, and
test cases

7.3 UNIT TESTING

Unit testing is a type of testing that focuses on testing individual units or


components of a software system, such as functions, classes, or modules, in isolation
from the rest of the system. Here are the key elements of unit testing for a food
distribution management system:
Test cases: The first step in unit testing is to define test cases for each unit or
component. Each test case should define the input parameters and expected output of the
unit being tested.
Test environment: The next step is to set up a test environment that is isolated from the
rest of the system. This can be done using mocking frameworks or other tools to simulate
dependencies and external systems.
Test execution: The actual testing involves running the test cases on each unit or
component, using the defined test environment. The results of each test case should be
recorded and analyzed.
Test coverage: It is important to ensure that all units and components of the system are
tested, and that each test case covers all possible inputs and outputs.
Test reporting: Test results should be recorded and reported, including any failures or
errors encountered during testing. These results can be used to identify and fix any
defects in the system.

45
Fig 7.3 Unit testing

7.4 INTEGRATION TESTING

Integration testing is a systematic technique for construction the program structure


while at the same time conducting tests to uncover errors associated with interfacing. i.e.,
integration testing is the complete testing of the set of modules which makes up the
product. The objective is to take untested modules and build a program structure tester
should identify critical modules. Critical modules should be tested as early as possible.
One approach is to wait until all the units have passed testing, and then combine them
and then tested. This approach is evolved from unstructured testing of small programs.
Another strategy is to construct the product in increments of tested units.

Integration points: The first step in integration testing is to identify the integration
points between the different modules or components of the system. This could include
interfaces, APIs, or data exchanges between modules.
Test cases: For each integration point, test cases should be developed that cover all
possible scenarios and inputs. This may include testing data flows, error handling, and
system behavior under different conditions.
Test environment: A test environment should be set up that mimics the production
46
environment, including all necessary hardware, software, and data.
Test execution: The actual testing involves running the integration tests in the defined
test environment. This may include manual or automated testing, and results should be
recorded and analyzed.
Test coverage: It is important to ensure that all integration points are tested, and that
each test case covers all possible inputs and outputs.

Fig 7.5 Integration Testing

7.5 SYSTEM TESTING

System Testing is a type of software testing that is performed on a complete


integrated system to evaluate the compliance of the system with the corresponding
requirements. In system testing, integration testing passed components are taken as input.
The goal of integration testing is to detect any irregularity between the units that are
integrated together. System testing detects defects within both the integrated units and the
47
whole system.

The result of system testing is the observed behaviour of a component or a system when
it is tested. System Testing is carried out on the whole system in the context of either
system requirement specifications or functional requirement specifications or in the
context of both. System testing tests the design and behaviour of the system and also the
expectations of the customer. It is performed to test the system beyond the bounds
mentioned in the software requirements specification (SRS). System Testing is basically
performed by a testing team that is independent of the development team that helps to test
the quality of the system impartial.

7.6 VALIDATION TESTING

Validation testing is a type of testing that focuses on verifying that the helpdesk
ticketing system meets the requirements and expectations of its users and stakeholders.
Here are the key elements of validation testing for a food distribution management
system:

Requirements: The first step in validation testing is to ensure that all requirements for
the system have been captured and documented. This includes both functional and non-
functional requirements.
Test cases: For each requirement, test cases should be developed that cover all possible
scenarios and inputs. This may include testing data flows, error handling, and system
behavior under different conditions.
Test environment: A test environment should be set up that mimics the production
environment, including all necessary hardware, software, and data.
Test execution: The actual testing involves running the validation tests in the defined
test environment. This may include manual or automated testing, and results should be
recorded and analyzed.
Test coverage: It is important to ensure that all requirements are tested, and that each test
case covers all possible inputs and outputs.
Test reporting: Test results should be recorded and reported, including any failures
or errors encountered during testing. These results can be used to identify and fix any

48
defects in the system.

User acceptance testing: In addition to validation testing by the development team, it


is important to involve users and stakeholders in user acceptance testing to ensure that
the system meets their requirements and expectation.

Fig No 6.3: Validation testing

49
Fig No 6.4: Validation testing for Admin

50
CHAPTER 8

CONCLUSION AND FUTURE ENHACEMENTS

CONCLUSION
In conclusion, the IT Help Desk Ticketing System is designed to streamline and
enhance the efficiency of managing support requests within an organization. Through
robust features such as user and ticket management, SLA enforcement, and
comprehensive reporting, the system ensures timely and effective resolution of issues.
Rigorous testing phases ensure that the system is reliable, secure, and performs optimally
under various conditions. By implementing this system, organizations can significantly
improve their IT support operations, leading to higher user satisfaction, better resource
management, and overall enhanced productivity.

FUTURE ENHANCEMENTS

Future enhancements for the IT Help Desk Ticketing System could focus on
several key areas to further improve its functionality, user experience, and adaptability to
evolving technological trends. Potential enhancements include:

AI and Machine Learning Integration: Implement AI-driven features such as


predictive analytics for ticket prioritization, automated resolution suggestions based on
historical data, and intelligent chatbots for immediate user support.

Mobile Application: Develop a mobile app version of the system to provide on-the-go
access for users and IT staff, enabling them to manage tickets, view reports, and receive
notifications from their smartphones or tablets.

Advanced Analytics and Reporting: Introduce more sophisticated analytics capabilities,


such as real-time dashboards, customizable reports, and trend analysis to provide deeper
insights into system performance and user behavior.

51
Enhanced User Interface: Continuously improve the user interface for better usability
and accessibility, incorporating user feedback to streamline navigation and enhance the
overall user experience.
Integration with Other Systems: Expand integration capabilities with other enterprise
systems such as customer relationship management (CRM), enterprise resource planning
(ERP), and third-party communication tools to create a more cohesive IT ecosystem.

BIBLIOGRAPHY

52
1. Arora, A., & Singh, P. (2018). "Implementing IT Help Desk Systems: A
Comprehensive Guide". Springer Publishing.
 This book provides an in-depth look at the design and implementation of
IT help desk systems, offering practical insights and case studies from
various organizations.

2. Johnson, M. (2017). "Service Level Agreements: Practical Guide for IT


Managers". Wiley.

 This guide covers the development and management of Service Level


Agreements (SLAs), which are critical for ensuring quality and timely IT
support services.

3. Smith, J., & Brown, K. (2019). "Enhancing IT Support through


Automation". McGraw-Hill Education.

 This resource explores the role of automation in IT support, including best


practices for integrating automated solutions into existing help desk
systems.

4. Basu, S., & Gupta, R. (2020). "AI and Machine Learning in IT Service
Management". Pearson.

 A detailed examination of how artificial intelligence and machine learning


can transform IT service management, including practical applications and
future trends.

5. IEEE Computer Society. (2021). "IEEE Standard for Software and Systems
Engineering—Software Testing". IEEE Std 829-2008.

 This standard outlines best practices and methodologies for software


testing, ensuring reliability and effectiveness of IT systems.

APPENDIX A - SCREENSHOTS

53
A[1]: Admin Login

A[2]: Dashboard

54
A[3]: Add User

A[4]: Reports

55
A[5]: Department

A[6]: View Ticket

56
APPENDIX B - TABLES

T[1]: Admin Table

PRIMARY KEY: Email

DESCRIPTION: This table contains Admin information

S.NO FIELD NAME DATA TYPE SIZE CONSTRAINT

1 ID int 10 NOT NULL

2 AdminName Varchar 120 NOT NULL

3 UserName Varchar 120 NOT NULL

4 MobileNumber Bigint 10 NOT NULL

5 Email Varchar 120 PRIMARY KEY

6 Password Varchar 120 NOT NULL

6 AdminRegdate timestamp - NOT NULL

57
[T2]: Tickets Table

PRIMARY KEY:ticketid

DESCRIPTION: This table contains tickets information

S.NO FIELD NAME DATA SIZE CONSTRAI


TYPE NT
1 ticketid int 10 PRIMARY
KEY
2 Assigned to int 10 NOT NULL

3 UpdatedDate datetime - NOT NULL

4 CreationDate timestamp - NOT NULL

58
T[3]: Department Table

PRIMARY KEY: departmentid

DESCRIPTION: This table contains department information

S.NO FIELD NAME DATA TYPE SIZE CONSTRAINT

1 departmentid int 10 PRIMARY


KEY

1 Name varchar 120 NOT NULL

2 Description varchar 120 NOT NULL

3 createddate datetime - NOT NULL

4 updateddate datetime - NOT NULL

5 closeddate datetime - NOT NULL

T[4]: User Table

PRIMARY KEY: id

59
DESCRIPTION: This table contains User information

S.NO FIELD NAME DATA SIZE CONSTRAINT


TYPE
1 userid Number 50 PRIMARY KEY

2 username varchar 50 NOT NULL

3 emailid varchar 50 NOT NULL

4 password varchar 50 NOT NULL

APPENDIX C - SAMPLE CODING


Index.php
<?php

60
include 'init.php';
if(!$users->isLoggedIn()) {
header("Location: login.php");
} else {
header("Location: ticket.php");
}
include('inc/header.php');
$user = $users->getUserInfo();
?>
<title>Helpdesk System with PHP & MySQL</title>
<script src="js/jquery.dataTables.min.js"></script>
<script src="js/dataTables.bootstrap.min.js"></script>
<link rel="stylesheet" href="css/dataTables.bootstrap.min.css" />
<script src="js/general.js"></script>
<script src="js/tickets.js"></script>
<link rel="stylesheet" href="css/style.css" />
<?php include('inc/container.php');?>
<div class="container">
<div class="row home-sections">
<h2>Helpdesk System</h2>
<?php include('menus.php'); ?>
</div>
<div class="">
<p>View and manage tickets that may have responses from support
team.</p>

<div class="panel-heading">
<div class="row">
<div class="col-md-10">
<h3 class="panel-title"></h3>
</div>

61
<div class="col-md-2" align="right">
<button type="button" name="add"
id="createTicket" class="btn btn-success btn-xs">Create Ticket</button>
</div>
</div>
</div>
<table id="listTickets" class="table table-bordered table-striped">
<thead>
<tr>
<th>S/N</th>
<th>Ticket ID</th>
<th>Subject</th>
<th>Department</th>
<th>Created By</th>
<th>Created</th>
<th>Status</th>
<th></th>
<th></th>
<th></th>
</tr>
</thead>
</table>
</div>
<?php include('add_ticket_model.php'); ?>
</div>
<?php include('inc/footer.php');?>
<?php

class Department extends Database {

private $departmentsTable = 'hd_departments';

62
private $dbConnect = false;
public function __construct(){
$this->dbConnect = $this->dbConnect();
}
public function listDepartment(){

$sqlQuery = "SELECT id, name, status


FROM ".$this->departmentsTable;

if(!empty($_POST["search"]["value"])){
$sqlQuery .= ' (id LIKE "%'.$_POST["search"]["value"].'%"
';
$sqlQuery .= ' OR name LIKE "%'.$_POST["search"]
["value"].'%" ';
$sqlQuery .= ' OR status LIKE "%'.$_POST["search"]
["value"].'%" ';
}
if(!empty($_POST["order"])){
$sqlQuery .= ' ORDER BY '.$_POST['order']['0']['column'].'
'.$_POST['order']['0']['dir'].' ';
} else {
$sqlQuery .= ' ORDER BY id DESC ';
}
if($_POST["length"] != -1){
$sqlQuery .= ' LIMIT ' . $_POST['start'] . ', ' .
$_POST['length'];
}

$result = mysqli_query($this->dbConnect, $sqlQuery);


$numRows = mysqli_num_rows($result);

63
$departmentData = array();
while( $department = mysqli_fetch_assoc($result) ) {
$departmentRows = array();
$status = '';
if($department['status'] == 1) {
$status = '<span class="label label-
success">Enabled</span>';
} else if($department['status'] == 0) {
$status = '<span class="label label-
danger">Disabled</span>';
}

$departmentRows[] = $department['id'];
$departmentRows[] = $department['name'];
$departmentRows[] = $status;

$departmentRows[] = '<button type="button"


name="update" id="'.$department["id"].'" class="btn btn-warning btn-xs
update">Edit</button>';
$departmentRows[] = '<button type="button" name="delete"
id="'.$department["id"].'" class="btn btn-danger btn-xs delete">Delete</button>';
$departmentData[] = $departmentRows;
}
$output = array(
"draw" =>
intval($_POST["draw"]),
"recordsTotal" => $numRows,
"recordsFiltered" => $numRows,
"data" => $departmentData
);
echo json_encode($output);

64
}

public function getDepartmentDetails(){


if($this->departmentId) {
$sqlQuery = "
SELECT id, name, status
FROM ".$this->departmentsTable."
WHERE id = '".$this->departmentId."'";
$result = mysqli_query($this->dbConnect, $sqlQuery);
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
echo json_encode($row);
}
}

public function insert() {


if($this->department) {
$this->department = strip_tags($this->department);
$queryInsert = "INSERT INTO ".$this->departmentsTable."
(name, status)
VALUES('".$this->department."', '".$this->status."')";

mysqli_query($this->dbConnect, $queryInsert);
}
}

public function update() {


if($this->departmentId && $this->department) {
$this->department = strip_tags($this->department);
$queryUpdate = "
UPDATE ".$this->departmentsTable."

65
SET name = '".$this->department."', status = '".$this-
>status."'
WHERE id = '".$this->departmentId."'";

mysqli_query($this->dbConnect, $queryUpdate);
}
}

public function delete() {


if($this->departmentId) {
$queryUpdate = "
DELETE FROM ".$this->departmentsTable."
WHERE id = '".$this->departmentId."'";

mysqli_query($this->dbConnect, $queryUpdate);
}
}

}
<?php

class Tickets extends Database {


private $ticketTable = 'hd_tickets';
private $ticketRepliesTable = 'hd_ticket_replies';
private $departmentsTable = 'hd_departments';
private $dbConnect = false;
public function __construct(){
$this->dbConnect = $this->dbConnect();
}
public function showTickets(){
$sqlWhere = '';

66
if(!isset($_SESSION["admin"])) {
$sqlWhere .= " WHERE t.user = '".$_SESSION["userid"]."'
";
if(!empty($_POST["search"]["value"])){
$sqlWhere .= " and ";
}
} else if(isset($_SESSION["admin"]) && !
empty($_POST["search"]["value"])) {
$sqlWhere .= " WHERE ";
}
$time = new time;
$sqlQuery = "SELECT t.id, t.uniqid, t.title, t.init_msg as message,
t.date, t.last_reply, t.resolved, u.name as creater, d.name as department,
u.user_type, t.user, t.user_read, t.admin_read
FROM hd_tickets t
LEFT JOIN hd_users u ON t.user = u.id
LEFT JOIN hd_departments d ON t.department = d.id
$sqlWhere ";
if(!empty($_POST["search"]["value"])){
$sqlQuery .= ' (uniqid LIKE "%'.$_POST["search"]
["value"].'%" ';
$sqlQuery .= ' OR title LIKE "%'.$_POST["search"]
["value"].'%" ';
$sqlQuery .= ' OR resolved LIKE "%'.$_POST["search"]
["value"].'%" ';
$sqlQuery .= ' OR last_reply LIKE "%'.$_POST["search"]
["value"].'%") ';
}
if(!empty($_POST["order"])){
$sqlQuery .= 'ORDER BY '.$_POST['order']['0']['column'].'
'.$_POST['order']['0']['dir'].' ';

67
} else {
$sqlQuery .= 'ORDER BY t.id DESC ';
}
if($_POST["length"] != -1){
$sqlQuery .= 'LIMIT ' . $_POST['start'] . ', ' .
$_POST['length'];
}
$result = mysqli_query($this->dbConnect, $sqlQuery);
$numRows = mysqli_num_rows($result);
$ticketData = array();
while( $ticket = mysqli_fetch_assoc($result) ) {
$ticketRows = array();
$status = '';
if($ticket['resolved'] == 0) {
$status = '<span class="label label-
success">Open</span>';
} else if($ticket['resolved'] == 1) {
$status = '<span class="label label-
danger">Closed</span>';
}
$title = $ticket['title'];
if((isset($_SESSION["admin"]) && !$ticket['admin_read']
&& $ticket['last_reply'] != $_SESSION["userid"]) || (!isset($_SESSION["admin"])
&& !$ticket['user_read'] && $ticket['last_reply'] != $ticket['user'])) {
$title = $this->getRepliedTitle($ticket['title']);

}
$disbaled = '';
if(!isset($_SESSION["admin"])) {
$disbaled = 'disabled';
}

68
$ticketRows[] = $ticket['id'];
$ticketRows[] = $ticket['uniqid'];
$ticketRows[] = $title;
$ticketRows[] = $ticket['department'];
$ticketRows[] = $ticket['creater'];
$ticketRows[] = $time->ago($ticket['date']);
$ticketRows[] = $status;
$ticketRows[] = '<a href="view_ticket.php?id='.
$ticket["uniqid"].'" class="btn btn-success btn-xs update">View Ticket</a>';
$ticketRows[] = '<button type="button" name="update"
id="'.$ticket["id"].'" class="btn btn-warning btn-xs update"
'.$disbaled.'>Edit</button>';
$ticketRows[] = '<button type="button" name="delete"
id="'.$ticket["id"].'" class="btn btn-danger btn-xs delete"
'.$disbaled.'>Close</button>';
$ticketData[] = $ticketRows;
}
$output = array(
"draw" =>
intval($_POST["draw"]),
"recordsTotal" => $numRows,
"recordsFiltered" => $numRows,
"data" => $ticketData
);
echo json_encode($output);
}
public function getRepliedTitle($title) {
$title = $title.'<span class="answered">Answered</span>';
return $title;
}
public function createTicket() {

69
if(!empty($_POST['subject']) && !empty($_POST['message'])) {
$date = new DateTime();
$date = $date->getTimestamp();
$uniqid = uniqid();
$message = strip_tags($_POST['subject']);
$queryInsert = "INSERT INTO ".$this->ticketTable."
(uniqid, user, title, init_msg, department, date, last_reply, user_read, admin_read,
resolved)
VALUES('".$uniqid."', '".$_SESSION["userid"]."', '".
$_POST['subject']."', '".$message."', '".$_POST['department']."', '".$date."', '".
$_SESSION["userid"]."', 0, 0, '".$_POST['status']."')";
mysqli_query($this->dbConnect, $queryInsert);
echo 'success ' . $uniqid;
} else {
echo '<div class="alert error">Please fill in all fields.</div>';
}
}
public function getTicketDetails(){
if($_POST['ticketId']) {
$sqlQuery = "
SELECT * FROM ".$this->ticketTable."
WHERE id = '".$_POST["ticketId"]."'";
$result = mysqli_query($this->dbConnect, $sqlQuery);
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
echo json_encode($row);
}
}
public function updateTicket() {
if($_POST['ticketId']) {
$updateQuery = "UPDATE ".$this->ticketTable."
SET title = '".$_POST["subject"]."', department = '".

70
$_POST["department"]."', init_msg = '".$_POST["message"]."', resolved = '".
$_POST["status"]."'
WHERE id ='".$_POST["ticketId"]."'";
$isUpdated = mysqli_query($this->dbConnect,
$updateQuery);
}
}
public function closeTicket(){
if($_POST["ticketId"]) {
$sqlDelete = "UPDATE ".$this->ticketTable."
SET resolved = '1'
WHERE id = '".$_POST["ticketId"]."'";
mysqli_query($this->dbConnect, $sqlDelete);
}
}
public function getDepartments() {
$sqlQuery = "SELECT * FROM ".$this->departmentsTable;
$result = mysqli_query($this->dbConnect, $sqlQuery);
while($department = mysqli_fetch_assoc($result) ) {
echo '<option value="' . $department['id'] . '">' . $department['name'] .
'</option>';
}
}
public function ticketInfo($id) {
$sqlQuery = "SELECT t.id, t.uniqid, t.title, t.user, t.init_msg as
message, t.date, t.last_reply, t.resolved, u.name as creater, d.name as department
FROM ".$this->ticketTable." t
LEFT JOIN hd_users u ON t.user = u.id
LEFT JOIN hd_departments d ON t.department = d.id
WHERE t.uniqid = '".$id."'";
$result = mysqli_query($this->dbConnect, $sqlQuery);

71
$tickets = mysqli_fetch_assoc($result);
return $tickets;
}
public function saveTicketReplies () {
if($_POST['message']) {
$date = new DateTime();
$date = $date->getTimestamp();
$queryInsert = "INSERT INTO ".$this-
>ticketRepliesTable." (user, text, ticket_id, date)
VALUES('".$_SESSION["userid"]."', '".
$_POST['message']."', '".$_POST['ticketId']."', '".$date."')";
mysqli_query($this->dbConnect, $queryInsert);

$updateTicket = "UPDATE ".$this->ticketTable."


SET last_reply = '".$_SESSION["userid"]."',
user_read = '0', admin_read = '0'
WHERE id = '".$_POST['ticketId']."'";

mysqli_query($this->dbConnect, $updateTicket);
}
}
public function getTicketReplies($id) {
$sqlQuery = "SELECT r.id, r.text as message, r.date, u.name as
creater, d.name as department, u.user_type
FROM ".$this->ticketRepliesTable." r
LEFT JOIN ".$this->ticketTable." t ON r.ticket_id = t.id
LEFT JOIN hd_users u ON r.user = u.id
LEFT JOIN hd_departments d ON t.department = d.id
WHERE r.ticket_id = '".$id."'";
$result = mysqli_query($this->dbConnect, $sqlQuery);
$data= array();

72
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
$data[]=$row;
}
return $data;
}
public function updateTicketReadStatus($ticketId) {
$updateField = '';
if(isset($_SESSION["admin"])) {
$updateField = "admin_read = '1'";
} else {
$updateField = "user_read = '1'";
}
$updateTicket = "UPDATE ".$this->ticketTable."
SET $updateField
WHERE id = '".$ticketId."'";
mysqli_query($this->dbConnect, $updateTicket);
}
}

APPENDIX D - TECHNOLOGY/SOFTWARE

INTRODUCTION TO PHP

PHP: Hypertext Preprocessor, is a widely used, general-purpose scripting language


that was originally designed for web development, to produce dynamic web pages. It can
be embedded into HTML and generally runs on a web server, which needs to be
configured to process PHP code and create web page content from it. It can be deployed
on most web servers and on almost every operating system and platform free of charge.
PHP was originally created by Rasmus Lerdorf in 1995 and has been in continuous

73
development ever since. The main implementation of PHP is now produced by The PHP
Group and serves as the de facto standard for PHP as there is no formal
specification .PHP is free software released under the PHP License, which is
incompatible with the GNU General Public License (GPL) because of restrictions on the
use of the term PHP.PHP has evolved to include a command line interface capability and
can also be used in standalone graphical applications.

USAGE

PHP is a general-purpose scripting language that is especially suited for web


development. PHP generally runs on a web server. Any PHP code in a requested file is
executed by the PHP runtime, usually to create dynamic web page content. It can also be
used for command-line scripting and client-side GUI applications. PHP can be deployed
on most web servers, many operating systems and platforms, and can be used with many
relational database management systems. It is available free of charge, and the PHP
Group provides the complete source code for users to build, customize and extend for
their own use. PHP primarily acts as a filter, taking input from a file or stream containing
text and/or PHP instructions and outputs another stream of data; most commonly the
output will be HTML. Since PHP 4, the PHP parser compiles input to produce byte code
for processing by the send Engine, giving improved performance over its interpreter
predecessor. Originally designed to create dynamic web pages, PHP now focuses mainly
on server- side scripting, and it is similar to other server-side scripting languages that
provide dynamic content from a web server to a client, such as Microsoft's Active Server
Pages, Sun Microsystems' Java Server Pages and model. PHP has also attracted the
development of many frameworks that provide building blocks and a design structure to
promote rapid application development (RAD).

HTML

HTML, which stands for Hyper Text Markup Language, is the predominant
markup language for web pages. It provides a means to create structured documents by
denoting structural semantics for text such as headings, paragraphs, lists etc as well as for
links, quotes, and other items. It allows images and objects to be embedded and can be
used to create interactive forms. It is written in the form of HTML elements consisting of

74
"tags" surrounded by angle brackets within the web page content. It can include or can
load scripts in languages such as JavaScript which affect the behavior of HTML
processors like Web browsers; and Cascading Style Sheets (CSS) to define the
appearance and layout of text and other material. The W3C, maintainer of both HTML
and CSS standards, encourages the use of CSS over explicit presentational markup.
Hyper Text Markup Language (HTML) is the encoding scheme used to create and format
a web document. A user need not be an expert programmer to make use of HTML for
creating hypertext documents that can be put on the internet.

JAVASCRIPT

JavaScript is an object-oriented scripting language used to enable programmatic


access to objects within both the client application and other applications. It is primarily
used in the form of client-side JavaScript, implemented as an integrated component of the
web browser, allowing the development of enhanced user interfaces and dynamic
websites. JavaScript is a dialect of the ECMA Script standard and is characterized as a
dynamic, weakly typed, prototype-based language with first-class functions. JavaScript
was influenced by many languages and was designed to look like Java, but to be easier
for non-programmers to work with.

USAGE

The primary use of JavaScript is to write functions that are embedded in or


included from HTML pages and interact with the Document Object Model (DOM) of the
page. Because JavaScript code can run locally in a user's browser (rather than on a remote
server) it can respond to user actions quickly, making an application feel more
responsive. Furthermore, JavaScript code can detect user actions which HTML alone
cannot, such as individual keystrokes. Applications such as Gmail take advantage of this:
much of the user-interface logic is written in JavaScript, and JavaScript dispatches
requests for information (such as the content of an e-mail message) to the server. The
wider trend of Ajax programming similarly exploits this strength.

MYSQL

75
There are a large number of database management systems currently available,
some commercial and some free. Some of them: Oracle, Microsoft Access, MySQL and
Postgre SQL.

These database systems are powerful, feature-rich software, capable of organizing


and searching millions of records at very high speeds. Understanding Databases, Records,
and Primary Keys Every Database is composed of one or more tables .These Tables,
which structure data into rows and columns, Impose organization on the data .The
records in a table(below) are not arranged in any particular order .

APPENDIX E – LIST OF ABBREVIATIONS

ABBREVATION DESCRIPTION

RDBMS Relational Data Base Management System

UI User Interface

PHP Hypertext Pre-Processor

76
API Application Programming Interface

IDE Integrated Development Environment

GUI Graphical User Interface

HTML HyperText Markup Language

VS Visual Studio

SQL Structured Query Language

CSS Cascading Style Sheets

ER Entity Relationship

77

You might also like