No description
Find a file
2026-03-24 20:02:20 +00:00
api Create the /api router 2026-03-21 20:47:15 +00:00
frontend Add docker to the frontend 2026-03-24 20:02:20 +00:00
Language Learning API Generate the audio; move to background task 2026-03-19 10:51:10 +00:00
.env.example Generate the audio; move to background task 2026-03-19 10:51:10 +00:00
.gitignore initial commit 2026-03-18 20:55:02 +00:00
docker-compose.yml Generate the audio; move to background task 2026-03-19 10:51:10 +00:00
Makefile Create the /api router 2026-03-21 20:47:15 +00:00
README.md Generate the audio; move to background task 2026-03-19 10:51:10 +00:00

Language learning app

Description

This is an app designed to help people learn a second(+) language. Initially from English. The app will start with French, Spanish, Italian, and German as the target languages. With English as the only source language.

The thesis of the app is that spaced repetition and recall remain effective mechanisms for language acquisition, and that exposure to appropriate, realistic text, can make that process less repetitive or dull. And that mixing text and audio allows the user to know how words "sound".

At present, the app doesn't have a solution to recognising speech, another important part of language learning.

It improve learner proficiency by building a mechanism for generating realistic, level-appropriate text from user-specified inputs, generated by LLMs. There will also be audio medium, similar to short podcasts, generated from the text.

The application has a back-end written in python (fastapi), because of the Python ecosystem around data and machine learning.

The application will have a web front end written in Svelte Kit. It will adopt progressive web app standards, to allow offline use.

Communication between the two is through HTTP, authenticated with JWT tokens.

Technical Design

This application must remain self-hostable. It should not rely on proprietary infrastructure (e.g. AWS Lambda functions) to run. It should use Docker Compose and Makefiles to build projects and deploy them onto a local server or a VPS.

The main components so far are:

  • Backend server (fastapi)
  • Front end (SvelteKit), yet to be built
  • Object storage (Ceph), yet to be built