- Employee full name tracking ✅
- Tracking departments where employees are listed ✅
- Employees can be hired and fired. The reasons for dismissal are not relevant ✅
- Employees can be transferred from one department to another ✅
- The composition of departments can change on any given day. It is necessary to have the ability to obtain information about the company structure at any point in time ✅
- Departments have a hierarchical dependency on each other ✅
- Data integrity control is outside the scope of this task ✅
- Adding a new employee to any department ✅
- Displaying the list of all departments on a specific date ✅
- Displaying employees of a selected department for a period (start and end dates are specified, all employees who were listed in the department for at least one day within the specified period are displayed) ✅
- Hierarchy: To implement the hierarchical structure of departments, it was decided to use ltree, which allows quick operations with such data structures.
- Visualization: The React Flow library was chosen for visualizing the hierarchy structure, making the addition of departments and the visualization of their structure look natural.
- Swagger Documentation: Available at: http://localhost:8081/swagger-ui/index.html
- Pagination: It is worth noting that pagination is implemented only at the backend level for potential future use, but it has not been implemented at the frontend level.
- Bugs: Before the task was submitted, the worker counter stopped working in the nodes (On frontend level).
- Backend: Spring Boot (Java)
- Frontend: React
- Database: PostgreSQL
Make sure Docker and Docker Compose are installed on your computer. Installation instructions can be found on the official websites:
First, clone the project repository:
git clone https://github.com/your-repository/iteco-task.git
cd iteco-task
- Ensure your Docker Daemon is running.
- Start Docker Compose to create and launch the containers:
docker-compose up --build
After successfully launching the containers:
- Backend: is available at: http://localhost:8081
- Frontend: is available at: http://localhost:3000
The database will be automatically initialized using the init.sql script, which is connected to the database container.
- Ensure that ports 8081 and 5432 are not occupied by other applications.
- If you want to change the database configuration, edit the environment variables in docker-compose.yml.