close
The Wayback Machine - https://web.archive.org/web/20210427090913/https://github.com/kantord/LibreLingo
Skip to content
main
Switch branches/tags
Go to file
Code

Files

Permalink
Failed to load latest commit information.

Build status This project is using Percy.io for visual regression testing. BCH compliance David

Image

LibreLingo

a community-owned language-learning platform

» Try LibreLingo now! «

πŸ’¬ Chat β€’ πŸ‘©β€πŸ’» Contribute! β€’ πŸ’΅ Sponsor β€’ πŸ“„ Development docs β€’ ☎️ Schedule a call about Librelingo

About LibreLingo

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. If you agree with LibreLingo's mission, consider helping to build and maintain it, and please consider making a monetary contribution.

Table of Contents
  1. About LibreLingo
  2. Platform
  3. Milestones
  4. Attributions
  5. Articles
  6. Become a contributor
  7. See also

Platform

Web app

The LibreLingo web app is a lightweight, interactive web app for learning foreign languages using LibreLingo courses.

Features:

  • 🎯 practice using interactive exercises
  • πŸ—“οΈ spaced repetition
  • πŸ’Ύ save and monitor progress
  • πŸ” synchronise progress across multiple devices
  • πŸ“± works on various devices such as phones, tablets and desktop computers

Screenshots

Image Image Image Image

librelingo-tools

librelingo-tools is a Python 🐍 package that contains modules that help working with LibreLingo courses.

Setup

librelingo-tools can be installed using pip:

pip install librelingo-tools

Exporting courses to JSON

librelingo-tools has a command line program that can export YAML-based LibreLingo courses into the JSON format used by the web app.

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.

Loading courses in a Python program

You can use librelingo-tools to load YAML-based LibreLingo courses in your Python program.

from librelingo_yaml_loader import yaml_loader

course = yaml_loader.load_course("./path/to/my/course")

load_course returns a Course() object

Milestones

Current focus

Make it possible to contribute to courses through GitHub

  • 🏁 Demo course content in Spanish for English speakers
  • 🏁 Some basic building blocks of course content implemented
  • 🏁 Developers can use course editor
  • 🏁 Basic theme/branding
  • 🏁 Course progress can be properly synchronised across devices
  • 🏁 Course editor can be accessed by all course contributors
  • 🏁 At least the basics of the Spanish course are ready
  • 🏁 Most of the course building blocks are implemented
  • 🏁 All of the basic building blocks of courses are implemented
  • 🏁 Spaced repetition implemented

Become a contributor

🌍 UI translation

πŸ“– Course content

πŸ‘©πŸΎβ€πŸ’» Development

You can help LibreLingo by testing it and submitting feature requests or bug reports: https://github.com/kantord/LibreLingo/issues/new. If you want to get in touch, you can use my contact details on my GitHub profile.

Confused? Have a question?

There is a Matrix/FreeNode IRC channel #LibreLingo, instructions for joining:

  • Matrix: #LibreLingo on matrix.org
  • IRC: connect to irc.freenode.net with your favourite client and join #LibreLingo

Articles

License

LibreLingo is licensed under the AGPL-3.0 License. Course content and other creative content might be licensed under other licenses, such as CC.

This image shows a summary of the licensing of our dependencies:

FOSSA Status

Attributions

Mascot

Creative Commons License
Mascot images are released under Creative Commons Attribution-ShareAlike 4.0 International License.

The mascot is designed by @almostdesigner.

Contributors ✨

All Contributors

Thanks goes to these wonderful people (emoji key):

Image
Daniel Kantor

πŸ’»
Image
Klemen SkerbiΕ‘

πŸ€”
Image
Mirek Mazel

πŸ€”
Image
Chris Babcock

πŸ€”
Image
Liaizon Wakest

πŸ€”
Image
Trolli Schmittlauch

πŸ€”
Image
JΓ©rΓ΄me Deuchnord

πŸ€”
Image
Felix Ableitner

πŸ›
Image
Navan Chauhan

πŸš‡ πŸ’» 🎨 πŸ“–
Image
Roshan Jossy

πŸ€” πŸ’» πŸ“–
Image
ledgelight

πŸ€”
Image
Francis Tyers

πŸ€” πŸ“–
Image
titanix

πŸ€”
Image
Michael Moroni

🌍
Image
pssandhu

🎨
Image
Stefan Lobbenmeier

πŸ›
Image
kylepollina

πŸ’»
Image
slesingerm

πŸ€” πŸ› πŸ‘€
Image
iasonasma

πŸ’» ⚠️
Image
Caroline Delesalle

🎨
Image
borbota

πŸ›
Image
decentral1se

πŸ“– πŸ€”
Image
James Adams

πŸ›
Image
Arnold Schrijver

πŸ€”
Image
Dale Visser

πŸ›
Image
oscarfrancois

πŸ“–
Image
dhelmr

πŸ’»
Image
Matt

πŸ‘€ πŸ› 🚧 πŸ’» πŸ“–
Image
Jean-AndrΓ© Santoni

πŸ€” πŸ“– 🎨
Image
Lucas Campos Teixeira e Nascimento

πŸ“– πŸ€”
Image
Pooja Desur

πŸ“–
Image
Wesley Mutwiri

πŸ’»
Image
Simon B.

πŸ€”
Image
Karthik Shetty

🚧
Image
Joshua Ide

πŸ’»
Image
Jobe Dylbas

πŸ’»
Image
DÑvid KristiÑn Luterančík

πŸ€” πŸ’»
Image
Sai Sandeep Mutyala

πŸ’»
Image
Artur Bauer

πŸ’»
Image
Etza

πŸ’»
Image
Kyle Mumma

πŸ’» πŸ€”
Image
zinovik

πŸ’»
Image
Himank Pathak

πŸ’» πŸ›
Image
x4th

πŸ’»
Image
Christian Dimas

πŸ’»
Image
Marco Ciampa

πŸ›
Image
Joshua | DC7IA

πŸ›
Image
Reyzadren

πŸ€”
Image
Andreas

πŸ“–
Image
Marco H

πŸ–‹
Image
Dan OReilly

πŸ€”
Image
Douglas Ferlini

πŸ’»
Image
Michael Nock

πŸ’» πŸ€”
Image
davidak

πŸ€”
Image
adnan360

πŸ–‹ πŸ€” πŸ“–
Image
Lamdarer

πŸ“–
Image
Luther

πŸ€”

This project follows the all-contributors specification. Contributions of any kind welcome!

See also

  • omnilingo, listening-based language learning