Реализован MVP телеграм бота для изучения языков

Основные компоненты:
- База данных (PostgreSQL) с моделями User, Vocabulary, Task
- Интеграция с OpenAI API для перевода слов
- Команды: /start, /add, /vocabulary, /help
- Сервисы для работы с пользователями, словарем и AI

Реализовано:
 Регистрация и приветствие пользователя
 Добавление слов в словарь с автоматическим переводом
 Просмотр личного словаря
 Архитектура проекта с разделением на слои

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-12-04 11:09:54 +03:00
parent df9f9f3d4d
commit 1a02c979d0
18 changed files with 894 additions and 2 deletions

41
main.py Normal file
View File

@@ -0,0 +1,41 @@
import asyncio
import logging
from aiogram import Bot, Dispatcher
from aiogram.client.default import DefaultBotProperties
from aiogram.enums import ParseMode
from config.settings import settings
from bot.handlers import start, vocabulary
from database.db import init_db
async def main():
"""Главная функция запуска бота"""
# Настройка логирования
logging.basicConfig(
level=logging.INFO if settings.debug else logging.WARNING,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)
# Инициализация бота и диспетчера
bot = Bot(
token=settings.bot_token,
default=DefaultBotProperties(parse_mode=ParseMode.HTML)
)
dp = Dispatcher()
# Регистрация роутеров
dp.include_router(start.router)
dp.include_router(vocabulary.router)
# Инициализация базы данных
await init_db()
# Запуск бота
logging.info("Бот запущен")
await dp.start_polling(bot)
if __name__ == '__main__':
asyncio.run(main())