docs: Update root README.md with more project information
This commit is contained in:
parent
7ee40ccad7
commit
c0539bcf59
1 changed files with 25 additions and 5 deletions
30
README.md
30
README.md
|
|
@ -1,18 +1,38 @@
|
||||||
# Language learning app
|
# Language learning app
|
||||||
|
|
||||||
## Description
|
Language Learning App is a set of software packages that deliver a language learning experience for second+ language learners to help boost fluency through exposure to realistic-looking text.
|
||||||
|
|
||||||
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.
|
## Thesis statements
|
||||||
|
|
||||||
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".
|
1. Presentation of novel, realistic looking text and accompanying audio provide an engaging, motivating chance for language learners to increase their fluency of another language.
|
||||||
|
|
||||||
|
2. Interacting with a language in non short-form text (i.e. more than one sentence at a time) is more complex, and more beneficial, that interacting with single sentences.
|
||||||
|
|
||||||
|
3. Language learning should focus on the most "useful" words first. Traditional grouping of words (e.g. items of clothing, hobbies) used in traditional education are too abstract. Providing some level of personalisation of topic, and selection of words is important to engagement and motivation.
|
||||||
|
|
||||||
|
## Description of product
|
||||||
|
|
||||||
|
Although spaced repetition is an effective mechanism to better remember words, showing words in context remains an important "before" step. This app adds value by providing the user with realistic-looking written and audio content in the language(s) they are learning at an appropriate level. From there, the user can identify vocabulary that they are unfamiliar with, and would like to commit to memory.
|
||||||
|
|
||||||
|
Additionally, Language Learning App treats the text-audio pair as important. Language learners don't just want to be able to read and write a language, they need to know how words sound
|
||||||
|
|
||||||
At present, the app doesn't have a solution to recognising speech, another important part of language learning.
|
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.
|
## Technical Specifics
|
||||||
|
|
||||||
|
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 application has a back-end written in python (fastapi), because of the Python ecosystem around data and machine learning.
|
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.
|
In the future, the API will generate XML endpoints for postcast-playing app integration (as it's an audio-first medium).
|
||||||
|
|
||||||
|
The application has a web-based front end written in Svelte Kit. It will adopt progressive web app standards, to allow offline use. Due to technical complexity, and limitations, there are no plans for native app development.
|
||||||
|
|
||||||
|
The app relies on containerisation and docker to orchestrate moving parts. In production, there will be a need to consider Content Delivery Networks (CDNs) as high bandwidth is expected.
|
||||||
|
|
||||||
|
Content generation relies heavily on asynchronous jobs.
|
||||||
|
|
||||||
|
The app should rely on self-hostable infrastructure as much as possible. Vendor-specific queueing and messaging protocols (e.g. AWS's SNS) are a liability.
|
||||||
|
|
||||||
Communication between the two is through HTTP, authenticated with JWT tokens.
|
Communication between the two is through HTTP, authenticated with JWT tokens.
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue