Skip to content

Commit fe00c4b

Browse files
committed
Added functionality for initializing the project and for studying, and improved README.
1 parent a60ed3f commit fe00c4b

5 files changed

+56
-7
lines changed

README.md

+21-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,25 @@
11
# denkmit
22
A SRS-flashcard app, specialized for German-language-learning. Uses Django as ORM, Postgres as DB, Poetry for environment management.
33

4-
## `experiments`
5-
Jupyter notebooks containing experiments regarding ideas for the project.
64

7-
## `flashcards`
8-
The main flashcards app of the project. At present, all flashcard functionality is run through a terminal UI.
5+
## About
6+
The best way to learn a language is to have real conversations in your target language as much as possible! Seems easy enough. However, any language learning process is greatly boosted by book-studying, including a little bit of (yes, I know) memorization. In particular, learning the German language requires an unusually high amount of memorization: adjective declensions, preposition declensions, patternless noun genders, and more.
7+
8+
The point of denkmit is to enable you to do this necessary memorization as efficiently as possible, by using the well-researched memorization tool of Spaced Repetition Software (SRS). Denkmit gives you exercises in preposition declension, noun gender-guessing, and standard vocabulary learning. With 5 minutes a day of denkmit, you can permanently know all the preposition declensions in under a month.
9+
10+
11+
## Setup
12+
So, you want to denkmit? At the moment, denkmit only supports a terminal UI for learning German flashcards. Let's get the project set up:
13+
1. This project uses poetry for environment management, so install that first (instructions [here](https://python-poetry.org/docs/#osx--linux--bashonwindows-install-instructions)).
14+
2. Initialize the project by running `./initialize_denkmit.sh`.
15+
16+
Great, the project is set up! Head to the next section to see how to start learning.
17+
18+
19+
## How to Learn Today
20+
So, you've got the project set up, and now you're ready to start learning.
21+
1. (Optional) Set the exercises that you want to learn for the day in `config/flashcard_config.py`
22+
1. Get started with your German practice by running `poetry run python flashcards/learn_today_flashcards.py`!
23+
```
24+
25+
```

config/flashcard_config.py

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
from flashcards.models import PrepositionDeclination_Card, InfinitiveVerbDeEnMeaning_Card, \
2+
InfinitiveVerbEnDeMeaning_Card, NounEnDeMeaning_Card, NounDeEnMeaning_Card, PersonalPronoun_Card
3+
4+
5+
FLASHCARD_CONFIG = {
6+
PrepositionDeclination_Card: True,
7+
PersonalPronoun_Card: True,
8+
InfinitiveVerbDeEnMeaning_Card: False,
9+
InfinitiveVerbEnDeMeaning_Card: False,
10+
NounEnDeMeaning_Card: False,
11+
NounDeEnMeaning_Card: False,
12+
}

data/personal_pronoun_table.csv

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ word_de,word_en,case,plural_order,person_order,nominativ
22
ich,I,Nom,singular,1,ich
33
mir,me,Dat,singular,1,ich
44
mich,me,Akk,singular,1,ich
5-
du,you,Nom,singular,2,du
6-
dir,you,Dat,singular,2,du
7-
dich,you,Akk,singular,2,du
5+
du,you (informal),Nom,singular,2,du
6+
dir,you (informal),Dat,singular,2,du
7+
dich,you (informal),Akk,singular,2,du
88
Sie,you (formal),Nom,formal,2,Sie
99
Ihnen,you (formal),Dat,formal,2,Sie
1010
Sie,you (formal),Akk,formal,2,Sie

flashcards/learn_today_flashcards.py

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import os
2+
import django
3+
os.environ["DJANGO_SETTINGS_MODULE"] = 'denkmit.settings'
4+
django.setup()
5+
from config import flashcard_config
6+
7+
8+
exercises_for_today = [model for model, to_study in flashcard_config.FLASHCARD_CONFIG.items() if to_study==True]
9+
for exercise in exercises_for_today:
10+
exercise.learn_today_flashcard_deck()

initialize_denkmit.sh

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
poetry run python manage.py migrate --run-syncdb
2+
poetry run python << END
3+
import os
4+
import django
5+
os.environ["DJANGO_SETTINGS_MODULE"] = 'denkmit.settings'
6+
django.setup()
7+
from django.contrib.contenttypes.models import ContentType
8+
ContentType.objects.all().delete()
9+
END
10+
poetry run python data_loaders/load_models_from_data.py

0 commit comments

Comments
 (0)