You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+24-5Lines changed: 24 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,18 +1,23 @@
1
1
# 
2
2
3
3
> ### Kotlin + Spring Codebase
4
-
> A comprehensive codebase featuring real world examples (CRUD, authentication, advanced patterns, etc.) that adheres to the [RealWorld](https://github.com/gothinkster/realworld-example-apps) specification and API.
4
+
> A comprehensive codebase featuring real world examples (CRUD, authentication, advanced patterns, etc.) that adheres to
5
+
> the [RealWorld](https://github.com/gothinkster/realworld-example-apps) specification and API.
5
6
6
-
This project was developed to demonstrate a full-stack application built with Kotlin + Spring. It includes robust features such as CRUD operations, user authentication, routing, pagination, and more. The implementation strictly follows the Kotlin + Spring community style guides and best practices.
7
+
This project was developed to demonstrate a full-stack application built with Kotlin + Spring. It includes robust
8
+
features such as CRUD operations, user authentication, routing, pagination, and more. The implementation strictly
9
+
follows the Kotlin + Spring community style guides and best practices.
7
10
8
-
For further information on how this project interacts with various frontends and backends, please refer to the [RealWorld](https://github.com/gothinkster/realworld) repository.
11
+
For further information on how this project interacts with various frontends and backends, please refer to
12
+
the [RealWorld](https://github.com/gothinkster/realworld) repository.
9
13
10
14
---
11
15
12
16
## Table of Contents
13
17
14
18
-[Prerequisites](#prerequisites)
15
19
-[Project Structure](#project-structure)
20
+
-[Database Design](#database-design)
16
21
-[Features](#features)
17
22
-[Configuration and Environment Variables](#configuration-and-environment-variables)
18
23
-[Running the Application](#running-the-application)
@@ -30,15 +35,29 @@ For further information on how this project interacts with various frontends and
30
35
31
36
The project is structured using a modular architecture, where each module plays a specific role:
32
37
33
-
-**/api**: Contains the main application server code, including the entry point. This module implements the presentation and application layers.
38
+
-**/api**: Contains the main application server code, including the entry point. This module implements the
39
+
presentation and application layers.
34
40
-**/core**: Houses the domain layer, defining the core business logic and domain rules.
35
-
-**/core-impl**: Provides concrete implementations for the domain logic specified in the `/core` module. This includes functionality such as CRUD operations and integration with specific frameworks.
41
+
-**/core-impl**: Provides concrete implementations for the domain logic specified in the `/core` module. This includes
42
+
functionality such as CRUD operations and integration with specific frameworks.
36
43
-**/e2e**: Maintains end-to-end test scripts and related resources.
37
44
38
45

39
46
40
47
---
41
48
49
+
## **Database Design**
50
+
51
+
52
+

53
+
54
+
Since there were no strict requirements regarding the field lengths, arbitrary sizes were chosen. To facilitate the use
55
+
of UUIDs for domain IDs, the column was defined as `binary(16)`. Additionally, as MySQL InnoDB manages a clustered index
56
+
by default, a dedicated primary key using `int` (4 bytes) was selected to prevent unnecessary expansion of the clustered
57
+
index. No extra indexes have been defined at this stage in order to avoid premature optimization.
58
+
59
+
---
60
+
42
61
## Features
43
62
44
63
-**CRUD Operations**: Enables create, read, update, and delete functionalities.
0 commit comments