Skip to content

System Requirements

Dharshan Pillay edited this page Sep 25, 2023 · 10 revisions

Functional Requirements

  • Ticket Creation: The ability of a user to create a ticket.

  • Ticket Specification: The ability of a user to specify the details of the ticket.

  • Ticket Assignment: The ability of a user to assign tickets to a specific user or team based on their relevant expertise, workload, and availability.

  • Ticket Prioritization: The system should allow users to set the priority of their tickets, to help support staff prioritize their work and resolve critical issues quickly.

  • Ticket Viewing: The ability of any user to view the details of the ticket.

  • Ticket Updating: The ability of a user to update the specifications and details of the ticket when the need arises, and when these changes are made the users assigned to the ticket are notified.

  • Ticket Tracking: The ability of any user to track the status of each ticket.

  • Ticket Resolution: The ability of a user to resolve tickets and mark them as complete, active or pending .

  • Ticket Collaboration: The ability for users to collaborate on tickets with one another.

  • Ticket History: The system should maintain a history and audit trail of all ticket-related activities, to ensure accountability, compliance, and auditability.

  • User Management: The ability of management users to create, manage and delete user accounts, set roles, and permissions. The ability to create, manage and delete client accounts.

  • User Authentication: The system requires users to authenticate themselves.

  • User Group Assignment: The ability of users to assign and remove users from their respective groups.

  • User Profile Editing: The ability to edit certain details of a users' profile.

  • User Role Assignment: The ability of management users to assign users' a certain role.

  • Notifications: The ability to notify users when they have been assigned a new ticket or when a ticket's status has been updated.

  • Clients should be able to make requests without having to directly contacting their consultant.

  • Clients should be able to keep track of their request's status

  • Clients should have an in-app means of contacting a consultant

Non-Functional Requirements

  • Performance: The system should be able to handle a high volume of concurrent users and requests without having to experience issues like system crashes or slow response times. The system also keeps track of Time to First response, the appropriate time is 2 hours from when the request has been made.
  • Reliability: the system should be available 24/7 with minimal down time. Clients are able to make requests and create new projects even if they are not able to contact a consultant immediately.
  • Scalability: the system should be able to handle a growing number of users and requests on the platform.
  • Security: The system should be secure so that the confidentiality of ticket data, user accounts, and communications is not compromised. User's are required to have an account created for them internally, and then they are sent a verification email where they have to change their password.
  • Usability: the system should be simple and easy to use, it should have an intuitive interface so that the time spent on training or support can be minimized. In the event a user is unable to figure something out there is a user's manual to help them. Even those who are computer illiterate can use the system.
  • Maintainability: the system should be easy to maintain, with clear documentation, modular design, and proper coding practices to support any updates or enhancements made in the future. We have made a coding standards document to support this.
  • Interoperability: the system should be able to interoperate with other systems such as email or video/voice chat.
  • Compliance: the system should comply with relevant industry standards and practices. i.e SLA's

Use Case Diagram

UseCases drawio

Class Diagram

classdiagram