Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📔 Personal Notes Telegram Bot

Асинхронный Telegram-бот для ведения структурированных заметок с умным поиском и карточной навигацией


🌟 О проекте

Telegram-бот для ведения личных заметок с категоризацией, карточной навигацией и умным поиском.

Бот позволяет:

  • фиксировать события с автоматическим определением даты и времени
  • создавать записи разных категорий с разной структурой данных
  • просматривать заметки в виде отсортированного списка
  • искать записи по ключевым словам
  • листать карточки заметок
  • редактировать дату
  • добавлять и перезаписывать итоги

Каждый пользователь видит только свои заметки.


🧠 Архитектурная идея

Бот построен на асинхронной логике (Aiogram + PostgreSQL).

  • Данные изолированы по пользователям
  • Структура записей зависит от категории
  • Карточный интерфейс реализован через inline-кнопки
  • Поиск выполняется по всем текстовым полям записи
  • Результаты всегда сортируются по дате (сначала новые)

✍ Создание заметки

При создании записи:

  • дата и время автоматически фиксируются из времени сообщения
  • позже их можно изменить вручную
  • структура полей зависит от категории

Пример категорий:

🔮 Расклад

  • Название
  • Вопрос
  • Выпавшие карты
  • Трактовка

💭 Сон

  • Название
  • Трактовка

и другие..


📋 Просмотр записей

Все заметки отображаются в виде списка:

Категория — Название — Дата
  • сортировка по дате (сверху самые свежие)
  • компактный и читаемый формат
  • внизу списка находится кнопка 🔎 Поиск


Рис. 1 — Список записей


🔎 Поиск

  • поиск по ключевому слову
  • проверяются все текстовые поля записи
  • выводится список найденных записей
  • отображается количество найденных результатов
  • сортировка сохраняется


Рис. 2 — Список записей по поиску

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


🗂 Карточки заметок

Каждая запись открывается как карточка.

В карточке доступны:

  • ⬅️ ➡️ Листание вперёд / назад
  • ❌ Удаление
  • 📅 Перенос даты
  • 📌 Добавление итога


Рис. 3 — Карточка заметки


📌 Итоги

Если итог ещё не добавлен — доступна кнопка:

  • «Добавить итог»

Если итог уже существует:

  • «Просмотреть итог»
  • «Перезаписать итог»

При просмотре итог отправляется отдельным сообщением.


Рис. 4 — Итог


👤 Персонализация

  • Бот обращается к пользователю по имени Telegram-профиля
  • Реализована кнопка возврата в главное меню
  • Полная изоляция данных между пользователями

🛠 Технологии

  • Python
  • Aiogram (асинхронный фреймворк)
  • PostgreSQL
  • Asyncio
  • Inline-клавиатуры
  • FSM-логика состояний

🚀 Основные возможности

✔ Категоризация заметок
✔ Автоматическая фиксация даты
✔ Редактирование времени
✔ Сортировка по дате
✔ Поиск по ключевым словам
✔ Карточная навигация
✔ Добавление итогов
✔ Перезапись итогов
✔ Изоляция данных пользователей


📦 Установка и запуск

1️⃣ Клонирование репозитория

git clone https://github.com/xenonim-ctrl/PyBot-for-notes.git
cd PyBot-for-notes

2️⃣ Установка зависимостей

pip install -r requirements.txt

3️⃣ Создание базы данных PostgreSQL

Убедитесь, что PostgreSQL запущен.

Создайте новую базу данных:

CREATE DATABASE your_db;

4️⃣ Конфигурация

Создайте файл .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_password

5️⃣ Запуск бота

python bot.py

🧩 Кастомизация категорий

Структура категорий гибко задаётся в коде.

Вы можете:

  • изменить список категорий
  • изменить набор полей для каждой категории
  • добавить новые типы записей
  • изменить формат отображения карточек
  • или добавить что-то своё :)

Для этого необходимо отредактировать:

  • логику создания записей
  • обработчики состояний (FSM)
  • структуру таблиц БД (при необходимости)

Бот спроектирован так, чтобы категории можно было адаптировать под любые задачи — от личного дневника до систематизированного трекера событий.

⭐ Если проект был полезен — поставьте звезду ⭐

About

Асинхронный Telegram-бот для структурированных заметок с динамическими категориями и карточной навигацией. Автофиксация даты/времени с возможностью редактирования, сортировка по свежести, полнотекстовый поиск по всем полям, добавление и перезапись итогов. PostgreSQL, изоляция данных пользователей.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages