Skip to content

Commit 8b7792e

Browse files
committed
update README for version 3.0.0, highlighting multilingual support, Groq fallback integration, and improved user experience
1 parent 7f27ced commit 8b7792e

File tree

1 file changed

+30
-31
lines changed

1 file changed

+30
-31
lines changed

README.md

Lines changed: 30 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,21 @@
11
# EduPlannerBotAI
22

3-
**EduPlannerBotAI** is a Telegram bot built with `aiogram 3.x` and powered by OpenAI GPT. It generates personalized study plans, exports them to PDF/TXT, and sends reminders as Telegram messages. All data is stored using TinyDB.
3+
**EduPlannerBotAI** is a Telegram bot built with `aiogram 3.x` and powered by OpenAI GPT. It generates personalized study plans, exports them to PDF/TXT, and sends reminders as Telegram messages. All data is stored using TinyDB (no other DBs supported).
44

5-
> **Note:** All code comments and docstrings are now in English for better international collaboration and code clarity.
5+
> **Note:** All code comments and docstrings are in English for international collaboration and code clarity. All user-facing messages and buttons are automatically translated to the user's selected language.
66
77
## 📌 Features
88

9-
- 📚 Generate personalized study plans (LLM/OpenAI, fallback to Groq)
9+
- 📚 Generate personalized study plans (LLM/OpenAI, automatic fallback to Groq if OpenAI unavailable)
1010
- 📝 Export study plans to PDF/TXT
1111
- ⏰ Send reminders as Telegram messages for each study step
12-
- 🗄️ Store data using TinyDB
13-
- 📊 Python 3.10–3.13 support
12+
- 🗄️ Store data using TinyDB (no SQL/other DBs)
13+
- 🌐 Multilingual: English, Russian, Spanish — all messages, buttons, and files are translated in real time using LLMs (OpenAI or Groq)
14+
- 🏷️ All keyboards are always shown with a short message, ensuring buttons are reliably displayed
15+
- ❌ No empty or invisible messages — all user-facing text is always non-empty (prevents Telegram errors)
16+
- 🔄 Language selection buttons are not translated, so the language filter works correctly
17+
- 🤖 If translation is not possible, the original English text is sent
18+
- 🧩 Simple, maintainable, idiomatic codebase — ready for extension
1419

1520
## 🆕 Groq Fallback Integration
1621

@@ -45,14 +50,14 @@ No other changes are needed — the bot will automatically use Groq if OpenAI is
4550

4651
## 🌐 Multilingual Support
4752

48-
You can now choose your preferred language for all bot interactions! Use the `/language` command to select from English, Russian, or Spanish. The bot will automatically translate all responses, study plans, and reminders to your chosen language using LLMs (OpenAI or Groq). If translation is not possible, the original English text will be sent.
53+
You can choose your preferred language for all bot interactions! Use the `/language` command to select from English, Russian, or Spanish. The bot will automatically translate all responses, study plans, and reminders to your chosen language using LLMs (OpenAI or Groq fallback). If translation is not possible, the original English text will be sent.
4954

5055
**Supported languages:**
5156
- English (`en`)
5257
- Русский (`ru`)
5358
- Español (`es`)
5459

55-
Translations are performed in real time using the same LLMs that generate study plans, ensuring high-quality and context-aware results.
60+
Translations are performed in real time using the same LLMs that generate study plans, ensuring high-quality and context-aware results. Fallback to Groq is supported for both generation and translation if OpenAI is unavailable.
5661

5762
## 🚀 Quick Start
5863

@@ -76,6 +81,7 @@ BOT_TOKEN=your_telegram_bot_token
7681
OPENAI_API_KEY=your_openai_api_key
7782
GROQ_API_KEY=your_groq_api_key
7883
```
84+
All environment variables are loaded from `.env` automatically.
7985

8086
### 4. Run the bot
8187
```bash
@@ -96,7 +102,7 @@ When you choose to schedule reminders, the bot will send you a separate Telegram
96102

97103
## 🧪 Testing & Code Quality
98104

