TO DO List - Ojingo Code Challenge

Code challenge related to creating an API that supports requests for to do list app.

Stack

This project was built using the technologies below:

Explaining the project

This project contains two microservices: register and todo.

The register microservice is responsible for CRUD operations related of Teams, CRUD operations related of Shared To Do Lists and user association a team.

The todo microservice is responsible for CRUD of Notes, set favorite notes and set notes how done.

In this project, we have two administrative profiles. the profile administrator is responsible for create shared to do lists and associate a user in a team on register microservice and this profile has all permissions of the second administrative profile, the user, this profile is responsible for create notes and access the shared to do lists of the team the user is associated with.

Use Cases

The keycloak is the solution responsible for register an user and set the permissions this.

Graylog is the solution for centralized application logging.

jaeger is the solution for analyzing application requests.

deebzium is the solution for sending operations done on tables that are in the postgres database to kafka.

Graylog is the solution for centralized application logging.

jaeger is the solution for analyzing application requests.

debezium is the solution for sending operations done on tables that are in the postgres database to kafka. this operations are integrated in all microservices.

Architecture

Architecture

DB Models of the Microservices

Register

Model DB MS Register

Todo

Model DB MS TODO

Class Diagrams of the Microservices

Register

Class Diagram MS Register

Todo

Class Diagram MS TODO

Document for a best visualization

Endpoints

Register MS

Teams

Teams Endpoints

Todos

Todos Endpoints

Users

Users Endpoints

TODO MS

Notes

Notes Endpoints

Todos

Todos Endpoints

Users

Users Endpoints

Getting started

Prerequisites

  • docker
  • docker-compose
  • maven
  • java 11

Start Application

for execute this application run the command below to execute Microservices

$ chmod +x startup.sh
$ ./start.sh

License

Copyright Antonio Pedro Ferreira.

Released under an MIT License.