chaosarium / Influx

[early stage development] A content-based, self-guided, NLP-enhanced integrated language learning environment emphasizing language exposure and active learning.
4 stars 1 forks source link

Influx

Prototype for an integrated content-based language learning environment.

wakatime

Is this usable at its current state?

No. Not yet. It technically has a functioning database and text reader, but there is not yet any dictionary integration nor translation integration. The UI needs a lot of work. I have yet to figure out a way to package a binary built from rust with an embedding python interpreter.

Its current state

Some basic UI and working multilingual sentence segmentation and tokenization:

preview img preview img

Also now with phrase support!

gif

Links

Development notes

Architecture

Key issues to decide / address

Plan

(only a partial plan)

Phase I - Project Skeleton

Phase II - Backend & Packaging

Phase III - Frontend Usability

Phase IV - Frontend Language Learning Features

Phase V - Code Quality

Phase ? - Future

For future self

Running development server

Running influx server

cd influx_api
cargo run

Running nlp server

Python install

brew install python@3.10
cd Influx
python3.10 -m venv py_venv
source py_venv/bin/activate

check it's the right python

which python

make sure it's .../Influx/py_venv/bin/python

python -m pip install stanza==1.7.0 Flask==3.0.0 nuitka==1.9.7

Compilling NLP server

python -m nuitka --follow-imports --onefile main.py

Run a development server

python main.py --port 3001 --influx_path ../toy_content

Running frontend

cd influx_ui
npm run dev

Building

Running Tauri development server

cargo tauri dev

Build:

cargo tauri build --target aarch64-apple-darwin

Terminology (used in code base)

API design

Method defaults to GET is unspecified