An open API service indexing awesome lists of open source software.

https://github.com/thatfactory/lingokit

A plug-and-play, UI-agnostic Swift toolkit for building and scoring language-learning exercises. 📚
https://github.com/thatfactory/lingokit

domain-logic education game-development gamification language language-learning listening package reading speaking swift swiftpm ui-agnostic writing

Last synced: 3 months ago
JSON representation

A plug-and-play, UI-agnostic Swift toolkit for building and scoring language-learning exercises. 📚

Awesome Lists containing this project

README

          


Swift
Xcode
SPM
Platforms
DocC
License
CI
Release

# LingoKit
A plug-and-play, UI-agnostic Swift toolkit for building and scoring language-learning exercises. 📚

It supports activities across *reading*, *writing*, *listening*, and *speaking* by providing reusable exercise modules and consistent evaluation/scoring logic.

Instead of organizing by modality, `LingoKit` organizes by exercise type—such as `intent classification`, `cloze`, or `ordering`—allowing the same exercise to be reused across different contexts. For example, `intent classification` can work with written prompts (*reading*) or audio transcripts (*listening*).

This approach keeps UI and content flexible while making it easy to integrate well-defined challenges and receive consistent, comparable results.

Each exercise engine can expose an `ExerciseType` taxonomy value so host apps can model generic flows while keeping evaluation logic in `LingoKit`.

```mermaid
flowchart TB
subgraph HOST["Host App/Game"]
FLOW["ExerciseFlow"]
end

subgraph LK[" "]
ALL["LingoKit"]
CORE["LingoKitCore"]

IC["LingoKitIntentClassification"]
CLOZE["LingoKitCloze"]
ORDER["LingoKitOrdering"]
TILES["LingoKitTileAssembly"]
FTXT["LingoKitFreeText"]
SPEECH["LingoKitSpeechScoring"]
ETC["..."]
end

FLOW --> ALL

ALL --> IC
ALL --> CLOZE
ALL --> ORDER
ALL --> TILES
ALL --> FTXT
ALL --> SPEECH
ALL --> ETC

IC --> CORE
CLOZE --> CORE
ORDER --> CORE
TILES --> CORE
FTXT --> CORE
SPEECH --> CORE
ETC --> CORE
```