Портфолио: Финальные изменения в README

This commit is contained in:
Kirill Samoylenkov 2025-08-23 16:47:03 +07:00
parent 70818fb169
commit f4d52fa35a
2 changed files with 34 additions and 22 deletions

BIN
Images/loopes.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

View file

@ -1,28 +1,37 @@
# Школьный бот - Мышонок # Школьный бот - Мышонок 🐭
![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54)
![Babel](https://img.shields.io/badge/Babel-F9DC3e?style=for-the-badge&logo=babel&logoColor=black)
![Docker](https://img.shields.io/badge/docker-%230db7ed.svg?style=for-the-badge&logo=docker&logoColor=white)
![Nix](https://img.shields.io/badge/NIX-5277C3.svg?style=for-the-badge&logo=NixOS&logoColor=white)
- Школьный Telegram бот, для общения с учениками и проведенния различных мероприятий онлайн. - Школьный Telegram бот, для общения с учениками и проведенния различных мероприятий онлайн.
Бот имеет полностью настроенный функционал для работы в качестве предложки школьной группы. Также в нем есть инструменты администрирования, статистика. Бот имеет полностью настроенный функционал для работы в качестве предложки школьной группы. Также в нем есть инструменты администрирования, статистика.
- Также это хороший шаблон для того, чтобы позаимствовать из него некоторый штучки. - С помощью бота вы также можете получить доступ к эксклюзивным стикерам школы.
- Также это хороший проект для того, чтобы позаимствовать из него некоторый штучки.
Например, его структуру (работа с роутерами, разделение по директориям для удобного масштабирования), админ-панель, работу с БД и ее настройка, всякие фильтры, мидлвари и состояния тоже присутствуют и могут помочь в ваших проектах. Например, его структуру (работа с роутерами, разделение по директориям для удобного масштабирования), админ-панель, работу с БД и ее настройка, всякие фильтры, мидлвари и состояния тоже присутствуют и могут помочь в ваших проектах.
- Ну и конечно не забываем про локализацию и использование podman (или Docker, если вы очень принципиальный, там сильно ничего не отличается в развертке). - Ну и конечно не забываем про локализацию и использование Docker.
- Бот распространяется под свободной лицензией, берите что хотите и используйте как вам нужно. - Бот распространяется под свободной лицензией, берите что хотите и используйте как вам нужно.
## Техническая часть ## Техническая часть 📃
- Бот написан на Python 3.11 с применением асинхронной библиотеки Aiogram (States, Middlewares, Custom Filters). - Бот написан на Python 3.11 с применением асинхронной библиотеки Aiogram (States, Middlewares, Custom Filters).
- БД - PostgreSQL, взаимодействие осуществляется с помощью библиотеки SQLAlchemy. - При локальной разработке во время запуска в основной Python скрипт можно передавать параметры для очистки базы данных или обновления профиля бота из настроек в папке Mousey/Bot. При развертке с помощью Docker бот автоматически обновит свой профиль.
- Также используется асинхронный клиент Redis. - База данных - PostgreSQL, взаимодействие осуществляется с помощью библиотеки SQLAlchemy.
- Весь текст для диалогов бота находится в отдельном файле локализации (PyBabel). - Также используется асинхронный клиент Redis для машины состояний (подробнее в документации Aiogram: States).
- Логирование главный событий + настройки для логов (автоудаление логов, сжатие файлов логов). - Весь текст для диалогов бота находится в отдельном файле локализации (для локализации используется Babel и i18n мидлвари aiogram'a).
- Бот полностью развертывается с помощью podman-compose || docker-compose. - Логирование главный событий + настройки для логов (автоудаление логов, сжатие файлов логов) осуществляется с помощью loguru.
- Разработка с помощью NixOS с использованием Nix Shell. - Бот развертывается с помощью Docker Compose или Podman Compose.
- Разработка осуществлялась с помощью NixOS с использованием Nix Shell.
## Содержание .env-файла ## Содержание .env-файла 📭
- Файл находится в корневой папке проекта, так и называется ".env". - Файл находится в корневой папке проекта, так и называется .env
- Вместо значений в круглых скобках необходимо указать ваши данные. - Вы также можете изучить example.env (не забудьте проверить, заполнены ли все строки с тегом FIXME)
- Подробное содержание .env файла (вместо значений в круглых скобках необходимо указать ваши данные):
1. BOT_TOKEN = (ваш токен бота) 1. BOT_TOKEN = (ваш токен бота)
2. REDIS_HOST = "redis" 2. REDIS_HOST = "redis"
3. REDIS_PORT = 6379 3. REDIS_PORT = 6379
@ -33,17 +42,20 @@
8. POSTGRES_DB = "mousey_bot" 8. POSTGRES_DB = "mousey_bot"
9. DB_URL = "postgresql+asyncpg://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}" 9. DB_URL = "postgresql+asyncpg://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}"
10. MAIN_ADMIN_ID = (Telegram ID главного админа) 10. MAIN_ADMIN_ID = (Telegram ID главного админа)
- Вы также можете изучить example.env
## Если ваш выбор - NixOS ## Если ваш выбор - NixOS ❄️
- Просто используйте nix-shell, который скачает вам весь инструментарий - Файл Shell/default.nix содержит все необходимые конфигурации для установки podman-compose, который изначально служил для развертки софта.
(podman-compose) с помощью команды: nix-shell ./Shell - Воспользуйтесь nix-shell: nix-shell ./Shell
## Как развернуть с помощью docker-compose: ## Развертка с помощью Docker 🤓
- Версия podman - 5.2.3, версия podman-compose - 1.2.0 - Я использую docker и docker-compose-v2, однако можно использовать и docker-compose-v1 или podman.
- Шаги для развертки бота:
1. Скопируйте проект 1. Скопируйте проект
2. Скопировать example.env как .env 2. Скопируйте example.env как .env
3. Заполните .env файл. 3. Заполните .env файл
4. Выполнить: docker compose -f Docker/docker-compose.yaml --env-file .env up 4. Выполните: docker compose -f Docker/docker-compose.yaml --env-file .env up
## Удачи в использовании! 🫶
<img src="./Images/loopes.png" width="150"/>