Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bucketonhead/java-task-tracker-telegram-bot
Telegram bot for tracking tasks :warning: NOT WORK NOW :warning:
https://github.com/bucketonhead/java-task-tracker-telegram-bot
caffeine docker docker-compose environment-variables java11 jpa lombok maven mit-license modules rabbitmq readme spring-boot-2 telegram-bot
Last synced: 26 days ago
JSON representation
Telegram bot for tracking tasks :warning: NOT WORK NOW :warning:
- Host: GitHub
- URL: https://github.com/bucketonhead/java-task-tracker-telegram-bot
- Owner: BucketOnHead
- License: mit
- Created: 2023-04-21T13:08:18.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-09-21T15:43:06.000Z (about 1 year ago)
- Last Synced: 2024-10-13T04:03:22.582Z (26 days ago)
- Topics: caffeine, docker, docker-compose, environment-variables, java11, jpa, lombok, maven, mit-license, modules, rabbitmq, readme, spring-boot-2, telegram-bot
- Language: Java
- Homepage: https://t.me/TaskTrackifyBot
- Size: 742 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# TaskTrackifyBot v1.1.1
> TaskTrackifyBot - это телеграм-бот, предназначенный
> для планирования задач и повышения продуктивности.
> Он обеспечивает удобный способ записи, просмотра
> и удаления задач, помогая вам организовать свою работу.## Оглавление
- [Архитектура проекта](#архитектура-проекта)
- [Инструкция по установке](#инструкция-по-установке)
- [Лицензия](#лицензия)
- [Описание переменных окружения](#описание-переменных-окружения)
- [Функционал](#функционал)
- [Хеширование](#хеширование)## Архитектура проекта
![project_architecture.png](.readme/project_architecture.png)
## Инструкция по установке
- [Требования](#требования)
- [Установка](#установка)
- [Запуск](#запуск)### Требования
- Git
- Docker
- JDK 11
- Apache Maven### Установка
1. Склонируйте проект с помощью команды:
```bash
git clone https://github.com/BucketOnHead/java-task-tracker-telegram-bot
```2. Заполните файл `.env.example` и переименуйте его в `.env`:
```dotenv
TELEGRAM_BOT_USERNAME=YourBotUsername
TELEGRAM_BOT_TOKEN=YourBotToken
# and others
```3. Перейдите в директорию проекта:
```bash
cd java-task-tracker-telegram-bot
```4. Соберите проект с помощью Apache Maven:
```bash
mvn clean install
```### Запуск
После установки проекта, вы можете запустить его с помощью команды:
```bash
docker-compose up -d
```## Лицензия
Этот проект лицензирован в соответствии с [лицензией MIT](LICENSE.md).
Пожалуйста, ознакомьтесь с полным текстом лицензии, прежде чем использовать данный проект.## Описание переменных окружения
> [!IMPORTANT]
> Указанная информация может устареть со временем.| Переменная окружения | Описание |
|:------------------------|:------------------------------------------|
| `TELEGRAM_BOT_USERNAME` | Имя вашего бота в Telegram |
| `TELEGRAM_BOT_TOKEN` | Токен вашего бота в Telegram |
| `RABBITMQ_DEFAULT_USER` | Имя пользователя для RabbitMQ |
| `RABBITMQ_DEFAULT_PASS` | Пароль пользователя для RabbitMQ |
| `COMMON_DB_NAME` | Имя общей базы данных |
| `COMMON_DB_USER` | Имя пользователя для общей базы данных |
| `COMMON_DB_PASSWORD` | Пароль пользователя для общей базы данных |## Функционал
> [!IMPORTANT]
> Указанная информация может устареть со временем.| Команда | Функция |
|:------------|:------------------------------------|
| `/start` | Запуск бота |
| `/delete` | Удаление аккаунта |
| `/help` | Получение списка доступных команд |
| `/profile` | Получить информацию о профиле |
| `/taskmode` | Переход в режим управления задачами |
| `/main` | Переход в главный режим |
| `/task` | Создание задачи |
| `/tasks` | Получение списка задач |
| `/donetask` | Удаление задачи из списка |## Хеширование
- [Добавление хеширования](#добавление-хеширования)
- [Настройка хеширования](#настройка-хеширования)### Добавление хеширования
> [!IMPORTANT]
> Указанная информация может устареть со временем.Если вам необходимо добавить хеширование для вашей сущности и вы хотите
использовать библиотеку `Caffeine`, вы можете воспользоваться классом
`AbstractCaffeineAppCache` из модуля `node`, который уже содержит базовые
методы. Вы можете помещать сущность в хеш `без явного указания ключа`, если
переопределите метод `K getKey(V value)`. В противном случае будет сгенерировано
исключение `RuntimeException` с сообщением:
`"Saving entity only by value is not provided or not implemented".`### Настройка хеширования
> [!IMPORTANT]
> Указанная информация может устареть со временем.Настройка хеширования выполняется в модуле `node`
в классе конфигурации `AppCacheConfig` с использованием
библиотеки `Caffeine`. Пример настройки представлен ниже:```java
package com.github.bucketonhead.config;@Configuration
public class AppCacheConfig {@Bean
public Cache appUserCaffeine() {
return Caffeine.newBuilder()
.expireAfterAccess(10, TimeUnit.MINUTES)
.maximumSize(100)
.build();
}
}
```По умолчанию, пользователь будет удален из кеша
через `10 минут` после `последнего обращения`.
Максимальное количество мест в кеше составляет `100`.