An open API service indexing awesome lists of open source software.

https://github.com/miroslavkolosnjaji/userservice

UserService is a Java-based microservice for user management, built with Spring WebFlux using reactive programming principles. It focuses on scalability and maintainability through clean architecture. This project is intended as a learning tool, not for production use, and demonstrates modern Java development practices with Spring WebFlux.
https://github.com/miroslavkolosnjaji/userservice

h2-database java json junit5 mapstruct mapstruct-plugin project-lombok r2dbc reactive-programming spring-boot spring-framework-6 spring-r2dbc spring-webflux

Last synced: 3 months ago
JSON representation

UserService is a Java-based microservice for user management, built with Spring WebFlux using reactive programming principles. It focuses on scalability and maintainability through clean architecture. This project is intended as a learning tool, not for production use, and demonstrates modern Java development practices with Spring WebFlux.

Awesome Lists containing this project

README

          

![Java](https://img.shields.io/badge/Java-17-brightgreen)
![Spring WebFlux](https://img.shields.io/badge/Spring%20WebFlux-Reactive-blue)
[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)
![GitHub forks](https://img.shields.io/github/forks/MiroslavKolosnjaji/UserService)

# UserService
The UserService microservice facilitates user management within an application. It employs reactive programming principles and follows a clean architecture approach
to ensure scalability and maintainability

## Limitations and Use Case
This microservice was developed as a practice project to explore reactive programming with Spring WebFlux.
It is not intended for production use but serves as a learning tool to demonstrate modern Java development practices and principles.

## Technologies Used:
- __Spring Framework:__ Core Framework for building enterprise Java applications.
- __Project Lombok:__ Library for reducing boilerplate code in Java.
- __Spring WebFlux:__ Provides reactive programming support for building asynchronous, non-blocking web applications.
- __Spring Security:__ Ensures robust authentification and authorization mechanisms for securing user data.
- __Spring Data R2DBC:__ Spring Data module for reactive database access using R2DBC
- __MapStruct:__ Used for mapping between domain entities and DTOs.
- __JUnit5:__ Testing framework for unit and integration testing in Java.
- __Spring Boot Test:__ Provides testing support for Spring Boot applications.
- __R2DBC (Reactive Relational Database Connectivity):__ Reactive database driver for relational databases.
- __H2 Database:__ In-memory relational database for development and testing purposes
- __JSON:__ Data interchange format for communication between the client and the server.

### Conclusion:
This UserService microservice embodies modern Java development practices, leveraging reactive programming,
clean architecture, and robust testing methodologies to deliver efficient and scalable user management functionality.

## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

# Microservice Projects Overview

Here are some of my microservice projects, all built with a similar structure and focused on different business domains. These projects allow me to practice writing reactive code with **WebFlux**.

[![RoleService](https://img.shields.io/badge/RoleService-Repo-blue?style=for-the-badge&logo=github)](https://github.com/MiroslavKolosnjaji/RoleService)
[![GymService](https://img.shields.io/badge/GymService-Repo-blue?style=for-the-badge&logo=github)](https://github.com/MiroslavKolosnjaji/GymService)
[![MemberService](https://img.shields.io/badge/MemberService-Repo-blue?style=for-the-badge&logo=github)](https://github.com/MiroslavKolosnjaji/MemberService)
[![MembershipService](https://img.shields.io/badge/MembershipService-Repo-blue?style=for-the-badge&logo=github)](https://github.com/MiroslavKolosnjaji/MembershipService)
[![CityService](https://img.shields.io/badge/CityService-Repo-blue?style=for-the-badge&logo=github)](https://github.com/MiroslavKolosnjaji/CityService)

Feel free to check them out to explore the differences in entities and how each service is implemented.