Skip to content

An application that assists you in your (German, for now) Immersion Learning; Similar to vocabsieve.

Notifications You must be signed in to change notification settings

Hopeful-ly/zimmers

Repository files navigation

🚧 This project is still in its early development phase.

If you would like to contribute to this project, feel free to request features and create pull requests!

Introduction

Zimmers is a German language learning application for English speakers. It follows the Immersion learning philosophy to make language learning engaging and effective.

Key Features:

  • Immersive Learning 🚧: Helps learners consume various forms of media (books, texts, websites, videos, comics, etc.) in German.
  • Integrated Dictionary 🚧: Provides detailed information about words and sentences.
  • Flashcard Integration 🚧: Easily add new vocabulary and information to flashcards for efficient review.
  • Multi-language Support ❌: Currently supports German, with more languages coming soon.

Design & Choices

Overview

  • The desktop application is built using Tauri V2.
  • The front-end is made using ReactJs in TypeScript. TailwindCSS and ShadCN are used for the components and styling.
  • Extensions are used for modular and extensible definition of dictionary and media tools.

Extensions

Extensions are singular JavaScript files that can be used to give features to the application. The current extension can be founud in the /extension folder in the repository source code.

These extensions will be evaluated after which they will return an object with functions that extend the functionalities of the app.

All extension objects include the getMetadata function which will return information regarding the extension like:

  • name
  • version
  • description
  • extensionType (lookup-provivder | media-support)

At the moment, two extension types have been defined:

Lookup Provider 🚧

This extension type adds an extra source of information for the dictionary to present, which can then be added to ANKI as a flashcard

Extensions of this type could provide all sorts of information like:

  • Definitions
  • Verb Conjucation
  • Noun Article
  • Pronunciation
  • Examples
  • ...

Media Support ❌

This extension type could extend the file and media types that can be added to the media library of the application.

Note: Neither media support extensions nor the media library have been implemented yet and the design decisions have yet to be completely made.

Development

Pre-requisites

Run

You can get the app up and running by cloning this repsository and going into it. To do that, run the following code in your terminal:

git clone [email protected]:Umami-Turtle/zimmers.git
cd zimmers

And then, making sure that you have a package manager installed (I use bun, and it's needed for compiling the extensions so get it), you can go ahead and install the packages.

bun i

And finally run the project

bun tauri dev

A window should open after the vite runs and the rust files compile.

Bundle the extensions

To build the currently available extensions, cd into the extensions folder:

cd extensions

and run the build.ts file using Bun

bun run build.ts

The bundled extensions should show up as single .js files in the /extensions/target repository, so go in it

cd target

and

ls

They should be there.

About

An application that assists you in your (German, for now) Immersion Learning; Similar to vocabsieve.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published