Assigns a lead from a list of candidates to handle a task (anything that can be done in rotation) using a Round Robin algorithm. Candidates participate in a designation pool and everyone has to be designated before the pool is considered closed.
Please find the use cases below
- Candidates are automatically designated by the system.
- A candidate is designated randomly from the list of candidates that have not yet participated in the current pool
- The designated candidate will receive an email with details about the designation
- Candidates can accept or decline the designation
- When a candidate accepts the designation, a new assignment will be created
- When a candidate declines the designation, a request will be broadcast to all candidates that have not yet participated in the current pool
- The first candidate to accept a broadcast designation request will get the assignment
- Candidates can be created, updated & deleted
- Some parameters are stored in the database and can be updated from the application.
- Browser notifications can be sent to candidates who have subscribed
- Spring & Spring Boot
- H2 Database & Spring Data for the persistence layer
- Quartz to schedule designation jobs
- Local email server to test designation emails
- Docker & Docker Compose to package & run the app
- React & Fluent UI for the presentation layer