Question: Help Desk Ticketing System Prototype Client Requirements The client would like a Help Desk ticketing system prototype developed. The Help Desk ticketing system should handle
Help Desk Ticketing System Prototype
Client Requirements
The client would like a Help Desk ticketing system prototype developed.
The Help Desk ticketing system should handle tickets from internal customers only.
Tickets will be requested for assistance from the Help Desk by staff members of the organisation.
Requirements of the Help Desk Ticketing System
Tickets:
Tickets can be submitted by providing all of the following information:
Staff ID,
Ticket creator name,
Contact email
Description of the issue
Internal Tickets ticket number should be assigned automatically using the counter static field plus 2000.
All information must be provided as input while submitting the ticket.
Responding to tickets:
If the tickets description of the issue contains the words Password Change, the new password should be generated following the rule,
The first two characters of the staffID, followed by the first three characters of the ticket creator name.
Hint: (can be useful to consider: split(), join(), string operations)
There should be an option, after the ticket has been submitted, to respond to a ticket by providing a feedback response.
Default response can be set as Not Yet Provided.
Statistics:
There should be a way to keep track of:
The number of tickets submitted
The number of resolved tickets
The Number of open tickets
A way to display those statistics to the console.
If the staff member has submitted the Password change request, after the new password is generated and the tickets response has been updated, the ticket should close, with the number of closed tickets increased and the number of open tickets reduced by 1. Tickets status should be changed to Closed.
Once a member of the IT department provides the response to a ticket, the ticket should close, with the number of closed tickets increased and the number of open tickets reduced by 1. Tickets status should be changed to Closed.
There should be an option for the IT department to reopen the ticket. At this point the number of open tickets should be increased and the number of closed tickets should be reduced by 1. Tickets status should be changed to Reopened
Displaying the ticket:
There should be a way to display the ticket information:
Ticket number,
Name of the tickets creator,
StaffID,
Email address,
Description of the issue,
Response from the IT department and ticket status (open, closed or reopened).
The output format is shown in the examples at the end of Technical Requirements section.
Technical Requirements
The senior developer has provided you with the following technical requirements for the project.
The Ticket class should contain common ticket information in the Ticket class.
The Ticket class should also have method allowing the staff to submit ticket and the IT team to respond to the tickets, specifically resolve, reopen and provide a response to the ticket.
The Ticket class should contain a method for resolving password change requests. As well as calling the method that would generate the new password, it should set up a response for the ticket and change the ticket status to closed.
There should be a method to print information for all the ticket objects.
Hint: research and use List
The TicketStats method in Ticket class should contain information on ticket statistics and shall be able to return the statistics information.
The main class, containing the Main method.
Create at least one instance of submitting tickets and include at least one ticket with the request of Password change.
After the tickets are created, display ticket statistics.
Resolve some of the tickets, then display the ticket information and ticket statistics. o Reopen some of the resolved tickets, then display the ticket information and ticket statistics.
The example output is provided below:
Displaying Ticket Statistics
Tickets Created: 3
Tickets Resolved: 1
Tickets To Solve: 2
Printing Tickets:
Ticket Number: 2001
Ticket Creator: Inna
Staff ID: INNAM
Email Address: inna@whitecliffe.co.nz
Description: My monitor stopped working
Response: Not Yet Provided
Ticket Status: Open
Ticket Number: 2002
Ticket Creator: Maria
Staff ID: MARIAH
Email Address: maria@whitecliffe.co.nz
Description: Request for a videocamera to conduct webinars
Response: Not Yet Provided
Ticket Status: Open
Ticket Number: 2003
Ticket Creator: John
Staff ID: JOHNS
Email Address: john@whitecliffe.co.nz
Description: Password change
Response: New password generated: JOJoh
Ticket Status: Closed
Displaying Ticket Statistics
Tickets Created: 3
Tickets Resolved: 2
Tickets To Solve: 1
Printing Tickets:
Ticket Number: 2001
Ticket Creator: Inna
Staff ID: INNAM
Email Address: inna@whitecliffe.co.nz
Description: My monitor stopped working
Response: The monitor has been replaced.
Ticket Status: Closed
Ticket Number: 2002
Ticket Creator: Maria
Staff ID: MARIAH
Email Address: maria@whitecliffe.co.nz
Description: Request for a videocamera to conduct webinars
Response: Not Yet Provided
Ticket Status: Open
Submission Checklist
| Task | Evidence Required |
| 1 | Software_Project Python Code file |
| 2 | ReadMe file with instructions |
| 3 | Word/PDF file with the details of Software Development Lifecycle stages during the development of the project |
| 4 | Instructions required to display your software project |
class Ticket: def __init__(self, staffID, name, email, description): self.staffID = staffID self.name = name self.email = email self.description = description self.response = "Not Yet Provided" self.status = "Open" def __str__(self): return f"Ticket Number: {self.ticketNumber} Name: {self.name} Staff ID: {self.staffID} Email: {self.email} Description: {self.description} Response: {self.response} Status: {self.status}" class HelpDesk: ticketNumber = 2000 openTickets = 0 closedTickets = 0 def __init__(self): self.tickets = [] def submitTicket(self, staffID, name, email, description): newTicket = Ticket(staffID, name, email, description) self.tickets.append(newTicket) newTicket.ticketNumber = HelpDesk.ticketNumber HelpDesk.ticketNumber += 1 HelpDesk.openTickets += 1 if "Password Change" in description: newTicket.response = f"New Password: {staffID[:2]}{name[:3]}" HelpDesk.closedTickets += 1 HelpDesk.openTickets -= 1 newTicket.status = "Closed" return newTicket def respondToTicket(self, ticketNumber, response): for ticket in self.tickets: if ticket.ticketNumber == ticketNumber: ticket.response = response HelpDesk.closedTickets += 1 HelpDesk.openTickets -= 1 ticket.status = "Closed" def reopenTicket(self, ticketNumber): for ticket in self.tickets: if ticket.ticketNumber == ticketNumber: ticket.status = "Reopened" HelpDesk.openTickets += 1 HelpDesk.closedTickets -= 1 def displayTicket(self, ticketNumber): for ticket in self.tickets: if ticket.ticketNumber == ticketNumber: print(ticket) def displayStatistics(self): print(f"Number of tickets submitted: {HelpDesk.ticketNumber - 2000} Number of open tickets: {HelpDesk.openTickets} Number of closed tickets: {HelpDesk.closedTickets}") def main(): helpDesk = HelpDesk() helpDesk.submitTicket("123456", "John Smith", "johnsmith@hotmail.com", "Password Change") helpDesk.respondToTicket(2001, "Your issue has been resolved") helpDesk.respondToTicket(2002, "Your issue has been resolved") helpDesk.respondToTicket(2003, "Your issue has been resolved") helpDesk.displayStatistics() helpDesk.displayTicket(2001) helpDesk.displayTicket(2002) helpDesk.displayTicket(2003) helpDesk.displayStatistics() main()
Thank you for your response. Actually i am unable to run this program. It is showing error in line 10. can you please correct it. and 2(readme file with instructions),3(SDLC), and 4(Instructions required to display your software project) points are missing. Can you please elaborate these ones as well.
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
