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
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
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
Ticket shop application for conferences, festivals, concerts, tech events, shows, exhibitions, workshops, barcamps, etc.

pretix Reinventing ticket presales, one ticket at a time. Project status & release cycle While there is always a lot to do and improve on, pretix by n

pretix 1.3k Jan 01, 2023
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 08, 2023
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
Django e-commerce website with Advanced Features and SEO Friendly

MyTech® - Your Technology Django e-commerce website with Advanced Features and SEO Friendly Images and Prices are only used for Demo purpose and does

28 Dec 21, 2022
VaporCMS - The greatest content management system that will never exist

The greatest content management system that will never exist Overview WordPress is a huge success but could it be done better? Maybe being mo

Andrew Dailey 4 Jan 06, 2022
Django Fiber - a simple, user-friendly CMS for all your Django projects

Django Fiber An important message about this project Hi Django Fiber enthusiasts! This project was started by the people at Ride The Pony, Leukeleu an

666 Dec 15, 2022
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
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
A Django blog app implemented in Wagtail

Puput Puput is a powerful and simple Django app to manage a blog. It uses the awesome Wagtail CMS as content management system. Puput is the catalan n

APSL 535 Jan 08, 2023
用Hexo的方式管理WordPress(使用Github Actions自动更新文章到WordPress)

方圆小站Github仓库 ---start--- 目录(2021年02月17日更新) 《刺杀小说家》一个勇士屠恶龙救苍生的故事 衡水的中学为高考服务,996.icu为人民企业家服务 轻薄的代价(纪念不足两岁MacBook轻薄本的陨落) PP鸭最佳替代品!《图压》批量压缩图片而不损失画质,支持JPG,

zhaoolee 166 Jan 06, 2023
Journey is a journaling app where users can create their own journal and entries in it!

Journey is a journaling app where users can create their own journal and entries in it!

Hieu Ma 8 Dec 12, 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 02, 2023
Random tarot card generator + rudimentary Django CMS

TAROT JUICER This is a rudimentary Django-based CMS which dynamically presents tarot-related content placed onto unconventional but familiar contexts

Kyle Rafa Lazaro 7 Apr 26, 2022
Website for PyCon

PyCon 2019 Web Site Built by the Python Community atop the Django web framework. Rather than use this as the basis for your conference site directly,

PyCon 155 Nov 05, 2022
Python scripts to interact with the CakeCMS API.

Python scripts to interact with the CakeCMS API. Installation of the python module Prerequisites The cakecms module has to be installed first. Install

Fabian Thomas 3 Jan 31, 2022
A course management web application

umber a course management web app built with python Flask, sqlite3, and git. installation Tested on Ubuntu 18 with python 3.5. # -- Install the system

Jim Mahoney 6 Jun 03, 2022
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
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