Due to time constraints, I did some planning before working on the project. I also used
the master-detail designs and some components from my existing project EpicERP.
- complete master detail functions
- bare bone styles and designs
Please note, I spend more than 2 hours. Mostly trying to fix styles(it can be time-consuming and frustrating at times), just to make it more presentable.
- list view
-
master/detail view
- desktop view: list on the left, detail on the right
- mobile view: not implemented due to time constraints
TicketMasterDetail:root component hosting list and detail view- left side:
TicketList - right side:
TicketDetail
- left side:
TicketList:- get filtered tickets
- show tickets by rendering
TicketListViewwhich in turn renderingTicketCard.
TicketCard: display ticket information 3. click to open ticket detail screen 4. if selected, background color changesTicketDetail: Load ticket and displayTicketFormTicketForm: Add Edit Ticket
useClient is an adaptor to the mock backend so that it can be replaced by the real backend.
- Input components like text field, autocomplete and switch. These components are integrated with react-hook-form, which also serve as adaptors for relevant material ui components.
MessageContextandMessageSnackBar, although I have got no time to use it, it would be nice to show users
success and error messagesFullPageSpinner
- tests for
AutocompleteandTextfieldare mostly from 'EpicERP'. - two new tests in
App.test.tsx:- test create a new ticket
- test edit ticket
- not enough time to write more tests.
- more tests with jest and cypress
- mobile view: hide list view, only show the detail view
AssigneeButton: dropdown list of users and assign user without using detail screen, to useassignAPIStatusButton: click to toggle the status between 'completed' and 'pending' without using the detail screen, to
usetoggleStatusAPI- Form:
- route guard to prevent routing away while ticket form is dirty or saving is in progress
- message snackbar to show success and error message
- Global error boundary
- not found route page
- polish styles
- better filter
- pagination
- test Suspense fallback
- better error handling
- refactoring and clean up


