React js Application for Incident Management

Job ID: 32216337

Budget: $30 – $250 USD

The Project Consists of a simple Incident Management Application built using react js that will be communicating with existing node js apis.

the application allows incidents to be recorded from clients.
managers will assign the incidents to employees, who will record progress on the incident

an incident has the following info:
title: short description of incident,
description: detailed explanation of the incident,
customerid: id of reporting customer,
incident_type: can be one of the following: 1 product defect, 2 expired, 3 damaged, 4 bad quality,
incident_date: timestamp of incident creation date
due_date: expected delivery date of incident,
assigned_to,
current_status: is the last status on this incident and can be one of the following: 0 reported, 1 started, 2 paused, 3 completed,
progress: percentage value of task completion (manually input by employee)

incidents also have actions (every time a user takes action towards an incident)
each incident_action has the following info:
incident_id,
action_type: 1 call, 2 visit, 3 email, 0 remark,
action_description: short description of action,
userid: the user who did the action, or wrote the remark,
action_time: timestamp of action

incidents_statuses should be recorded every time they are changed in the following format
incident_id, which incident
new_status, what is the new status
status_time, when was this status applied
userid, who applied this status

a customer has the following info: customer_id, customer_name, (any other relevant fields)
a user (employee) has the following info: userid, username, password, (any other relevant field)

Project Requirements:
- Application created using react js v17
- responsive design
- Create the basic components and state and data requirements for the project
- the app should be very fast and the communication with the apis (node.js) has to be effective and minimalistic to allow best performance
- the UI has to be user friendly, interactive, and responsive
- the project has the following pages
1. user login page
2. incidents listing page (a grid-like listing of incidents) that should be paginated, filtered by multiple criterias (date, due date, incident type, employee)
3. Create/Edit Incident Page where a user specifies main incident info, and adds/removes incident_actions, and incident_statuses
4. Create/Modify customer Page this should consist of 2 sections general info, and if editing a customer we can see all previous and current incidents of the customer

Deliverables:
- complete code to project
- explanation of why the selected packages will be used

there can be thousands of open incidents at the same time, so speed, performance, caching and state management is really important.
Related categories: JavaScript HTML5 React.js CSS3