Implementing Complex Data Structures and Algorithms for Automated Ticketing Systems, Assignments of Private law

The implementation of complex data structures and algorithms to design an automated ticketing system for a customer service department. It covers key aspects such as ticket creation, management, assignment, knowledge base integration, sla management, reporting and analytics, and crm integration. The document highlights the use of data structures like queues and linked lists to effectively handle incoming client requests, ensure fair processing, and provide flexibility in adding and deleting tickets. It also emphasizes the importance of evaluating the complexity of implemented adts and algorithms, as well as assessing the effectiveness of data structures and algorithms through asymptotic analysis. Insights into the design and implementation of an efficient and scalable automated ticketing system that can improve customer satisfaction, increase efficiency, and simplify processes.

Typology: Assignments

2022/2023

Uploaded on 11/07/2023

thach-tran-1
thach-tran-1 🇻🇳

5 documents

1 / 23

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
ASSIGNMENT 2 FRONT SHEET
Qualification BTEC Level 5 HND Diploma in Computing
Unit number and title Unit 19: Data Structures and Algorithms
Submission date 6/8/2023
Date Received 1st
submission
6/8/2023
Re-submission Date Date Received 2nd
submission
Student Name MAI HUU NAM Student ID BS00152
Class Pbit17101 Assessor name Ms.THAI THI THANH THAO
Student declaration
I certify that the assignment submission is entirely my work and I fully understand the consequences of plagiarism. I understand that
making a false declaration is a form of malpractice.
Student’s signature NAM
Grading grid
P4 P5 P6 P7 M4 M5 D3 D4
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17

Partial preview of the text

Download Implementing Complex Data Structures and Algorithms for Automated Ticketing Systems and more Assignments Private law in PDF only on Docsity!

ASSIGNMENT 2 FRONT SHEET

Qualification BTEC Level 5 HND Diploma in Computing

Unit number and title Unit 19: Data Structures and Algorithms

Submission date 6/8/2023 Date Received 1st submission 6/8/

Re-submission Date Date Received 2nd submission

Student Name MAI HUU NAM Student ID BS

Class Pbit17101 Assessor name Ms.THAI THI THANH THAO

Student declaration

I certify that the assignment submission is entirely my work and I fully understand the consequences of plagiarism. I understand that

making a false declaration is a form of malpractice.

Student’s signature NAM

Grading grid

P4 P5 P6 P7 M4 M5 D3 D

Summative Feedback:Resubmission Feedback:

Grade: Assessor Signature: Date:

Internal Verifier’s Comments:

IV Signature:

INTRODUCTION

After researching certain algorithms and their implementation in the ADT Queue and stack, the program- in-development needs a portion of the message and processing interface. The devices require a message set for transmission and often introduce a queue message buffer for transit. The demo faithfully depicts essential functions and guarantees strict implementation and error avoidance, but checks must be carried out to demonstrate the accuracy of the algorithm. The group would compile a report on the two data formats and how the effectiveness of the pertinent algorithms may be assessed. The research should also look at how ADT is used in manufacturing and design, including its complexity, profitability, and benefits. Figure 1 Data Structures

P4 Implement a complex ADT and algorithm in an executable programming language to solve a well-defined

problem.

1. Implement ADT & algorithms

1 .1 Description of your application

An automated ticketing system for a customer service department is the application I want to create. This program's objective is to control incoming client requests and guarantee that they are dealt with fairly and effectively. For this application, I would choose to use a combination of a queue and a linked list data structure. Here's how I would design it:

a.Problem

The issue of creating an automated ticketing system for the customer service department involved designing and implementing an effective system for managing and tracking customer requests, handing them over to support agents, and ensuring timely resolution. Here are some key aspects to consider when dealing with this:

1. Ticket Creation: Customers should be able to generate tickets through the system's online portal, email, or other methods. The ticket should include pertinent facts such as the name and contact information of the client, the issue's description, and any supporting files or screenshots. 2. Ticket Management: The system must effectively handle incoming tickets. Every ticket ought to have a special identification number and be kept in a database or data structure. Each ticket's state, such as open, assigned, in use, or resolved, should be tracked by the system. 3. Automatic ticket assignment: The system ought to do this based on workload, level of experience, and priority to distribute tickets to available support agents. Algorithms that equally divide the task or that take the agent's expertise and availability into account can accomplish this. 4. Agent Interface: Support staff members should have easy access to and management of allocated tickets. The interface should provide agents access to crucial ticket information, allow them to engage with customers, change tickets' statuses, and keep tabs on how much time has been spent on each ticket. 5. Ticket Escalation: If a ticket needs more in-depth assistance or attention, the system should include a way to escalate it to higher-level management or support. Agents or supervisors may manually initiate this or it may be based on predetermined guidelines. 6. Communication and Notifications: The system needs to let agents and consumers communicate with one another. Agents ought to be able to issue notifications, ask for further details, or update clients on the status of their tickets. Customers can be notified automatically about the status of their tickets by sending them alerts. 7. Analytics and Reporting: The system must have analytics and reporting features for monitoring key performance indicators (KPIs) such as ticket resolution times, agent output, client satisfaction, and ticket trends. Making data-driven decisions and identifying areas for development are all made possible with the aid of this data. 8. Integration and Scalability: The system must be able to integrate with other systems, such as customer relationship management (CRM) tools or knowledge bases. It should also be scaleable to accommodate an increase in the number of tickets and users. Overall, the automated ticketing system should improve efficiency, increase customer happiness, and give useful information for ongoing process development.

