https://github.com/narbase/narcore-kunafa
Starter project with PEKK stack.
https://github.com/narbase/narcore-kunafa
Last synced: about 1 year ago
JSON representation
Starter project with PEKK stack.
- Host: GitHub
- URL: https://github.com/narbase/narcore-kunafa
- Owner: Narbase
- Created: 2022-09-04T09:57:47.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2024-06-04T05:48:56.000Z (about 2 years ago)
- Last Synced: 2025-05-08T07:44:28.962Z (about 1 year ago)
- Language: Kotlin
- Size: 2.08 MB
- Stars: 2
- Watchers: 2
- Forks: 7
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Running the project
To run the project, you need to run the server and the frontend.
### Running the server
In the terminal, run `./gradlew narcore-server:run`
### Running the frontend
In the terminal, run `./gradlew :narcore-web:jsBrowserDevelopmentRun -t`
## Understanding the codebase
### Naming Suffixes
objectTable -> DB table
objectDto -> Data Transfer Object
objectDs -> Data Structure (e.g. POJO, POKO)
objectRm -> Repository Model (Normally a composition of multiple models)
### Data Transfer Objects (DTOs)
DTOs are placed in a common project and shared between the front end and the backend.
### DAO vs Repositories
A DAO correspond to a single Table (and a single model) and implement CRUD operations.
Repository is similar to a DAO Facade (Read about the Facade Design Pattern) and it abstracts the access to multiple
DAOs. However, it has a single "fat" model. Normally, the repo fat model is a composition of the models of the DAOs.
For example:
ClientsDao -> ClientsTable
UsersDao -> UsersTable
RolesDao -> RolesTable
Then:
UsersRepository -> ClientsDao, UsersDao, RolesDao