All Projects → ESchouten → CleanArchitecture

ESchouten / CleanArchitecture

Licence: MIT license
Kotlin backend based on the Clean Architecture principles. Ktor, JWT, Exposed, Flyway, OpenAPI/REST & KGraphQL/GraphQL generated endpoints, Gradle.

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to CleanArchitecture

ktor-hexagonal-benchmark
a experimental ktor application using hexagonal architecture
Stars: ✭ 32 (-88.19%)
Mutual labels:  hexagonal-architecture, exposed, ktor
cloud-native-hexagonal-node
A cloud native node microservice boilerplate based on the hexagonal architecture
Stars: ✭ 26 (-90.41%)
Mutual labels:  clean-architecture, hexagonal-architecture
kotlin-ktor-realworld-example-app
Real world backend API built in Kotlin with Ktor + Kodein + Exposed
Stars: ✭ 117 (-56.83%)
Mutual labels:  exposed, ktor
Clean Architecture Manga
🌀 Clean Architecture with .NET6, C#10 and React+Redux. Use cases as central organizing structure, completely testable, decoupled from frameworks
Stars: ✭ 3,104 (+1045.39%)
Mutual labels:  clean-architecture, hexagonal-architecture
exposed-ktor-jwt
example of an exposed+ktor+jwt secured kotlin app sporting an angular frontend
Stars: ✭ 21 (-92.25%)
Mutual labels:  exposed, ktor
ktor-hexagonal-multimodule
Template project to build ktor-based multi-module web service with Kotlin using Hexagonal architecture
Stars: ✭ 30 (-88.93%)
Mutual labels:  hexagonal-architecture, ktor
repository
[PHP 7] Implementation and definition of a base Repository in Domain land.
Stars: ✭ 26 (-90.41%)
Mutual labels:  clean-architecture, hexagonal-architecture
educational-platform
Modular Monolith Java application with DDD
Stars: ✭ 124 (-54.24%)
Mutual labels:  clean-architecture, hexagonal-architecture
poem-hexagon
A simple example for a hexagonal architecture.
Stars: ✭ 33 (-87.82%)
Mutual labels:  clean-architecture, hexagonal-architecture
financial
POC de uma aplicação de domínio financeiro.
Stars: ✭ 62 (-77.12%)
Mutual labels:  clean-architecture, hexagonal-architecture
archunit-junit5-kotlin
Generic Architecture Tests written in Kotlin using ArchUnit and Junit5
Stars: ✭ 22 (-91.88%)
Mutual labels:  clean-architecture, hexagonal-architecture
kmm
Rick & Morty Kotlin Multiplatform Mobile: Ktor, Sqldelight, Koin, Flow, MVI, SwiftUI, Compose
Stars: ✭ 52 (-80.81%)
Mutual labels:  clean-architecture, ktor
Domain Driven Hexagon
Guide on Domain-Driven Design, software architecture, design patterns, best practices etc.
Stars: ✭ 4,417 (+1529.89%)
Mutual labels:  clean-architecture, hexagonal-architecture
Ipoli Android
Fun & Motivational Todo List with Calendar for Android written in Kotlin. Using Redux, coroutines, Firebase and Clean Architecture.
Stars: ✭ 234 (-13.65%)
Mutual labels:  clean-architecture
Gitiny
An iOS app for GitHub with exploring trending
Stars: ✭ 247 (-8.86%)
Mutual labels:  clean-architecture
Clean Code Javascript Tr
JavaScript için Uyarlanmış Temiz Kod Kavramları
Stars: ✭ 232 (-14.39%)
Mutual labels:  clean-architecture
Movieguide
Movie discovery app showcasing MVP, RxJava, Dagger 2 and Clean Architecture
Stars: ✭ 2,573 (+849.45%)
Mutual labels:  clean-architecture
awesome-software-architecture
A curated list of awesome articles, videos, and other resources to learn and practice software architecture, patterns, and principles.
Stars: ✭ 1,594 (+488.19%)
Mutual labels:  clean-architecture
Write Readable Javascript Code
📖 All about writing maintainable JavaScript
Stars: ✭ 244 (-9.96%)
Mutual labels:  clean-architecture
Dotnet New Caju
Learn Clean Architecture with .NET Core 3.0 🔥
Stars: ✭ 228 (-15.87%)
Mutual labels:  clean-architecture

Kotlin Clean Architecture Backend

Kotlin backend based on the Clean Architecture principles.

The application is separated into three modules: Domain, Usecases and Adapters

  • Domain module contains all entities, it's validation and repository interfaces
  • Usecases module performs actions on the domain entities and repositories and does authorization

The domain and usecases modules do not have any external dependencies.

  • Adapter layer: each adapter is implemented as a standalone module, lowering dependence on specific frameworks and libraries and making them interchangable. The infrastructure module consumes all adapters (e.g. databases, (graphql) endpoints, authentication logic)

GraphQL endpoints are auto-generated from the Usecases

Technologies:

Ktor, JWT, Exposed, Flyway, OpenAPI/REST & KGraphQL/GraphQL generated endpoints, Gradle.

image

OpenAPI REST

Docs URL: http://localhost:8080/docs

API definitions: http://localhost:8080/openapi.json

GraphQL

Playground URL: http://localhost:8080/graphql

Login

query Login {
  LoginUser(a0: { email: "[email protected]", password: "P@ssw0rd!" })
}

Retrieve current user

query CurrentUser {
  AuthenticatedUser {
    id
    email
    authorities
  }
}
HTTP Headers
{
  "Authorization": "Bearer [TOKEN FROM LOGIN]"
}

Create new user

mutation CreateUser {
  CreateUser(
    a0: {
      email: "[email protected]"
      password: "Penait1!"
      authorities: [USER]
    }
  ) {
    id
    email
    authorities
  }
}
HTTP Headers
{
  "Authorization": "Bearer [TOKEN FROM LOGIN]"
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].