b. Solution

You can implement the following procedures to create an automated ticketing system for a customer care department:

1. Ticket Management Software : Introduce a system for ticket management created especially for customer care divisions. Features including ticket generation, assignment, tracking, and resolution are offered by these software programs. Look for software that has flexible processes, automation possibilities, and system integration choices. 2. Customer Self-Service site: Create a self-service site where customers may submit and follow up on their tickets. This gives clients greater control over their enquiries and lessens the workload for customer support representatives. The portal should have an intuitive user interface and include tools like ticket submission, progress updates, and knowledge base access for self-help. 3. Automated Ticket Assignment: Set up an automated system for allocating tickets to agents by pre-established criteria or algorithms. Think about things like agent availability, expertise, workload, and priority levels. By doing this, effective ticket distribution is ensured, and allocating tickets requires less human labour. 4. Knowledge Base Integration: Integrate a knowledge base system with the ticketing system to give agents rapid access to pertinent articles, frequently asked questions, and troubleshooting instructions. Giving correct and consistent information aids agents in resolving issues more quickly and enhances customer satisfaction. 5. Communication Channels Integration: Integrate several communication channels into the ticketing system, including social media, chat, and email. Customers may contact companies through their chosen methods, and employees can manage all client contacts through a single system. Ascertain that the system records and logs every communication for future reference. 6. SLA Management: Use capabilities of Service Level Agreement (SLA) management to establish response and resolution time goals for various ticket categories. To guarantee that tickets are resolved promptly, the system needs to automatically monitor and alert agents and management when SLA deadlines are getting close. 7. Reporting and Analytics: Develop the reporting and analytics tools necessary to monitor and assess important performance indicators including ticket volume, resolution time, customer satisfaction scores, and agent effectiveness. To raise the standard of total customer service, these insights assist in identifying patterns, enhancing procedures, and making data-driven choices.

  • Getters and setters may be added to access and change the private variables, although they are not explicitly exposed here.

b.class automaticTiket

Figure 3 class automaticTiket The class 'AutomaticTicketingSystem' is defined in this section.

  • The class has two data members: 'ticket queue' of type 'Queue' and 'ticket list' of type 'LinkedList'.
  • The constructor initializes the 'ticketQueue' and 'ticketList' as empty collections.

c. Void submit ticket

Figure 4 Void submit ticket

  • 'submit ticket' function accepts the ticket data as inputs and generates a new 'Ticket' object with them.
  • The newly produced ticket is then included in the "tickets" and "ticket queue."

d. Void process tickets

Figure 5 Void process tickets

  • The 'process tickets' method is in charge of handling the tickets in the 'ticket queue'.
  • A "while" loop is used, and it runs until the "ticket queue" is empty.
  • Using the 'poll()' function, it obtains the subsequent ticket from the top of the 'ticket queue' throughout each iteration.
  • You may take actions on the ticket inside the loop, such as assigning it to an available agent or changing its characteristics. The ticket ID is updated with an arbitrary value in this example to imitate an action.
  • At the end, a notice stating that the ticket has been processed is printed.

e.Void display tickets

Figure 6 Void display tickets

  • The 'display tickets' method is in charge of showing all the submitted tickets kept in the 'ticket list'.
  • It iterates over each "Ticket" object in the "ticket list" using a "for-each" loop.
  • Using the getter methods, it obtains the attributes of each ticket inside the loop and prints them.

f. Test result

In order for us to maintain track, we will have the ticket procedure include the number of tickets and the code on each ticket. Include the name of the client and the daily purchase amount so that it may be displayed at the end of the month.

P5 Implement error handling and report test results.

Giải thích exception Thêm try… catch

a. Test (P5)

Test case Input data Expect ed output Actual output Res ult 1 Pick a function that isn't present (ti) The default scenario will be executed by the program, and it will return 1000$ the message "Invalid selection, will not run execution is fail." Fail 2 Select an existing function (numbe r) 10 The softwa re will execut e the default scenari o and provid Fail

