Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hopeful-ly/zimmers
An application that assists you in your (German, for now) Immersion Learning; Similar to vocabsieve.
https://github.com/hopeful-ly/zimmers
german immersion-learning language-learning tauri
Last synced: 4 months ago
JSON representation
An application that assists you in your (German, for now) Immersion Learning; Similar to vocabsieve.
- Host: GitHub
- URL: https://github.com/hopeful-ly/zimmers
- Owner: Hopeful-ly
- Created: 2024-07-24T06:12:19.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-08-01T18:44:29.000Z (6 months ago)
- Last Synced: 2024-10-01T05:04:23.634Z (4 months ago)
- Topics: german, immersion-learning, language-learning, tauri
- Language: TypeScript
- Homepage:
- Size: 322 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
🚧 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](https://v2.tauri.app/).
- The front-end is made using [ReactJs](https://react.dev/)
in [TypeScript](https://www.typescriptlang.org/). [TailwindCSS](https://tailwindcss.com/)
and [ShadCN](https://ui.shadcn.com/) 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 `eval`uated 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 flashcardExtensions 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
- Install [Rust](https://www.rust-lang.org/)
- Install [Node.js](https://nodejs.org/en)
- Install [Python](https://www.python.org/), then install [`simplemma`](https://github.com/adbar/simplemma) by running `pip install simplemma`### 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:```bash
git clone [email protected]:Umami-Turtle/zimmers.git
cd zimmers
```And then, making sure that you have a package manager installed (I use [bun](https://bun.sh/), and it's needed for
compiling the extensions so get it), you can go ahead and install the packages.```bash
bun i
```And finally run the project
```bash
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](https://bun.sh/)
```
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.