Boosted translator with industry standard memory algorithm, made to help you learn translations right away!
I am language learner, and when I learn a new language every now and then I come across the cool sounding words (for example cariño in spanish), then I would go to translate it, and then it would actually be something interesting that I would want to remember, but I never put it into Anki or any other learning vocab tool, so I kinda forget about it. That's where idea struck, what if just have a translator, then in the translator I would basically right away have a functionality to say that I want to remember it and my translator would become learning tool itself too.
- 4-level hint system (with gemini AI, optional):
- Example sentence in source language
- Meaning explanation in target language
- First letter hint
- Full answer reveal
- Deepl API key
- Gemini API key (optional, for AI hints)
- Download APK
- Flutter SDK 3.10 or higher
- Android Studio or VS Code
- Android device/emulator (Android 7.0+)
- DeepL API key (required)
- Gemini API key (optional, for AI hints)
-
Clone the repository
git clone https://github.com/Andebugulin/wordor.git cd wordor -
Install dependencies
flutter pub get
-
Generate Database .g.dart
dart run build_runner build --delete-conflicting-outputs
-
Set up API keys
You'll need to get API keys:
- DeepL API (required): Get free key at https://www.deepl.com/pro-api
- Gemini API (optional): Get free key at https://ai.google.dev
-
Run the app
flutter run
-
Enter your API keys
Put your API keys into the setup screen or later in the settings (Gemini API key)
-
Type or Speak
- Tap the microphone icon to use voice input
- Or type your word/phrase
-
Select Languages
- Tap language buttons to change source/target
- Recently used languages appear first
-
Save for Review
- Translate your word
- Tap "Save" to add it to recall list
- Word will appear for review based on spaced repetition
-
Check Due Words
- Badge shows number of due words
- Open "Recall" tab to start review
-
Test Your Memory
- Try to recall the translation
- Use hints if needed (costs review efficiency)
-
Mark Your Response
- "I Know" - Word moves to longer interval
- "Hint Helped" - Moderate interval increase
- "Forgot" - Word resets to short interval
Without AI (2 hints):
- First letter of translation
- Full answer reveal
With AI (4 hints):
- Example sentence using the word (in source language)
- Meaning explanation (in target language, without using the word)
- First letter of translation
- Full answer reveal
- Flutter - Cross-platform UI framework
- Riverpod - State management
- Drift - SQLite database ORM
- SQLite - Local data storage
- DeepL API - Translation service
- Gemini API - AI-powered hints and examples
- Android Alarm Manager - Background task scheduling
- Flutter Local Notifications - Notification system
- Speech to Text - Voice input recognition
dependencies:
drift: ^2.14.0
flutter_riverpod: ^2.4.0
flutter_local_notifications: ^17.0.0
android_alarm_manager_plus: ^4.0.3
speech_to_text: ^7.0.0
http: ^1.1.0
timezone: ^0.9.0lib/
├── data/
│ ├── database.dart # Drift database schema
│ ├── deepl_service.dart # DeepL API integration
│ └── api_key_storage.dart # Secure API key storage
├── services/
│ ├── notification_service.dart # Notification management
│ ├── background_notification_service.dart# Background tasks
│ ├── gemini_service.dart # Gemini AI integration
│ └── tts_service.dart # Text-to-speech
├── ui/
│ ├── home_screen.dart # Main navigation
│ ├── translate_screen.dart # Translation interface
│ ├── recall_screen.dart # Spaced repetition UI
│ ├── settings_screen.dart # App settings
│ ├── word_library_screen.dart # Saved words list
│ └── language_picker.dart # Language selection
├── providers/
│ └── app_providers.dart # Riverpod providers
├── theme.dart # App theming
└── main.dart # App entry point
Words Table:
- Source word/phrase
- Translation
- Language pair
- Example sentence (optional)
- Creation date
Recalls Table:
- Word reference
- Next review date
- Current interval
- Ease factor
- Review count
Translation History:
- All translations
- Saved status
- Timestamp
- Initial interval: 1 day
- Success multiplier: 2.5x
- Partial success: 1.5x
- Failure: Reset to 1 day
- Maximum interval: ~100 days
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
Made with ❤️
Claude AI was used in the development of this project, all the code has been manually verified and tested, before deployment!


