Skip to content

Бот для удобного просмотра расписания в Минском государственном колледже цифровых технологий

License

Notifications You must be signed in to change notification settings

Keller18306/MgkeTimetableBot

Repository files navigation

МГКЦТ Бот расписаний

Описание

МГКЦТ Бот расписаний - это бот для удобного просмотра расписания в Минском государственном колледже цифровых технологий. Если у вас возникли проблемы с использованием бота или вы нашли ошибку, пожалуйста, создайте issue в репозитории проекта или внесите свои изменения через Pull Request.

Прошлый репозиторий

Я хотел бы также упомянуть, что ранее этот проект размещался в отдельном приватном репозитории, который насчитывал 223 коммита. Однако, в процессе разработки в старом репозитории были хранены конфиденциальные данные, что потребовало отделить проект и разместить его в новом, открытом репозитории.

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

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

Требуется помощь

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

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

Еще раз приношу извинения за возможные неудобства и надеюсь на ваше понимание и содействие в развитии проекта.

Действующие проекты

Структура проекта

Проект состоит из различных модулей и компонентов, важные из которых описаны ниже:

  1. Папка команд (src/services/bots/commands) - здесь находятся все команды для различных платформ (ВК, Telegram и Viber). Команды разделены по категориям, таким как admin, main_menu, rasp, settings, и другим.

  2. Папка сервисов (src/services) - содержит различные сервисы для работы с Алисой, API, ботами и созданием изображений. В каждой подпапке находятся специфичные файлы для каждого сервиса:

    • Alice: обработка навыков и пользовательских запросов
    • API: обработка методов API
    • Bots: реализация абстрактных классов и методов для ботов
    • Image: создание изображений с расписанием
    • VK App: обработка методов для мини-приложения ВКонтакте
    • Parser: отвечает за обновление данных расписания и кэширование
    • Timetable: хранение данных о расписании. В папке types находятся типы данных для расписания преподавателей и групп.

Дополнительно к этим ключевым папкам, следует обратить внимание на следующие файлы и папки:

  • db/ - подключение базы данных
  • http.ts - настройка и работа с HTTP-сервером
  • src/formatter - форматировщик расписания
  • src/services/bots/abstract - содержит абстрактные классы и методы для ботов
  • src/utils - содержит различные утилиты, такие как сортировка, преобразование времени, проверка подписи и другие функции

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

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

Для запуска бота требуется Node.js. Следуйте приведенным ниже шагам для установки и запуска:

  1. Убедитесь, что у вас установлен Node.js. Если нет, установите его с официального сайта: https://nodejs.org/

  2. Клонируйте репозиторий проекта:

    git clone https://github.com/Keller18306/MgkeTimetableBot.git
  3. Перейдите в каталог проекта:

    cd MgkeTimetableBot
  4. Установите зависимости проекта с помощью Yarn:

    yarn
  5. Скопируйте файл config.example.ts и переименуйте его в config.ts. Откройте config.ts и заполните необходимые значения переменных, согласно схеме из файла config.scheme.ts. В конфиге можно настраивать различные сервисы, такие как ВКонтакте, Telegram, Viber и API.

    ВАЖНО! По умолчанию в конфиге включены следующие сервисы: http, api, timetable, parser. Для того, чтобы запустить бота/ботов необходимо указать сервис bot, а также сервис соц-сети (например tg, vk, viber).

    Некоторые сервисы требуют наличия других сервисов, например:

    Сервис Обязательные сервисы Второстепенные
    tg bot, timetable image, google
    vk bot, timetable image, google
    viber bot, http, timetable image, google
    vkApp http, timetable
    api http, timetable
    alice http, timetable
    google_calendar timetable bot, http
    parser timetable bot
    image http

    Пример для запуска телеграм (без апи, но с генерацией изображения):

    export const config: ConfigScheme = {
        dev: false,
        services: ['timetable', 'parser', 'bot', 'tg', 'image'],
        db: {
        ...

    Полный список сервисов можно найти в src/app.ts

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

    node -e "console.log(require('crypto').randomBytes(32).toString('base64'))"

    Скопируйте полученный ключ и добавьте его в соответствующее поле в файле config.ts.

  7. Запустите бота:

    yarn start

Поздравляем, ваш МГКЦТ Бот расписаний успешно запущен и готов к работе!

Лицензия

Данный проект распространяется под MIT лицензией. Если вы хотите создать свою версию бота, обязательно указывайте авторство оригинального проекта.

About

Бот для удобного просмотра расписания в Минском государственном колледже цифровых технологий

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published