Skip to content

Commit

Permalink
Example projects (#242)
Browse files Browse the repository at this point in the history
This adds a list of example applications.

Question: is _Design_ the best place for this?

Closes #68
  • Loading branch information
serras committed Sep 26, 2023
1 parent e9d8c66 commit efa6b05
Showing 1 changed file with 46 additions and 0 deletions.
46 changes: 46 additions & 0 deletions content/docs/learn/design/projects.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
---
title: Example projects
sidebar_position: 5
description: Bigger projects where the design guidelines are put into practice
---

# Example projects

Here are some projects which use Arrow and follow the design guidelines. The purpose is showcasing these techiques in bigger applications; docs require small examples for comprehension, but sometimes they don't give the full picture that one of these complete applications can.

## [Real World](https://github.com/nomisRev/ktor-arrow-example)

[Real World](https://medium.com/@ericsimons/introducing-realworld-6016654d36b5) is a blogging platform that has been purposedly created to highlights the possibilities of each language and ecosystem. The linked implementation uses:

- [Ktor](https://ktor.io/) as HTTP framework.
- [SQLDelight](https://cashapp.github.io/sqldelight) for database access.
- [Kotest](https://kotest.io/) for property-based testing.

## [Functional Quiz](https://github.com/TevJ/kfp-quiz)

Service to create an answer quizzes, written in a functional style. Apart from Arrow, this project uses:

- [http4k](https://www.http4k.org/) as HTTP framework.
- [Exposed](https://github.com/JetBrains/Exposed) for database access.

## [Weather App](https://github.com/serras/WeatherApp)

Small weather forecast application built with [Compose Multiplatform](https://www.jetbrains.com/lp/compose-multiplatform/) Desktop.

- [Ktor Client](https://ktor.io/docs/getting-started-ktor-client.html) to perform HTTP requests.
- [Kotest](https://kotest.io/) for property-based testing.
- [Turbine](https://github.com/cashapp/turbine) to test ViewModels.

## GitHub Alerts

This application manages subscriptions to GitHub repository events, and turns them into Slack messages. It is architected as a series of microservices which communicate using [Apache Kafka](https://kafka.apache.org/)
message queues, by means of [kotlin-kafka](https://github.com/nomisRev/kotlin-kafka) and
[Avro4k](https://github.com/avro-kotlin/avro4k).

The same project is available using two different sets of technologies.

- The [Ktor version](https://github.com/47deg/gh-alerts-subscriptions-kotlin) uses [Ktor](https://ktor.io/) as HTTP framework.
- [Cohort](https://github.com/sksamuel/cohort) for health checks,
- [Tegral](https://tegral.zoroark.guru/docs/modules/core/openapi/ktor) for generating OpenAPI specs.
- [SQLDelight](https://cashapp.github.io/sqldelight) for database access.
- The [Spring version](https://github.com/xebia-functional/gh-alerts-subscriptions-kotlin-spring) uses the [Spring](https://spring.io/) modules for Kotlin.

0 comments on commit efa6b05

Please sign in to comment.