Skip to content

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

License

Notifications You must be signed in to change notification settings

Lynx20wz/school_tg_bot

Repository files navigation

Документация для school_tg_bot 🚀

Описание проекта

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

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

Основные функции:

  1. Получение расписания:

    • Пользователи могут запрашивать расписание на текущий день или на неделю 📆.
  2. Домашнее задание:

    • Бот позволяет пользователям видеть свои домашние задания на текущий день или на всю неделю в зависимости от настроек 🛠️.
    • Домашние задания загружаются с сайта школы, что обеспечивает актуальность данных 💾.
  3. Настройки пользователя:

    • Пользователи могут настраивать предпочтения получения информации о домашних заданиях (на день или на неделю) и уведомлениях (включенные или выключенные).
    • Все настройки удобно сохраняются и могут быть изменены в любое время ⏳.
  4. Логирование:

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

Технические детали:

  • Используемые библиотеки:

  •  Aiogram - библиотека для асинхронной работы с API Telegram 📞.
  •  Aiosqlite - для асинхронной работы с базами данных SQLite 🗄️.
  •  Loguru - для логирования 🔍.
  •  Requests - для выполнения HTTP-запросов к школьному порталу для получения расписаний и домашних заданий 🚀.
  •  Selenium - для парсинга нового токена авторизации 🔑. (не используется)

TODO-лист:

Основная работа 🛠️:

  • Реализовать систему кэша (уже с помощью sqlite!)
  • Авторизация пользователей
  • Чек-лист сборки портфеля 📝✅
  • Уведомления о новом дз/оценках сразу после соответствующего урока
  • Выложить код на автономный сервер
  • Уведомления о полученных оценках 🔔
  • Система API "моя школа" на основе ООП
  • Поддержка других школьных дневников

ГДЗ 🔢✅:

  • Автоматическая отправка ответов на цдз
  • Написать свою систему (мечта)
  • Автоматическое решение ЦДЗ

Настройки ⚙️:

  • Настройка дз день/неделя 🛠️
  • Настройка уведомлений 🔔
  • Настройка токена

Техническая документация

Структура кода:

bin:

  • main.py - Основная логика взаимодействия с пользователем реализована в файле
  • parser_school.py - Функции для парсинга данных с сайта школы сгруппированы в файле
  • get_token.py - Для получения нового токена используется файл (сейчас не используется)
  • KeyBoards.py - Файл с функциями для создания клавиатур aiogram
  • Start tg bot.cmd - Быстрый запуска бота в терминале.

classes:

  • UserClass.py - Класс для хранения информации о пользователе
  • BaseDate.py - Класс для работы с базой данных

handlers:

  • registration.py - Получение токена
  • debug.py - Функции для дебага

Если вы хотите внести свой вклад в проект, вы можете сделать это следующим образом:

  1. Создайте форк репозитория
  2. Внесите свои изменения
  3. Создайте Pull Request

Лицензия:

Этот проект лицензирован под лицензией MIT. Подробности можно найти в файле LICENSE.


"Спасибо за внимание!" - Lynx20wz

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published