На первом курсе университета я столкнулся с классической проблемой студента — необходимостью зубрить. В моем случае это был предмет по история и английский язык. Нужно было учить 100 дат или 250 слов по английскому.

Обычно для таких вещей все советуют Anki. Чтобы им пользоваться, нужно скачать приложение, потом как-то вытаскивать даты, отформатировать их в нужный формат таблицы (CSV и т.д.) или использовать чат-боты. Более того у меня не работала синхронизация с мобильным приложением.

Так появилась идея Mnemocards. Не нужно нигде регистрироваться, не нужно ничего скачивать. Открыл бота — и учишь.

Как это работает

Главная фича Mnemocards — избавление от рутины при создании учебных материалов. Ты можешь просто скинуть боту фотографию конспекта, страницы учебника или PDF-файл.

Бот сам «переварит» этот материал с помощью нейросети, вытащит нужные термины/даты/слова и сформирует из них готовую колоду карточек.

Дальше можно просто заходить в режим тренировки и свайпать карточки. Колоды можно удалять или делиться ими с однокурсниками.

Под капотом: архитектура и стек

Так как я уже немного умел писать на Python, выбор языка был очевиден. Для работы с Telegram API взял aiogram, а весь код писал в PyCharm. Доступ к нейросети Gemini я организовал через OpenRouter.


Саму архитектуру проекта я решил разделить на две части:

  • Bot — отвечает исключительно за интерфейс, кнопки и общение с пользователем в Telegram.

  • Worker — берет на себя формирование материала и общение с API нейросети.
    В качестве базы данных выбрал PostgreSQL. И, честно говоря, проектирование и создание структуры БД оказалось для меня самой сложной частью всего проекта. Пришлось поломать голову.

Вообще, во всем мне помогали нейросети: они помогал мне писать код, исправлять ошибки и разбираться с архитектурой.

Деплой и запуск
Когда бот был готов локально, встал вопрос хостинга. Я не стал долго выбирать и взял сервер от Timeweb, он попался первым и стоил дешево. Всё приложение упаковал в Docker.

Итоги и планы
Сейчас Mnemocards полностью функционален и решает мою главную проблему. Если проект окажется хоть немного успешным и будет полезен не только мне, я планирую его развивать.

В ближайших планах:

  • Telegram Mini App. Математика требует работы со сложными формулами. В обычном текстовом сообщении Telegram их нормально не отправишь, поэтому полноценный Web App решит проблему корректного отображения математики.

  • Редактор карточек. Чтобы сгенерированные колоды можно было удобно править руками прямо в боте.

  • Монетизация. Возможно, в будущем появится платная подписка, но вводить её я буду только тогда, когда в боте действительно будет за что платить (например, расширенный функционал или увеличенные лимиты)

https://t.me/mnemocards_bot

Буду рад, если вы протестируете бота и поделитесь фидбеком. Что бы вы добавили или изменили? Жду вас в комментариях!