School Management RestAPI Application using Kotlin, Reactor, Webflux and Spring Boot application.
Table of Contents
This application is an example of School Management, created using Kotlin, Reactor, Webflux and Spring Boot. The architecture is based en hexagonal architecture and DDD principles.
NOTE: In this example just implemented one use case: create School and your classrooms. In order to learn is interesting that the student implement the rest of use case.
- Organization of layers using hexagonal architecture and DDD principles.
- Spring boot web starter and web.
- Reactive programming with Reactor.
- Reactive api with Reactor Webflux.
- Errors handlers.
- The integration between Kotlin with Spring.
To start this project use gradle tasks in application.
- Import the project as Gradle project.
- To build the project and to run app use
bootRun
task on the Gradle tool window (View | Tool Windows | Gradle
).
Here https://www.jetbrains.com/help/idea/gradle.html#gradle_tasks you can read how to run Gradle task from the Gradle toolbar in IntelliJ IDEA.
You can also build the project and run all tests in the terminal:
./gradlew bootRun
The School Management example is published in localhost and in 8080 port.
As Example, this API allows performs one types of http methods:
Create school and your classrooms
url: http://localhost:8080/management/school
headers: Content-Type application/json
body:
{
"schoolName":"Cosmic Coding School",
"classrooms":[
{
"name:" : "Aula A",
"code": "A-A",
"capacity": 25
},
{
"name:" : "Aula Multimedia",
"code": "A-M",
"capacity": 50
}
]
}
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Don't forget to give the project a star! Thanks again!
Distributed under the APACHE License. See LICENSE-2.0.txt
for more information.
Jordi Jiménez Guil - info@cosmiccodingcommunityclub.com
The following resources may be helpful in your learning: