Skip to content

Commit ee781bd

Browse files
committed
Update README with project stack details and refined structure
1 parent cf2ddcd commit ee781bd

File tree

1 file changed

+12
-8
lines changed

1 file changed

+12
-8
lines changed

README.md

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,18 @@ the [RealWorld](https://github.com/gothinkster/realworld) repository.
4444

4545
## Project Structure
4646

47-
The project is structured using a modular architecture, where each module plays a specific role:
48-
49-
- **/api**: Contains the main application server code, including the entry point. This module implements the
50-
presentation and application layers.
51-
- **/core**: Houses the domain layer, defining the core business logic and domain rules.
52-
- **/core-impl**: Provides concrete implementations for the domain logic specified in the `/core` module. This includes
53-
functionality such as CRUD operations and integration with specific frameworks.
54-
- **/e2e**: Maintains end-to-end test scripts and related resources.
47+
This project is built on a solid foundation using Spring Boot 3, JDK 21, Spring MVC, Spring Data JPA, and Spring Security. From the outset, we evaluated various options, including more Kotlin-centric ORMs such as exposed, but ultimately opted for JPA. This decision was driven by the fact that most Kotlin developers also possess strong Java expertise, making familiarity with JPA a practical and essential skill in real-world settings.
48+
49+
By choosing JPA, we ensure that our team can leverage a widely adopted and industry-tested solution, while our decoupled infrastructure remains flexible enough to allow for switching to an alternative ORM in the future if the need arises.
50+
51+
Moreover, Spring remains a dominant framework in the Java ecosystem and offers robust capabilities when used with Kotlin. Consequently, all modules in our project are built upon Spring-related dependencies, reflecting our commitment to utilizing proven technologies and streamlining development efforts.
52+
53+
The project is organized into a modular architecture where each component serves a distinct purpose:
54+
55+
- **/api**: Contains the main application server code including the entry point. This module implements both the presentation and application layers.
56+
- **/core**: Defines the domain layer, encapsulating the core business logic and domain rules.
57+
- **/core-impl**: Provides concrete implementations of the domain logic specified in the `/core` module, including CRUD operations and integration with specific frameworks.
58+
- **/e2e**: Houses the end-to-end test scripts and all related testing resources.
5559

5660
![](/docs/module-structures.png)
5761

0 commit comments

Comments
 (0)