Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kantord/LibreLingo
π’ π π a community-owned language-learning platform
https://github.com/kantord/LibreLingo
agplv3 education flashcards foreign-language hacktoberfest hacktoberfest2022 language-learning python second-language-acquisition spaced-repetition svelte
Last synced: 3 days ago
JSON representation
π’ π π a community-owned language-learning platform
- Host: GitHub
- URL: https://github.com/kantord/LibreLingo
- Owner: kantord
- License: agpl-3.0
- Created: 2019-12-01T23:15:08.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2024-10-25T08:08:23.000Z (2 months ago)
- Last Synced: 2024-10-29T14:50:55.606Z (2 months ago)
- Topics: agplv3, education, flashcards, foreign-language, hacktoberfest, hacktoberfest2022, language-learning, python, second-language-acquisition, spaced-repetition, svelte
- Language: Python
- Homepage: https://librelingo.app
- Size: 2.29 GB
- Stars: 1,957
- Watchers: 28
- Forks: 213
- Open Issues: 162
-
Metadata Files:
- Readme: README.md
- Contributing: docs/CONTRIBUTING.md
- License: LICENSE
- Code of conduct: docs/CODE_OF_CONDUCT.md
Awesome Lists containing this project
- awesome-list - LibreLingo - owned language-learning platform | kantord | 957 | (Python)
README
LibreLingo
a community-owned language-learning platform
[![This project is using Percy.io for visual regression testing.](https://percy.io/static/images/percy-badge.svg)](https://percy.io/LibreLingo/LibreLingo)
[![GitHub release (latest by date)](https://img.shields.io/github/v/release/kantord/LibreLingo?color=darkcyan)](https://github.com/kantord/LibreLingo/releases)
![Build status](https://kantord.semaphoreci.com/badges/LibreLingo.svg?style=shields 'Build status')
[![Matrix](https://img.shields.io/matrix/space-librelingo:matrix.org?color=%23000&label=chat%20on%20matrix&logo=matrix)](https://app.element.io/#/room/#space-librelingo:matrix.org)
[![call](https://img.shields.io/badge/%E2%98%8E%EF%B8%8F-Schedule_a_call-darkcyan)](https://app.harmonizely.com/harmonizely-uoicqk)
[![Mastodon](https://img.shields.io/mastodon/follow/000318010?domain=https%3A%2F%2Ffosstodon.org%2F&style=social)](https://fosstodon.org/@librelingo)## About
LibreLingo's mission is to create a modern language-learning platform that is owned by the community of its users. All software is licensed under AGPLv3, which guarantees the freedom to run, study, share, and modify the software. Course authors are encouraged to release their courses with free licenses.
If you want to know why I built LibreLingo, [I recommend reading my article on dev.to](https://dev.to/kantord/why-i-built-librelingo-280o).
Table of Contents
About
Using LibreLingo
Developing LibreLingo
Milestones
Roadmap
Contribution
License
See also
Donate
## Using LibreLingo
### Web app
LibreLingo offers an official [web app](https://librelingo.app/), which is very lightweight and written in Javascript using Svelte framework and pouchDB by the way, to try out LibreLingo courses interactively right in your browser, no installation required!
#### Features
- :bow_and_arrow: practice using interactive exercises
- :juggling_person: spaced repetition
- :bar_chart: save and monitor progress
- :arrows_counterclockwise: synchronise progress across multiple devices
- :iphone: works on various devices such as phones, tablets and desktop computers
- :people_holding_hands: owned by you, the community
- :dove: most courses are free, as in freedom and also as in beer#### Screenshots
### librelingo-yaml-loader
[librelingo-yaml-loader](https://pypi.org/project/librelingo-yaml-loader/) is a Python π package that lets you load LibreLingo courses to create software based on LibreLingo. To see an extensive tutorial, [check out this article](https://dev.to/kantord/practice-tdd-by-creating-a-librelingo-based-language-learning-app-4apf).
#### Setup
[librelingo-yaml-loader](https://pypi.org/project/librelingo-yaml-loader/) can be installed using pip:
```sh
pip install librelingo-yaml-loader
```#### Loading courses in a Python program
You can use librelingo-yaml-loader to load YAML-based LibreLingo courses in your Python program.
```python
from librelingo_yaml_loader import yaml_loadercourse = yaml_loader.load_course("./path/to/my/course")
````load_course` returns a [Course()](https://github.com/kantord/LibreLingo/blob/main/apps/librelingo_yaml_loader/librelingo_yaml_loader/data_types.py) object.
### librelingo-json-export
[librelingo-json-export](https://pypi.org/project/librelingo-json-export/) is a Python π package that contains modules that let's you export LibreLingo courses into JSON files that will be read by the web app. This might be useful if you want to deploy YAML-based LibreLingo courses as a web app.
#### Setup
[librelingo-json-export](https://pypi.org/project/librelingo-json-export/) can be installed using pip:
```sh
pip install librelingo-json-export
```#### Exporting courses to JSON
[librelingo-json-export](https://pypi.org/project/librelingo-json-export/) has a command line program that can export YAML-based LibreLingo courses into the JSON format used by the web app.
```sh
Usage:
cli.py [OPTIONS] INPUT_PATH OUTPUT_PATH
Convert a YAML course into a JSON course.
Options:
--dry-run / --no-dry-run --help
Show this message and exit.
```## Developing LibreLingo
Want to contribute to LibreLingo? Or create your own fork? Perhaps you want to use it in your creative project?
To get started with running the development environment on your computer and understanding the software architecture, [head to our development documentation](https://librelingo.app/docs/).
## Milestones
- [x] π Demo course content in Spanish for English speakers
- [x] π Some basic building blocks of course content implemented
- [x] π Developers can use course editor
- [x] π Basic theme/branding
- [x] π Course progress can be properly synchronised across devices
- [x] π Course editor can be accessed by all course contributors
- [x] π At least the basics of the Spanish course are ready
- [x] π Most of the course building blocks are implemented
- [x] π All of the basic building blocks of courses are implemented
- [x] π Spaced repetition implemented## Roadmap
- [ ] Officially releasing Basque course
- [ ] Make it possible to contribute to courses through GitHub
- [ ] Improving course creation UX over Github### Projects
- [Better audio support](https://github.com/kantord/LibreLingo/projects/14)
- [Support non-latin scripts](https://github.com/kantord/LibreLingo/projects/15)## Contribution
### Become a contributor
#### are you a developer?
You can help LibreLingo by testing it and submitting feature requests or bug reports: [here](https://github.com/kantord/LibreLingo/issues/new). If you want to get in touch, you can use my contact details on [my GitHub profile](https://github.com/kantord).
Go through the dev docs [here](https://librelingo.app/docs/CONTRIBUTING.html).Still got questions? Our Matrix/FreeNode IRC channel is `#LibreLingo`, join the dev community there and feel free to ask anything.
- Matrix: [`#LibreLingo`](https://app.element.io/#/room/#space-librelingo:matrix.org) on `matrix.org`
- IRC: connect to `irc.freenode.net` with your favourite client and join `#LibreLingo`#### are you a linguaphile?
Learning new language is an awesome experience right? If you wanna let others experience that too, make a course on LibreLingo! Get started [here](https://github.com/kantord/LibreLingo/tree/main/docs/courses).
We are working on the process of creating courses, to make it more streamlined, if you have an idea to make it better, do share with us, create an [issue](https://github.com/kantord/LibreLingo/issues/new).
Note: You are always encouraged to release the courses under a free license.#### are you a wordsmith?
Translate the LibreLingo UI(LLUI) to make it more accessible, you can start [here](https://poeditor.com/join/project?hash=jKiKfen2Ye).
### Attributions
#### Mascot
The mascot is designed by [@almostdesigner](https://github.com/almostdesigner).
Mascot images are released under Creative Commons Attribution-ShareAlike 4.0 International License.### Contributors
[![All Contributors](https://img.shields.io/badge/all_contributors-92-orange.svg?style=flat-square)](#contributors-)
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
Daniel Kantor
π»
Klemen SkerbiΕ‘
π€
Mirek Mazel
π€
Chris Babcock
π€
Liaizon Wakest
π€
Trolli Schmittlauch
π€
JΓ©rΓ΄me Deuchnord
π€
Felix Ableitner
π
Navan Chauhan
π π» π¨ π
Roshan Jossy
π€ π» π
ledgelight
π€
Francis Tyers
π€ π
titanix
π€
Michael Moroni
π
pssandhu
π¨
Stefan Lobbenmeier
π
kylepollina
π»
slesingerm
π€ π π
iasonasma
π» β οΈ
Caroline Delesalle
π¨
borbota
π
decentral1se
π π€
James Adams
π
Arnold Schrijver
π€
Dale Visser
π
oscarfrancois
π
dhelmr
π»
Matt
π π π§ π» π
Jean-AndrΓ© Santoni
π€ π π¨
Lucas Campos Teixeira e Nascimento
π π€ π
Pooja Desur
π
Wesley Mutwiri
π»
Simon B.
π€
Karthik Shetty
π§
Joshua Ide
π»
Jobe Dylbas
π»
DΓ‘vid KristiΓ‘n LuteranΔΓk
π€ π»
Sai Sandeep Mutyala
π»
Artur Bauer
π»
Etza
π»
Kyle Mumma
π» π€
zinovik
π»
Himank Pathak
π» π
x4th
π»
Christian Dimas
π»
Marco Ciampa
π
Joshua | DC7IA
π
Reyzadren
π€
Andreas
π
Marco H
π
Dan OReilly
π€
Douglas Ferlini
π»
Michael Nock
π» π€
davidak
π€
adnan360
π π€ π
Lamdarer
π
Luther
π€
Nart Tlisha
π
Binyamin Aron Green
π
StΓ©phane Guillou
π€
Mohammad-Ali A'RΓBI
π
RGBradley
π π€
Cameron Radmore
π π»
Zeb Burke-Conte
π π» π
Florian CUNY
π€
uberstar100
π€
Gabe D
π π»
Ekaterina Mozheiko
π»
Gerardo Alcantara
π»
JP Damas
π»
frostedkitsune
π€ π
sinhalaquiz
π π»
Peter Cruckshank
π»
Gabor Szabo
π π» π€ π
dimkard
π»
Dushyant Bhardwaj
π»
Piotr Idzik
π»
Amine Louzar
π»
Najmieh Sadat Safarabadi
π»
Ben
π
CutThroat
π»
Rodrigo Pova
π»
Yulia
π»
Sandra
π¨ π»
Daniel Gallagher
π»
Frey0-0
π»
rsk2
π»
Joel NiemelΓ€
π
Jeremy Kenny
π»
Abbi-Hackbardt
π»
Daniel Moreno
π»
Bianca Davies
π
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
## Contributors who don't have a GitHub account.
Since [All Contributors](https://allcontributors.org/) relies on GitHub accounts to show user info, it's not possible to use it to credit people who don't have a GitHub account. This place is intended as a list of people who contributed without registering for a GitHub account.
- **[Kate](https://codeberg.org/kate)** - creating a [LibreLingo course](https://codeberg.org/kate/LibreLingo_FR_from_EN) on Codeberg
## License
LibreLingo is licensed under the AGPL-3.0 license. In addition, course content and other creative content might be licensed under different licenses, such as CC. This image shows a summary of the licensing of our dependencies:
[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fkantord%2FLibreLingo.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fkantord%2FLibreLingo?ref=badge_large)
## See also
- [omnilingo](https://github.com/omnilingo/omnilingo), listening-based language learning
## Donate
Help us to keep going