Skip to content

nikkizhou/Resource-Management

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

resource-management

Quick Demo

React.App.-.Google.Chrome.2023-01-25.10-33-00.mp4

How to start

  1. Clone this repository
  2. Install docker
  3. In root directory, run docker compose up
  4. Go to http://localhost:3000

Motivation

This ia an app for people to assign tasks to different employees depending on their positions.

Functions:

  1. Get, create, update and delete employees/positions/tasks
  2. Filter, search and sort based on id/name/and date

Validation

  1. Throws NotFoundException when trying getById/updating/deleting an item with the id that doesn't exist in the system.
  2. Throws AlreadyExistException when trying adding an item with an id that already exists in the system.
  3. Throws HasOverlapException when trying adding a position to an employee with a period that's not available for the employee.
  4. Throws DateOutOfRangeException when trying adding a task to an employee with a date that's out of the period range of all positions the employee has.
  5. Auto validate with @NotNull, @NotBlank, @JsonFormat annotation from Spring Boot.

Tech stack

Frontend: React, Typescript, Material-table
Backend: Java, Spring Boot

Learnings

  1. Make a plan, list everything needed to do, give them priority level according to my situation.
  2. Always make a mvp first before diving into more features.

Challenges

  1. Material-table is a very powerful package, but in the same time, it brings som inconvience too when we need to customize som features. And it takes longer time to debug since many things are hidden.

Future features

  1. !! Multiple Date Picker for selecting period
  2. !! Databese (MySQL)
  3. ?? Writing testing for backend
  4. ?? Authentication
  5. ?? Pictures for employees

References

  1. Spring boot CRUD: https://www.youtube.com/watch?v=QuvS_VLbGko
  2. Material-table: https://material-table.com/#/

UML

About

A React+Spring Boot app for people to assign tasks to different employees depending on their positions.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published