Асинхронный Telegram-бот для ведения структурированных заметок с умным поиском и карточной навигацией
Telegram-бот для ведения личных заметок с категоризацией, карточной навигацией и умным поиском.
Бот позволяет:
- фиксировать события с автоматическим определением даты и времени
- создавать записи разных категорий с разной структурой данных
- просматривать заметки в виде отсортированного списка
- искать записи по ключевым словам
- листать карточки заметок
- редактировать дату
- добавлять и перезаписывать итоги
Каждый пользователь видит только свои заметки.
Бот построен на асинхронной логике (Aiogram + PostgreSQL).
- Данные изолированы по пользователям
- Структура записей зависит от категории
- Карточный интерфейс реализован через inline-кнопки
- Поиск выполняется по всем текстовым полям записи
- Результаты всегда сортируются по дате (сначала новые)
При создании записи:
- дата и время автоматически фиксируются из времени сообщения
- позже их можно изменить вручную
- структура полей зависит от категории
🔮 Расклад
- Название
- Вопрос
- Выпавшие карты
- Трактовка
💭 Сон
- Название
- Трактовка
и другие..
Все заметки отображаются в виде списка:
Категория — Название — Дата- сортировка по дате (сверху самые свежие)
- компактный и читаемый формат
- внизу списка находится кнопка 🔎 Поиск
- поиск по ключевому слову
- проверяются все текстовые поля записи
- выводится список найденных записей
- отображается количество найденных результатов
- сортировка сохраняется
Рис. 2 — Список записей по поиску
Все записи поиска при открытии имеют те же функции, что и в главном списке, разница лишь в том, что список поиска будет состоять только из записей с интересующим вас словом.
Каждая запись открывается как карточка.
В карточке доступны:
- ⬅️ ➡️ Листание вперёд / назад
- ❌ Удаление
- 📅 Перенос даты
- 📌 Добавление итога
Если итог ещё не добавлен — доступна кнопка:
- «Добавить итог»
Если итог уже существует:
- «Просмотреть итог»
- «Перезаписать итог»
При просмотре итог отправляется отдельным сообщением.
- Бот обращается к пользователю по имени Telegram-профиля
- Реализована кнопка возврата в главное меню
- Полная изоляция данных между пользователями
- Python
- Aiogram (асинхронный фреймворк)
- PostgreSQL
- Asyncio
- Inline-клавиатуры
- FSM-логика состояний
✔ Категоризация заметок
✔ Автоматическая фиксация даты
✔ Редактирование времени
✔ Сортировка по дате
✔ Поиск по ключевым словам
✔ Карточная навигация
✔ Добавление итогов
✔ Перезапись итогов
✔ Изоляция данных пользователей
git clone https://github.com/xenonim-ctrl/PyBot-for-notes.git
cd PyBot-for-notespip install -r requirements.txtУбедитесь, что PostgreSQL запущен.
Создайте новую базу данных:
CREATE DATABASE your_db;Создайте файл .env в корне проекта (используйте .env.example как шаблон):
BOT_TOKEN=your_telegram_bot_token
DB_HOST=localhost
DB_PORT=5432
DB_NAME=your_db
DB_USER=postgres
DB_PASSWORD=your_passwordpython bot.pyСтруктура категорий гибко задаётся в коде.
Вы можете:
- изменить список категорий
- изменить набор полей для каждой категории
- добавить новые типы записей
- изменить формат отображения карточек
- или добавить что-то своё :)
Для этого необходимо отредактировать:
- логику создания записей
- обработчики состояний (FSM)
- структуру таблиц БД (при необходимости)
Бот спроектирован так, чтобы категории можно было адаптировать под любые задачи — от личного дневника до систематизированного трекера событий.
⭐ Если проект был полезен — поставьте звезду ⭐