{"repo":"wetterkrank/dasbot","free":true,"listed":false,"github":"https://github.com/wetterkrank/dasbot","clone":"git clone https://github.com/wetterkrank/dasbot.git","description":"Dasbot -- a Telegram bot that helps you learn German der/die/das articles","language":"Python","stars":24,"topics":["aiogram","telegram-bot","german-language","quiz","asyncio","marshmallow","dynaconf","mongomock","docker","mongodb"],"license":"MIT","category":"deployment-docker-iac","readme_excerpt":"dasbot A Telegram bot that helps you learn German der/die/das articles https://dasbot.yak.supplies How to run locally 1. Clone the repo 2. Edit settings/set the env variables (see settings.toml and .env.example ) 3. Create and activate a virtual environment: python3 -m venv .venv && source ./.venv/bin/activate 4. Install dependencies: pip install -r requirements.txt 5. Run make run As an alternative, - Run docker compose up after the first two steps Deployment - Run docker compose pull && docker compose up -d Dictionary You'll need a db collection 'dictionary v3', see the example in /dictionary. Notes Spaced repetition I've adapted a simple algorithm borrowed from drill-srs. Card score Wait time ---------- --------- 0 (new question) 1 1 hour 2 1 day 3 1 week 4 1 month 5 3 months 6 6 months A correct answer increases the card's score by 1, while a mistake decreases its score by 1. Сorner cases - Some nouns can have different gender depending on the meaning: der See (lake) - die See (sea), der Leiter (leader) - die Leiter (ladder) - For some nouns, more than one gender is correct, with the same meaning ( der/das Teil ) - Sometimes gender depends on the context (die/der Jugendliche , Beschäftigte , Erwachsene , Geliebte ) - ... what else? Todo - Daily quiz ✔ - Spaced repetition ✔ - Statistics ✔ - Hint: translation and/or context ✔ - Webhooks instead of long polling ✔ - Add Docker build/push actions to CI ✔ - Randomize quiz time on 1st start ✔ - Move DB to MongoDB Atlas ✔ - i18n ","default_branch":null,"files":null,"tree":[],"storefront":"/r/wetterkrank","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/wetterkrank/dasbot/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}