GreenAssistantBot - это умный Telegram-бот, разработанный для помощи пользователям с различными задачами. Бот предоставляет возможность управления профилем, получения информации о погоде и настройки уведомлений.
- 👤 Управление профилем: Создание и редактирование личного профиля с указанием имени и города
- 🌡️ Погода: Получение актуальной информации о погоде для любого города
- ⚙️ Настройки: Персонализация работы бота под ваши нужды
- 🔔 Уведомления: Настройка и получение уведомлений (в разработке)
- 📞 Поддержка: Получение помощи при использовании бота
- ℹ️ Информация: Справка о возможностях бота
- Язык программирования: Go
- База данных: MySQL с использованием GORM
- API: Telegram Bot API, OpenWeatherMap API
- Архитектура: Чистая архитектура с разделением на внутренние модули
- Go 1.19 или выше
- MySQL 8.0 или выше
- Токен Telegram-бота
- API-ключ OpenWeatherMap
-
Клонируйте репозиторий:
git clone https://github.com/yourusername/GreenAssistantBot.git cd GreenAssistantBot -
Создайте файл
.envна основе примера.env.example:cp .env.example .env
-
Заполните файл
.envнеобходимыми данными:DB_CONNECTION=mysql DB_HOST=localhost DB_PORT=3306 DB_DATABASE=green_assistant_bot DB_USERNAME=your_username DB_PASSWORD=your_password HTTP_PORT=8585 BOT_TOKEN=your_telegram_bot_token BOT_WEBHOOK_URL=https://your-domain.com/webhook OPENWEATHER_API_KEY=your_openweather_api_key
-
Установите зависимости:
go mod download
-
Запустите миграции базы данных (при необходимости):
go run cmd/bot/main.go
Миграции будут выполнены автоматически при первом запуске.
-
Запустите бота:
go run cmd/bot/main.go
GreenAssistantBot/
├── cmd/ # Точка входа в приложение
│ └── bot/
│ └── main.go # Основной файл запуска бота
├── internal/ # Внутренние пакеты приложения
│ ├── bot/ # Логика работы Telegram-бота
│ │ ├── commands.go # Команды бота
│ │ ├── handlers.go # Обработчики сообщений
│ │ └── keyboards.go # Клавиатуры бота
│ ├── database/ # Работа с базой данных
│ │ ├── database.go # Функции для работы с БД
│ │ └── models/ # Модели данных
│ │ └── user.go # Модель пользователя
│ ├── storage/ # Хранение данных в памяти
│ │ └── storage.go # Реализация кэширования
│ └── weather/ # Работа с погодой
│ └── weather.go # Сервис погоды
├── pkg/ # Внешние пакеты, которые могут быть использованы в других проектах
│ └── models/
│ └── model.go # Базовые модели данных
├── .env # Переменные окружения
└── README.md # Документация проекта
Мы приветствуем вклад в развитие проекта! Если вы хотите внести свой вклад, пожалуйста:
- Сделайте форк репозитория
- Создайте ветку для вашей функции (
git checkout -b feature/amazing-feature) - Внесите изменения и закоммитьте их (
git commit -m 'Add amazing feature') - Отправьте изменения в ваш форк (
git push origin feature/amazing-feature) - Откройте Pull Request
Этот проект распространяется под лицензией MIT. Подробности см. в файле LICENSE.
Если у вас есть вопросы или предложения, пожалуйста, свяжитесь с нами:
- Telegram: @green_tmz
- Email: green.tmz@yandex.ru
- Telegram Bot API за предоставление отличной платформы для создания ботов
- OpenWeatherMap за API погоды
- Сообществу разработчиков Go за вдохновение и помощь