Web-based Latin-German Vocabulary Trainer with Adaptive Quizzes & Collectible Cards
| Feature | Description |
|---|---|
| Personal Vocab Book | Add/edit/delete Latin words + German translations with word type (Noun/Verb) & flexion info |
| Adaptive Quizzes | Multiple choice focusing on weak words (<95% accuracy or <100 attempts) |
| Verb Sorting Game | Drag verbs to correct conjugation categories (I, II, III, IV Konjugation) |
| Performance Tracking | Real-time accuracy % per word with answer history |
| Bronze Card System | Unlock collectible cards at 90%+ accuracy (AI-generated descriptions) |
| AI Wrong Answers | OpenAI generates plausible distractors (never true meanings from FragCaesar + DB) |
Frontend: Vanilla HTML/CSS/JS + Drag & Drop API Backend: Flask + SQLAlchemy + SQLite AI: OpenAI GPT-4.1-mini (wrong answer generation) Scraping: FragCaesar.de (true German meanings for Latin words) Deployment: Ready for Render/Heroku/Vercel
# Clone & install
git clone https://github.com/seb0305/Aenigma-Verborum.git
cd Aenigma-Verborum
pip install -r requirements.txt
# Set OpenAI key
export OPENAI_API_KEY="sk-..."
# Run
flask run
# Visit http://localhost:5000- Build Your Vocab Book
Vocab โ Add "amare" (lieben) โ Verb โ I-Konjugation Vocab โ Add "currere" (laufen) โ Verb โ III-Konjugation 2. Adaptive Quiz Mode Focuses on weak words automatically
4 options: 1 correct + 3 AI-generated wrong answers
Tracks accuracy per word
- Verb Sorting Challenge
Drag "amล, amฤs, amat" โ I-Konjugation Drag "currล, curris, currit" โ III-Konjugation Answer all verbs once per round โ Quiz Complete! 4. Earn Bronze Cards text 90%+ accuracy โ "Bronze card for amare unlocked!" View collection in Cards tab
Weak Word = accuracy < 95% OR total_answers < 100 Quiz prioritizes weakest 10 words True meanings = DB translation + FragCaesar scrapes AI distractors = GPT-4.1-mini (filtered: never true meanings)
erDiagram User ||--o{ VocabEntry : owns User ||--o{ QuizRound : "starts" QuizRound ||--o{ QuizAnswer : "contains" QuizAnswer }o--|| VocabEntry : "rates" VocabEntry ||--o{ Card : "unlocks" User ||--o{ UserCard : "collects"
Silver/Gold cards (95%/99% accuracy)
Noun declension sorting game
Leaderboards & daily challenges
Image generation for cards (DALL-E 3)
Mobile PWA support
Multi-language (Latin-English, Latin-French)
๐ Known Issues (Fixed) โ Infinite verb sorting โ QuizAnswer tracking per round โ Model column mismatches โ quiz_round_id/vocab_entry_id โ AI duplicate answers โ Strict filtering + retry logic โ Bronze card logic โ 90% threshold + cleanup
# Add dev dependencies
pip install python-dotenv flask-cors
# Debug mode
flask --debug run
# Test endpoints
curl -X POST http://localhost:5000/api/quiz/verbs/start
curl http://localhost:5000/api/quiz/verbs/nextFork & clone
Add Latin verbs to VocabEntry (especially with flexion_type)
Test sorting quiz โ Submit PR
Bonus: Improve AI prompts or card designs!
MIT - Free for educational use!
Built with โค๏ธ for Latin students Latin: "Amare et sapere vix deo conceditur" (Even a god can hardly love and be wise at the same time)