This mono-repository contains the system setup for the evaluation and management of employees.
Here is an overview of the architecture
This repository uses Lerna to manage projects. They are:
The backend for the system. See documentation here
The web app client. See documentation here
The system utilises docker-compose to allow for easy deployment across environments. To get started please follow these steps:
- Install Docker Compose (setup here)
- Navigate to the root folder of this repository
- Run
docker-compose up -d
(prefixingsudo
may be required) - Wait for docker to pull the neccasary images, build the projects and start everything up
- Navigate to http://localhost/
- On the login page input the following dummy admin credential:
- Email: [email protected]
- Password: admin
Tested using Docker Compose v1.24.1 and Docker v19.03.8. If you have any difficulties with setup please open an issue in this repository
The following assumptions were made when creating this project
-
The number of users is small
This assumption invalidates the necessity of a load-balancer in the system architecture in addition to adding scalablity through kubernetes, sharding etc.
-
Users and employees have a 1:1 relationship
If this product was to be used as a multi-tenancy application, users and employees would need to be decoupled to allow for one user to be evaluated in several companies.
-
Administrators are also employees, and as such can be reviewed.
Through the tool both administrators and normal users can be evaluated.
-
Users can evaluate their own performace
A vital part of development is one's ability to self-evaluate.
-
Employee feedback cannot be edited or deleted
To promote honesty and maintain integrety in the process.
The following frameworks are used:
- React
- Gatsby
- i18next
- Typescript
- Node.js
- Koa.js
- MongoDB
- Docker
- Lerna
- Nginx
- Responsive
- Utilizing routing