Backend Application: Build a publisher-subscriber REST API using Java Spring Boot and mysql database server

Job ID: 34111591

Budget: ₹600 – ₹1,500 INR

A) Create TWO Rest API services as separate spring boot apps that can work together, as shown in the video attached to the project:

1) UMS (User management Service)
2) Messages

I am attaching the ERD diagrams for the data model class of both the services.

I am also attaching the DDL and DML to create and insert data into the MySQL database. Service should strictly adhere to the schema of this database.

Please use Swagger Editor to build an API contract for each of the services
As a result, you should have a YAML file, which can be shared.

For simplicity purposes, consider the following:

1) All users trying to achieve an API for now need to provide a token correlated to any chosen user from UserManagementService; your service

2) This triggers API,

3) Therefore you need to authorize any incoming request by making a blocking API call to UserManagementService to obtain permission for this chosen user by comparing it with the issues tokens.

4) For now use UUID as a token.
That UUID should be generated for any user, requesting UserManagementService with username and password in case that username and password are fit to any record inside the UserManagementService’s database.

=================================================================
B) Technologies to be used:

Java Spring Boot & MySQL database server

You should use Spring Boot Framework for the services with Netty as an application server (use the following dependency in your pom.xml file):
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>

=================================================================

C) End Result:
Rest api should be able to perform following operations:

Get all users
Get all roles
Add user
Get all messages
Get messages produces by specific producer
Get messages for specific subscriber