99-
- 100% of core logic is covered by automated tests (`pytest`).
105+
- 100% of core logic and all handlers are covered by automated tests (`pytest`).
100106
- Code style: PEP8, pylint score 10/10 (see `.pylintrc`).
101107
- To run tests:
102108
```bash
@@ -111,9 +117,10 @@ EduPlannerBotAI/
111117
├── handlers/ # Command and message handlers
112118
│ ├── __init__.py
113119
│ ├── start.py # /start and greeting
114-
│ └── planner.py # Study plan generation flow
120+
│ ├── planner.py # Study plan generation flow
121+
│ └── language.py # Language selection and filter
115122
├── services/ # Core logic and helper functions
116-
│ ├── llm.py # OpenAI and Groq integration
123+
│ ├── llm.py # OpenAI and Groq integration, translation
117124
│ ├── pdf.py # PDF export
118125
│ ├── txt.py # TXT export
119126
│ ├── reminders.py # Reminder simulation
@@ -129,8 +136,8 @@ EduPlannerBotAI/
129136
|---------------|----------------------------------------|
130137
| Python 3.10+ | Programming language |
131138
| aiogram 3.x | Telegram Bot Framework |
132-
| OpenAI API | LLM for text generation |
133-
| Groq API | Fallback LLM provider |
139+
| OpenAI API | LLM for text generation and translation|
140+
| Groq API | Fallback LLM provider (generation+translation) |
134141
| fpdf | PDF file generation |
135142
| TinyDB | Lightweight NoSQL database |
136143
| python-dotenv | Environment variable management |
@@ -142,27 +149,19 @@ EduPlannerBotAI/
142149
- Python version compatibility: 3.10, 3.11, 3.12, 3.13
143150
- Custom `.pylintrc` configuration
144151

145-
## 📝 Release 2.1.0 Highlights
152+
## 📝 Release 3.0.0 Highlights
146153

147-
- Full English codebase (comments, docstrings, messages)
148-
- PEP8 and pylint compliance (score 10/10)
149-
- Full test coverage for all services and handlers
150-
- Improved error handling and async file operations
151-
- Multilingual support with LLM-based translation
152-
- Telegram reminders for study plans
153-
- **Groq fallback LLM integration**
154-
- **Arli AI fully removed**
155-
- Ready for open source and team development
156-
157-
## 🆕 2025 Updates
158-
159-
- All messages and buttons always contain non-empty text, eliminating Telegram errors (Bad Request: text must be non-empty).
154+
- All user-facing messages and buttons always contain non-empty text, eliminating Telegram errors (Bad Request: text must be non-empty).
160155
- Keyboards (format selection, next actions) are always accompanied by a short message to ensure buttons are displayed reliably.
161156
- Language selection buttons are not translated, so the language filter works correctly.
162-
- The entire bot scenario is fully localized: all messages, buttons, and files are translated to the user's selected language.
163-
- The logic is maximally simplified, with no unnecessary conditions; all stages work reliably and predictably.
164-
- Fallback to Groq is supported for generation and translation if OpenAI is unavailable.
165-
- The project is ready for use and open for extension.
157+
- The entire bot scenario is fully localized: all messages, buttons, and files are translated to the user's selected language (English, Russian, Spanish).
158+
- Multilingual support is powered by LLM-based translation (OpenAI or Groq fallback).
159+
- Fallback to Groq is supported for both generation and translation if OpenAI is unavailable.
160+
- If translation is not possible, the original English text is sent.
161+
- Codebase is fully in English (comments, docstrings, messages), PEP8 and pylint compliant (score 10/10).
162+
- 100% test coverage for all core logic and handlers (pytest).
163+
- Logic is maximally simplified, with no unnecessary conditions; all stages work reliably and predictably.
164+
- Project is ready for open source use and easy extension.
166165

167166
## ⚠️ Handling Frequent 429 Errors
168167

@@ -179,7 +178,7 @@ We welcome contributions! If you'd like to improve this bot:
179178

180179
1. Fork the repository
181180
2. Create a feature branch (`git checkout -b feature-name`)
182-
3. Commit your changes
181+
3. Commit your changes (all code and comments must be in English)
183182
4. Push to your fork
184183
5. Submit a pull request
185184

0 commit comments

Comments
 (0)