Backend:
- MySQL
- RabbitMQ
- gRPC
- MongoDB
- Spring Boot
- Authentication with JWT tokens
- Mockito + H2 + JUnit4 for tests
Frontend:
- Vue.js
- Sock.js + WebSocket
- First compile the
model
backend module. Then you can compile thehr
module which depends onmodel
. Without Maven compilation it won't work, because the Java classes are created during this compilation phase from the protobuf files(gRPC). - You have to have MySQL version 5, MongoDB 4.0.4 and RabbitMQ 3 installed. If you have Docker installed, you can simply start a MongoDB and RabbitMQ instance with the following commands:
docker run -d -p 27017-27019:27017-27019 --name mongodb mongo:4.0.4
docker run -d -p 5672:5672 -p 15672:15672 --name my-rab rabbitmq:3management
-
When running the app for the first time, pass
-Drun.arguments="mongodb-update"
as an argument. This will initialize MongoDB. -
The frontend can be simply started by
npm install
and thennpm run serve
There are several roles in the system: Moderator, Admin, Project Manager, Regular user, Payroll team