Skip to content

zckoh/tix-queue-docs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

Help Queue Documentation

Author: Zac Koh ([email protected])

Website screenshot: Application Landing Page

Written below are the detailed documentation for the help queue application.


Table of Contents

Project Submission Documents

Links to GitHub repositories

Below are the links to the GitHub repositories related to this project:

Link to JIRA Board

Invite Link to JIRA Board - https://id.atlassian.com/invite/p/jira-software?id=WFqfsp5EQpyvFdZqJQq46g

Link to Submission Video

Link to Submission Video - https://youtu.be/sbkvTW9UtgQ

Project Planning & Management

Project planning is initially done prior to actual project development to help scope out the project and to help us to manage project, ensuring we will be able to deliver the application on time.


JIRA Board

To help us with project planning, we are using JIRA as our project management tool where we can create new User Stories / Tasks / Issues to help us keep track on our work progress.


Entity Relationship Diagram

An initial Entity Relationship Diagram (ERD) is created to help with the design / schema creation for the database. The initial ERD only consist of 1 table but it was later expanded for implementing additional features such as department / ticket assignment. Entity Relationship Diagram


Wireframe Diagrams

Wireframe diagrams were created at the start of the project to provide developer with a basic diagram to start with, which was very useful later during development as most of the design work was already completed when preparing the wireframe diagram.

Main Ticket Page / Landing Page
Create Ticket Modal
View / Update Ticket Modal
Delete Ticket Modal

Sequence Diagrams

Main Tickets Page / Landing Page
Create Ticket
Update Ticket
Delete Ticket

Risk Assessment Matrix

Description Evaluation Likelihood Impact Responsibility Response Control Measure
Source code for application lost The developer's machine broke,
and the source code is only store on that machine
Medium Very High Developer Ensure backups are stored elsewhere can easily be recovered Mitigate
L - Use a version control system like GitHub to store our code
Unauthorized access to source code Malicious attacker that have access to the source code can
find vulnerabilities in our application and try to break our application.
Low Very High Developer Ensure our code base is only accessible to the application team Mitigate
L - Make the code repository private and only allow access to application developer
Unauthorized access to database Delete all records / steal personal data Low Very High AWS / Developer Try to recover as much data as possible. Identify/fix vulnerability Mitigate
L - Ensure strong password used for database connection. Backup in RDS
Database storage full User unable to create new tickets Low High Developer Try to increase the storage capacity of the database Mitigate
L - When initially setting up the database, provide a decent amount of storage
Server down unable to serve application Users unable to access the webapp. Very Low High AWS Identify / check which resource is affected and try to restore service Accept
Accept the risk that AWS could be potentially down but it is very unlikely
Human error in deployment steps for production Error in deployment cause deployment to fail/unsuccessful Medium High Developer Identify / review steps taken and correct the mistake made during deployment. Mitigate
L - Use CI pipeline to automate deployment step, preventing any human error during deployment

Technical Documentation

This sections covers all the technical aspects of the project.

When the back-end Java Spring Boot application is started, it should automatically help to create the database schemas based on the Entities listed in the Spring project.

Before creating tickets, we will need to add the following entites in the following order:

  1. Status To add a new status, we can send a HTTP POST request to the /status/add endpoint with the following JSON body:

    {
        "name": "Status Name"
    }
  2. Department To add a new technician, we can send a HTTP POST request to the /technician/add endpoint with the following JSON body:

    {
        "name": "Department Name"
    }
  3. Technician To add a new department, we can send a HTTP POST request to the /department/add endpoint with the following JSON body:

    {
        "name": "Technician Name",
        "department": {
            "id": 1,
            "name": "Department Name"
        }
    }

Once the above entities have been created, we can then proceed to allow users to add / update /delete tickets.


Features Implemented

Basic Functionality (MVP)

The basic CRUD functionality have been implemented.

Users will be able to:

  • Create new tickets and add them to the queue
  • View tickets in the current queue from oldest to newest
  • Delete existing tickets in the queue
  • Update existing tickets in the queue

Solutions

Once a ticket is marked as "Completed", Users should be able to add a solution to that ticket, allowing other users to see the solutions to a problem that has already been solved.

Departments

Users can assign a ticket to a department, and technicians can use the "Filter By Department" filtering option to see help queue specific to their expertise.

Assignment

Users can assign a ticket to a technician. When creating/updating the ticket, the available technician options provided is based on the department the ticket is currently assigned to.

Filtering

Users can filter/arrange tickets based on attributes such as:

  • Newest to Oldest
  • Oldest to Newest
  • Filter by Department

Test Coverage

Front End React

React Test Coverage

Back End Spring

Spring Test Coverage

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published