Skip to content

QubitPi/wilhelm

Repository files navigation

Wilhelm

Node Version GitHub workflow status badge sentry badge Apache License

Wilhelm is a Quizlet alternative that helps with learning German, Ancient Greek, and Latin with 2 unique features:

  1. Applying historical fonts that is unique to each language
  2. Utilizing knowledge graph to visualize connections among Indo-European languages which greatly make multilingual study much more efficient

Please check out the app on wilhelmlang.com

How Did Project Wilhelm Start

Wilhelm started out as a Quizlet "companion" with no intent to be used by anyone other than myself.

I was studying Ancient Greek vocabulary on Quizlet the other day and got shockingly frustrated by their flashcards with this horribly formatted Greek text:

Quizlet didn't believe that each language shines with their unique fonts from history (such as 楷书 for Chinese, Gothic for Latin, and Fraktur for German). They simply applied a monofont for all languages which, in the case of Greek, made the text look terribly uncomfortable. I certainly disavowed it and decided to make my own flash card which ended up with much better visual like this:

Note

The new font above was inspired by the Zeph fonts invented by the Loeb Classical Library in Harvard University, who publishes Ancient Greek and Latin original texts I've been enjoying reading since I was a college student.

The Zeph fonts are based on 'Porson' Greek according to the information provided by Harvard University Press (HUP). But the Zeph* fonts themselves seem to be custom commissions for HUP for use in Loeb books, which means the fonts are close-sourced1.

The closest font I found, thus, is the GFS Porson for Ancient Greek which ended up being the Greek font I use for the flash cards in this project

Why Do I Decide to Scale Project Wilhelm

Right after, I began to realize I could simply throw Quizlet to trash. I deleted my Quizlet account and relied solely on Wilhelm. I was happy that I found a lot more pleasure studying languages with Wilhelm than I did on Quizlet.

In the meantime, I've been interested in Indo-European languages. Having been concurrently studying Ancient Greek, Latin, and German, I got constantly well impressed by how these languages are connected in various interesting ways. I then believe making such connections between languages visually explicit shall boost people to learn multiple languages much faster.

Development

Important

Wilhelm requires Node 18 or above

Starting Locally

To start Wilhelm locally:

git clone [email protected]:QubitPi/wilhelm.git
cd wilhelm
yarn
yarn start

Then visit localhost:3000

Testing

  • Unit Tests: TBA
  • E2E Tests: Cypress is used for E2E tests. To run them locally, first start the Wilhelm app locally with yarn start. Then we can run E2E tests either in terminal with yarn e2e or through Cypress UI with yarn cy:open. If E2E tests fail in CI/CD, the testing screenshot and video will be generated and can be downloaded at the bottom of each action run page

License

The use and distribution terms for wilhelm are covered by the Apache License, Version 2.0.

Footnotes

  1. https://tex.stackexchange.com/a/163342/277953