e a succes sful run outco me. 3 How many tickets you have purchas ed will be calculat ed when the system adds your name. Name The softwa re will display the numbe r of tickets left, the client name that has been added to the databa se, and an invitati on to re- enter. Pas s 4 Choose an existing function (replace the number with the name). Number Becaus e we must alter the name to a numbe r before it runs withou t red, the outco me will result Fail

This result is being displayed in order to offer details about the particular ticket that has been handled, including the name of the client and a description of the problem. This data can be utilized as a resource or to take additional action, such fixing the stated problem or updating the client. Ticket number: 1003 Name of the client: Bob Johnson Issue 3's description This shows that the client named Bob Johnson's ticket ID 1003 has been handled. "Issue 3" is the problem detailed in Ticket ID 1003. This result is being displayed in order to offer details about the particular ticket that has been handled, including the name of the client and a description of the problem. This data can be utilized as a resource or to take additional action, such fixing the stated problem or updating the client. Ticket number 3222 The client is Thach. 123 Issue Description This shows that the client named Thach's ticket ID 3222 has been handled. "123" is the problem listed in Ticket ID

This result is being displayed in order to offer details about the particular ticket that has been handled, including the name of the client and a description of the problem. This data can be utilized as a resource or to take additional action, such fixing the stated problem or updating the client.

Each ticket is an instance of a system-resolved problem or request from a client. Each ticket has a specific identification number or ticket ID. The name of the individual who submitted the ticket is shown by the customer's name. The problem or request is briefly described in the issue description. The information about the processed tickets, including their ticket IDs, customers' names, and issue descriptions, will be displayed as part of this result. Customer concerns may be promptly tracked down and resolved with this information.

c. Error handling

To solve the issue and prevent the program from abruptly terminating due to the error, I will utilize the Try...Catch block in this section on error management.

Code

o − Little Oh Notation ω − Little Omega Notation Figure 9 Graph For example, for a function f(n) Ο(f(n)) = { g(n) : there exists c > 0 and n0 such that g(n) ≤ c.f (n) for all n > n0. }

2. Explain of Big O notation include the following:

Figure 10 Examine algorithms according to the program's execution duration.

1. O(1) Constant Time: Regardless of the amount of input, an algorithm with O(1) complexity has a fixed runtime. It implies that the algorithm runs at the same speed regardless of the size of the input. For instance, doing a straightforward arithmetic operation or obtaining an element from an array by index.

2. Linear Time O(n): The runtime of an O(n) complexity method increases linearly with the amount of input. It implies that the relationship between execution time and input size is linear. You may do a linear search in an unsorted list or iterate through an array. 3. O(n^2 ) Quadratic Time: The runtime of an algorithm with an O(n2) complexity scales quadratically with the input size. In other words, the execution time scales as the square of the input size. As an illustration, consider nested loops that perform a quadratic amount of operations while iterating over the same array. 4. O(log n) - Logarithmic Time: The runtime of an algorithm with O(log n) complexity increases logarithmically as the input size increases. It indicates that when the input size grows, the runtime also grows, albeit more slowly. Take binary search as an illustration, where the input size is half at each iteration. 5. Linear Time, O(n log n): The runtime of an algorithm whose complexity is O(n log n) increases between linear and quadratic. It is frequently seen in effective sorting algorithms like Quick Sort and Merge Sort. 6. Exponential Time, O(2n): The runtime of an algorithm whose complexity is O(2n) increases exponentially with input size. With each extra input element, the execution time effectively doubles. Creating all set's subsets or permutations, for instance. **Viết bằng công thức ở trên là giải thích

  • ví dụ**

P7 Determine two ways in which the efficiency of an algorithm can be measured, illustrating your

answer with an example.

1. Evaluate some of your important algorithms in task 1 by time

a. Quick Sort:

Step-by-step breakdown

1. The divide-and-conquer algorithm Quick Sort

uses the "pivot" idea.

1. Choose a pivot element from the array (it can be

done at random or using a certain method).

2. It chooses a pivot element from the array and

divides the other components into two sub-arrays

based on whether they are less than or greater than

the pivot

2. Divide the array into two sub-arrays depending on

the pivot, with items on one side that are less than

the pivot and larger than the pivot on the other.

3. The pivot is then positioned in its final position in

the sort, and the algorithm repeats this procedure for

the sub-arrays.

3. On the two sub-arrays, recursively apply Quick

Sort.

4. This procedure is carried out until the full array

has been sorted.

4. Combine the sorted sub-arrays to get the whole

sorted array.

Table 1 Quicksort