LibreLingo🐒 🌎 πŸ“š a community-owned language-learning platform

Overview

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

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

librelingo-yaml-loader

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.

Setup

librelingo-yaml-loader can be installed using pip:

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.

from librelingo_yaml_loader import yaml_loader

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

load_course returns a Course() object

librelingo-json-export

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 can be installed using pip:

pip install librelingo-json-export

Exporting courses to JSON

librelingo-json-export 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.

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):


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

πŸ’»

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

See also

  • omnilingo, listening-based language learning
Comments
  • Looking for a mascot

    Looking for a mascot

    This is not an urgent issue, but I think LibreLingo could do with a nice mascot animal :smile_cat: I was thinking maybe of a turtle or a cat, with some nice personality, but I'm open to any suggestions.

    Ideally we would have at least a few different SVG designs with the same mascot, or a mascot that could easily be customized for different purposes or re-created in different scenarios.

    help wanted good first issue design 
    opened by kantord 31
  • feat: audio generation script: TTS only

    feat: audio generation script: TTS only

    Description

    With the changes made here, TTS can be configured on a per-course basis in YAML, and then a script can be used to generate audio using those settings. The script can run in either update (only generate new audios) or overwrite (generate everything from scratch) modes. Audios of removed phrases will be deleted automatically. An index JSON file is created for each course.

    Note that this PR does not include the results of running the script for existing courses.

    Is this related to any open issue(s)?

    This is the first step of #1473. The further work that could be done:

    • Add phrase-level setting to customize IPA
    • Other audio sources & attribution
    • Possible stylistic changes like creating voice subdirectories

    Is there anything you need help with to get this PR merged?

    I've used tons of relative path installs (otherwise it's not really possible to develop without write access to the PyPI packages), so I'll need help reverting those and replacing with actual published versions.

    Checklist

    Don't worry if you haven't done everything on this checklist. Simply create your PR, and make sure everything is done later, or ask for help if you don't know how to do it.

    • [x] The CI is passing
    • [x] I tested my implementation manually
    • [x] I wrote new tests to test my code, or updated existing tests to test my changes
    opened by zmbc 30
  • Help: how to open course editor to more people?

    Help: how to open course editor to more people?

    Problem statement

    While the course editor is fully functional and makes it easy to edit the course content, it does not facilitate collaboration sufficiently. It's not enough to draw in a wealth of contributions, it's also extremely important to maintain an efficient, sensible, and fun course structure. To do this, the course editor would probably need to enforce some sophisticated constraints, and also have a way to determine who can approve content.

    Some ideas

    Extend Django Admin with the required functionality. Or perhaps use Django to create a GraphQL or REST API, and build a custom frontend on top of that for the course editor. Perhaps move to a document store model for the course editor. Perhaps let some people experiment with course content being stored in a git repo for a specific course. Or try using a MediaWiki instance? What do you think about these ideas?

    I already have a proposed solution, however it might be rather tough to implement. Ideally, we'd have a solution that can be broken up into small tasks.

    help wanted question 
    opened by kantord 25
  • Easier-to-use audio generation

    Easier-to-use audio generation

    Is your feature request related to a problem? Please describe. If I want to add a new course with TTS listening exercises, it is not easy to do so.

    Describe the solution you'd like I am not sure about all the details, but it would at least include:

    • Configuration of TTS in the course YAML file.
    • A script that recognizes missing audios, generates them using the course's TTS configuration, and places them in the right directory with the right names.

    Describe alternatives you've considered I've seen this but it's more of an example for developers than anything, and in any case it doesn't show the whole process.

    The fetchAudios.sh script is in bash, which is probably not ideal and even less ideal if it gets more complex. I'm guessing Python would be better. There is also no documentation I can find of how the audios_to_fetch.csv file is generated.

    Additional context I'm interested in implementing this, if it gets the go-ahead. If it's not too much to review, I think this and allowing other audio sources could be combined into one MR.

    opened by zmbc 24
  • docs : Cleaned up documentation

    docs : Cleaned up documentation

    Fixes #789

    Description:

    Previously , the information was scattered among different files. This PR organizes all the contents for the development documentation , contribution files under separate sections so that a better understanding of the entire project can be obtained for newcomers or the existing contributors for this project.

    What has been added ?

    • Organized file sections under docs . Please find the changes here

    • Separate development docs section thus organized all the development docs . Please find the changes here

    • Improved the README.md and CONTRIBUTING.md so that they serve as an entry point for newcomers and existing contributors.

    • Reference to the correct files wherever required.

    opened by yash2189 20
  • Double clicking the words in sentence builder

    Double clicking the words in sentence builder

    Is your feature request related to a problem? Please describe. With translate sentence, only drag&drop is available. To improve user experience I suggest adding double click.

    Describe the solution you'd like Double clicking :

    • adds the word at the end of the sentence
    • removes the word from sentence into the word pool

    Additional context image

    help wanted 
    opened by DavidLuterancik 20
  • Add Bangla course

    Add Bangla course

    Description

    Adds "basics" course for Bangla (aka Bengali) language. Bangla is the 7th most spoken language according to Ethnologue (2020). So hope it's useful for the project and the users.

    Is this related to any open issue(s)?

    No

    Is there anything you need help with to get this PR merged?

    I've just created the basics course for Bangla. Plan to add the rest of them similar to the Spanish course. Created this PR to see if I'm on the right track before continuing. Please let me know if I need to add/change anything.

    Checklist

    Don't worry if you haven't done everything on this checklist. Simply create your PR, and make sure everything is done later, or ask for help if you don't know how to do it.

    • [ ] The CI is passing
    • [ ] I tested my implementation manually
    • [ ] I wrote new tests to test my code, or updated existing tests to test my changes
    opened by adnan360 19
  • Clean up documentation

    Clean up documentation

    We currently have our documentation scattered in different places:

    • https://github.com/kantord/LibreLingo#become-a-contributor
    • https://github.com/kantord/LibreLingo/blob/master/docs/CONTRIBUTING.md
    • https://librelingo.readthedocs.io/en/latest/

    And perhaps even somewhere else :-)

    The goal is to move all important information into well organized sections under https://librelingo.readthedocs.io/en/latest/ (generated based on the files here: https://github.com/kantord/LibreLingo/tree/master/docs)

    The development docs in the README and and CONTRIBUTING.md should mainly serve as entry points for this documentation.

    • Copy-paste all important information into files/sections within https://github.com/kantord/LibreLingo/tree/master/docs
    • Write simple, good entry points to this documentation at the relevant points where people will enter the documentation

    Bonus if you also organize the directories under https://github.com/kantord/LibreLingo/tree/master/docs :smile_cat:

    good first issue wontfix feature_request 
    opened by kantord 18
  • Create 'Skip all listening exercises' button

    Create 'Skip all listening exercises' button

    I'm hacking on this in a public space, with no headphones, so I'd to be able to do exercises without having to press SKIP on every second screen or so.

    This feature could probably disable listening until the end of the current lesson (or session) as a first step.

    Stretch goals would be to show some notification about these exercises being filtered out. There might be more exercise types like speaking exercises that would be nice to be able to disable. I think we can innovate on this aspect and maybe do better than some other platforms that spread out these settings between the profile and hour-based disable-timers :)

    good first issue wontfix feature_request 
    opened by sesam 18
  • Add on-screen keys for special characters

    Add on-screen keys for special characters

    While going through the "animals" example course, I discovered that when leΓ³n was asked the answer leon (without accent) is still accepted as correct.

    Is this intended behaviour or are you normalising the string to heavily before comparison? IMHO learning where to set accents in words is an important part of learning a language.

    Apart from that, keep up the nice work.

    opened by schmittlauch 18
  • Create a very easily installable binary version

    Create a very easily installable binary version

    Is your feature request related to a problem? Please describe. Sometimes a school or other organization might want to set up their own local server. They need an easy way of installing a server that doesn't involve having to read the documentation.

    Describe the solution you'd like

    • The solution should be cross-platform
    • You should not need to have nodejs/npm/etc installed in order to install the binary version

    Some tech information:

    Here's how you export the whole page into a static site: https://github.com/kantord/LibreLingo/blob/main/.semaphore/pipeline_2.yml#L20

    This is already done there in the CI, so basically this package could be built in the same CI step, utilizing the already existing static site.

    A very simple, no-setup static site server can be used to serve these files on a local network. Here's one example: https://www.npmjs.com/package/serve

    So this issue is mostly about figuring out how to package those things in a way that it becomes very easy to install, or even just a single executable on windows

    opened by kantord 16
  • chore(deps): update commitlint monorepo to v17.4.0

    chore(deps): update commitlint monorepo to v17.4.0

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | @commitlint/cli (source) | 17.3.0 -> 17.4.0 | age | adoption | passing | confidence | | @commitlint/config-conventional (source) | 17.3.0 -> 17.4.0 | age | adoption | passing | confidence |


    Release Notes

    conventional-changelog/commitlint (@​commitlint/cli)

    v17.4.0

    Compare Source

    Bug Fixes
    conventional-changelog/commitlint (@​commitlint/config-conventional)

    v17.4.0

    Compare Source

    Note: Version bump only for package @​commitlint/config-conventional


    Configuration

    πŸ“… Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Enabled.

    β™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    πŸ”• Ignore: Close this PR and you won't be reminded about these updates again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • chore(deps): bump json5 from 1.0.1 to 1.0.2

    chore(deps): bump json5 from 1.0.1 to 1.0.2

    Bumps json5 from 1.0.1 to 1.0.2.

    Release notes

    Sourced from json5's releases.

    v1.0.2

    • Fix: Properties with the name __proto__ are added to objects and arrays. (#199) This also fixes a prototype pollution vulnerability reported by Jonathan Gregson! (#295). This has been backported to v1. (#298)
    Changelog

    Sourced from json5's changelog.

    Unreleased [code, diff]

    v2.2.3 [code, diff]

    v2.2.2 [code, diff]

    • Fix: Properties with the name __proto__ are added to objects and arrays. (#199) This also fixes a prototype pollution vulnerability reported by Jonathan Gregson! (#295).

    v2.2.1 [code, diff]

    • Fix: Removed dependence on minimist to patch CVE-2021-44906. (#266)

    v2.2.0 [code, diff]

    • New: Accurate and documented TypeScript declarations are now included. There is no need to install @types/json5. (#236, #244)

    v2.1.3 [code, diff]

    • Fix: An out of memory bug when parsing numbers has been fixed. (#228, #229)

    v2.1.2 [code, diff]

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies javascript 
    opened by dependabot[bot] 0
  • chore(deps): update dependency mkdocs-material to v9

    chore(deps): update dependency mkdocs-material to v9

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | mkdocs-material | ^8.0.0 -> ^9.0.0 | age | adoption | passing | confidence |


    Release Notes

    squidfunk/mkdocs-material

    v9.0.2: mkdocs-material-9.0.2

    Compare Source

    • Fixed #​4823: Improved contrast ratio in footer to meet WCAG guidelines
    • Fixed #​4819: Social plugin crashes when card generation is disabled
    • Fixed #​4817: Search plugin crashes on numeric page titles in nav

    v9.0.1: mkdocs-material-9.0.1

    Compare Source

    • Removed pipdeptree dependency for built-in info plugin
    • Fixed appearance of linked tags when hovered (9.0.0 regression)
    • Fixed #​4810: Abbreviations run out of screen on touch devices
    • Fixed #​4813: View source and edit button links are the same

    v9.0.0: mkdocs-material-9.0.0

    Compare Source

    Additions and improvements

    • Added support for rich search previews
    • Added support for tokenizer lookahead
    • Added support for better search highlighting
    • Added support for excluding content from search
    • Added support for configurable search pipeline
    • Added support for offline search via offline plugin
    • Added support for multiple instances of built-in tags plugin
    • Added support for removing copy-to-clipboard button
    • Added support for removing footer navigation
    • Added support for button to view the source of a page
    • Improved readability of query string for search sharing
    • Improved stability of search plugin when using --dirtyreload
    • Improved search result group button, now sticky and stable
    • Updated Norwegian translations
    • Updated MkDocs to 1.4.2

    Removals

    • Removed deprecated alternative admonition qualifiers
    • Removed :is() selectors (in output) for easier overriding
    • Removed .title suffix on translations
    • Removed legacy method for providing page title in feedback URL
    • Removed support for indexing only titles in search
    • Removed support for custom search transforms
    • Removed support for custom search workers
    • Removed temporary snow feature (easter egg)

    Fixes

    • Fixed Norwegian and Korean language code
    • Fixed detection of composition events in search interface
    • Fixed search plugin not using title set via front matter
    • Fixed search highlighting of tags
    • Fixed search sharing URL using post transformed string
    • Fixed theme-color meta tag getting out-of-sync with palette toggle
    • Fixed prev/next page keyboard navigation when footer is not present
    • Fixed overflowing navigation tabs not being scrollable
    • Fixed inclusion of code block line numbers from search

    v8.5.11: mkdocs-material-8.5.11

    Compare Source

    • Let it snow, see https://twitter.com/squidfunk/status/1597939243090788352

    v8.5.10: mkdocs-material-8.5.10

    Compare Source

    • Adjusted CSS to better allow for custom primary and accent colors
    • Fixed #​4620: Primary color is not applied (8.5.9 regression)

    v8.5.9: mkdocs-material-8.5.9

    Compare Source

    • Fixed #​4600: Illegible links for black/white primary colors (8.5.8 regression)
    • Fixed #​4594: Need to set schema to change link color

    v8.5.8: mkdocs-material-8.5.8

    Compare Source

    • Added support for always showing settings in cookie consent
    • Fixed #​4571: Buttons invisible if primary color is white or black
    • Fixed #​4517: Illegible note in sequence diagram when using slate scheme

    v8.5.7: mkdocs-material-8.5.7

    Compare Source

    • Deprecated additional admonition qualifiers to reduce size of CSS
    • Fixed #​4511: Search boost does not apply to sections

    v8.5.6: mkdocs-material-8.5.6

    Compare Source

    • Modernized appearance of admonitions (with fallback, see docs)
    • Improved appearance of inline code blocks in admonition titles

    v8.5.5: mkdocs-material-8.5.5

    Compare Source

    • Updated MkDocs to 1.4
    • Fixed compatibility issues with MkDocs 1.4
    • Fixed #​4430: build error when enabling consent without repository URL

    Configuration

    πŸ“… Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    β™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    πŸ”• Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • Add metadata to courses configuration file

    Add metadata to courses configuration file

    As discussed in #2538, add metadata: - source, e.g., "English" - target, e.g., "Spanish" - name, e.g., "spanish-from-english" - description, e.g., "Spanish for English speakers"

    opened by dimkard 0
  • cant loaded courses from librelingo.app/dev

    cant loaded courses from librelingo.app/dev

    Firstly, thanks for this amazing project!

    Problem description The following courses listed at https://librelingo.app/dev/ fail to load:

    • https://librelingo.app/course/parsig-from-english/
    • https://librelingo.app/course/bangla-from-english/
    • https://librelingo.app/course/hungarian-from-spanish/
    • https://librelingo.app/course/ladino-from-spanish/
    • https://librelingo.app/course/ladino-from-hebrew/
    • https://librelingo.app/course/ladino-from-english/

    They show instead:

    500
    Cannot find module './bangla-from-english/courseData.json'
    

    Why is that? How can that be resolved and avoided?

    opened by pur80a 0
  • User Config/Settings

    User Config/Settings

    I think being able to customise your experience is vital to making a good learning experience and I think this could be improved in LibreLingo. We would have to make a User Config/Settings page for this. I am going to list below what things users can choice to customise in LibreLingo.

    • Theme
    • Default Sound Effect(s) #2593
    • Whether or not to show characters #2610
    • (To be thought of/added)

    I have an idea that users can import and export their settings as a file (maybe, json, xml or something else) for if they are using more than one LibreLingo instance or if they are using their own instance as well as the official instance

    opened by cutthroat78 2
Releases(lluis-v1.8.1)
Owner
Daniel Kantor
☎️ Schedule a call: https://app.harmonizely.com/harmonizely-uoicqk
Daniel Kantor
A full-stack clone of Instagram, allowing the user to interact with posts and other users.

This project is a full-stack clone of Instagram, allowing the user to interact with posts and other users

Alejandro Carrizosa Grant 4 Feb 14, 2022
Django content management as it should be

Django content management as it should be. Documentation Read the full documentation or get a quick brief below. Install $ pip install djedi-cms Confi

5 Monkeys 75 Dec 13, 2022
E-Commerce Platform

Shuup Shuup is an Open Source E-Commerce Platform based on Django and Python. https://shuup.com/ Copyright Copyright (c) 2012-2021 by Shoop Commerce L

Shuup 2k Jan 07, 2023
Crypt Wiki - VimWiki with added support for encryption/decryption

Crypt Wiki - VimWiki with added support for encryption/decryption This project is meant to solve an issue I have ran into recently. I wanted to have a

Adrian Costin 6 Dec 18, 2022
Oppia a free, online learning platform to make quality education accessible for all.

Oppia is an online learning tool that enables anyone to easily create and share interactive activities (called 'explorations'). These activities simulate a one-on-one conversation with a tutor, makin

Oppia 4.8k Dec 28, 2022
LibreLingo🐒 🌎 πŸ“š a community-owned language-learning platform

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, s

Daniel Kantor 1.4k Jan 09, 2023
🐰 Bunnybook 🐰 A tiny social network (for bunnies), built with FastAPI and React+RxJs.

🐰 Bunnybook 🐰 A tiny social network (for bunnies), built with FastAPI and React+RxJs. Click here for live demo! Included features: πŸ’¬ chat πŸ”΄ online

Pietro Bassi 190 Jan 03, 2023
A self-hosted application that lets you create podcast RSS feeds from YouTube playlists

Playlist2Podcast A self-hosted application that lets you create podcast RSS feeds from YouTube playlists. What Does This Do? Takes a list of YouTube p

Simon 12 Nov 14, 2022
Open Source CRM based on Django

Django-CRM Django CRM is opensource CRM developed on django framework. It has all the basic features of CRM to start with. We welcome code contributio

MicroPyramid 1.4k Dec 31, 2022
The easy-to-use and developer-friendly CMS

django CMS Open source enterprise content management system based on the Django framework and backed by the non-profit django CMS Association. Get inv

django CMS Association 9.1k Jan 04, 2023
Backend routes and database for an abstract theoretical app that relates a database of courses, users, and assignments.

Backend routes and database for an abstract theoretical app that relates a database of courses, users, and assignments.

Sean Wiesner 0 Dec 27, 2021
A Django content management system focused on flexibility and user experience

Wagtail is an open source content management system built on Django, with a strong community and commercial support. It's focused on user experience,

Wagtail 13.8k Jan 01, 2023
A Django content management system focused on flexibility and user experience

Wagtail is an open source content management system built on Django, with a strong community and commercial support. It's focused on user experience,

Wagtail 13.8k Jan 02, 2023
Library Management system designed for managing and operating various aspects of a library

Proposal This proposal is written to clarify the project work of Information Systems, assigned to us as an individual task in order to tackle the case

Prawal 1 Oct 27, 2021
wger Workout Manager is a free, open source web application that helps you manage your personal workouts, weight and diet plans and can also be used as a simple gym management utility.

wger (ˈvɛɑɐ) Workout Manager is a free, open source web application that helps you manage your personal workouts, weight and diet plans and can also be used as a simple gym management utility.

wger Project 2k Dec 29, 2022
Simple yet powerful and really extendable application for managing a blog within your Django Web site.

Django Blog Zinnia Simple yet powerful and really extendable application for managing a blog within your Django Web site. Zinnia has been made for pub

Julien Fache 2.1k Dec 24, 2022
plumi video sharing

December 2017 update We are moving tickets from the Plumi tracker (trac.plumi.org) here, for historical reasons. Plumi video sharing system Plumi is a

Plumi 111 Dec 15, 2022
Kotti is a high-level, Pythonic web application framework based on Pyramid and SQLAlchemy. It includes an extensible Content Management System called the Kotti CMS.

Kotti Kotti is a high-level, Pythonic web application framework based on Pyramid and SQLAlchemy. It includes an extensible Content Management System c

Kotti 394 Jan 07, 2023
A Django-based CMS with a focus on extensibility and concise code

FeinCMS - An extensible Django-based CMS When was the last time, that a pre-built software package you wanted to use got many things right, but in the

FeinCMS 847 Jan 07, 2023
The Plone CMS: root integration package

About Plone Plone is a mature, secure and user-friendly Content Management System (CMS). Plone - and the Open Source community behind it - aggregates

Plone Foundation 200 Jan 08, 2023