Skip to content

aiman-al-masoud/psittacus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Psittacus

Psittacus iratus linguas docet 🦜

The angry parrot teaches languages 🦜

What is it?

Psittacus is a lightweight, open-source tool, meant to facilitate language-learning and teaching, and with a vision to empower teachers and learners of any written+spoken language around the world.

Psittacus is based on the gamification of the sentence-mining approach, having an interface vaguely inspired by that of Duolingo and other competing interactive language learning-tools.

Psittacus aims at democratizing the process of language-learning and teaching, making it easy for teachers to prepare and collaborate on their own lessons, and share them in a standardized and easily accessible format.

Whom does it appeal to?

  • Language lovers in general. 🌍
  • Teachers of any language that need to share quick homeworks/lessons with their students. πŸ“š
  • Speakers of endangered languages that wish to preserve and spread their native tongue. 🌱 πŸ“Ό
  • Conlangers that want the world to learn their constructed language. πŸ€“
  • And many more...

What are some of its main features?

  • Simple interface for lang-teachers to prepare lessons.
  • Possibility to edit and extend existing lessons.
  • Lessons are stored in an easily shareable format.
  • Lessons can be taken fully offline, once downloaded/sideloaded.
  • Support for audio playback of sentences.
  • Support for hover-over-the-word definitions.
  • Support for spaced repetition strategies and automatic lesson scheduling.

Link to Web-App

https://psittacus.eu.pythonanywhere.com/

Demo

https://youtu.be/estAGLc3uoE

Take Test Lesson

Download this test lesson-file and try it out on Psittacus (open it with "Take Lesson" on the main-menu of the web-app). Watch the Demo for more help.

Details

Lesson File Format

Lesson File Format

A 'lesson' comprises: sentence-pairs, word-definitions and audio-data. Each single lesson is made up of multiple 'propositions'. Each proposition expresses an idea in two different languages. The information of a lesson is stored in the widely-known json format, and can be shared as a simple text file.

The structure of a lesson-json is the following:

Lesson

Metadata looks like this:

Metadata

Each proposition has the following structure:

Proposition

Testing

To build this web-app:

(You have to have yarn or npm installed).

1. Clone this repo:

... and open up its directory.

2. Install the dependencies:

yarn:

yarn install

npm:

npm ci

Use ci (clean install) instead of npm i, to make sure you're building the project with the exact tested dependencies from package-lock.json, and not overwriting them.

3. Build:

yarn run build

4. Run:

Copy and paste the full path of:

/psittacus/dist/index.html

... to your browser's navigation bar.

Debugging:

  • Use:
yarn run dev-build

to generate an un-minified developer build (easier to debug).

Contributing

Adding a Language

To propose your change feel free to post a pull request.

Experimental

Automatic Lesson Generator

For more info:

./palg/README.md

Credits

Images/Sounds