Skip to content

Jaz7Mutant/Telegram-Reminder-Bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Telegram Reminder Bot

Бот для созданий напоминаний и встреч

Версия 1.0 Авторы:

  • Даниил JazzMutant Толстоухов
  • Артемий Arteeck Гордон
  • Софья HebiSan Горбунова

Описание

Бот позволяет создавать напоминания, которыми можно делиться с другими пользователями. Также есть возможность общаться в анонимной чат-рулетке.

Возможности

  • Базовые функции /help - Показать краткую справку по командам /date - Показать текущую дату /authors - Показать авторов

  • Напоминания /new - Создать новое напоминание. Есть возможность установить напоминание в любое время или использовать один из предложенных шаблонов. Событые может быть периодическим /all - Показать список всех напоминаний пользователя /remove - Удалить напоминание из списка

  • Встречи /meeting - Создать новое напоминание, которым можно будет поделиться с другими пользователями. После создания будет сгенерирован уникальный идентификатор /join - Присоединиться к событию по его уникальному идентификатору. Напоминание будет автоматически добавлено в ваш список напоминаний

  • Чат-рулетка /chat - Войти в режим чат-рулетки. При создании встречи в этом режиме вашему собеседнику автоматически поступит предложение присоединиться /next - Сменить текущего собеседника /leave - Выйти из режима чат-рулетки

  • События (Alpha) Возможность создавать события, в которых могут принять участие все желающие пользователи. Например игра "Тайный Санта", где пользователи могут обменяться поздравлениями со случайными людьми.

    /event - Посмотреть информацию о текущем или предстоящем событии /wish - Оставить свое пожелание

Параметры приложения

Приложение может работать в двух режимах: консольный и режим телеграм-бота. Хранение пользовательских напоминаний возможно на диске, либо в базе данных. Все настройки, в том числе локализацию можно найти в файле recources/BotResorces.json Настройки логирования находятся в resources/logging.properties

Состав

Приложение и парсер настроек: bot Класс пользователя и его возможные состояния: user Пакет, отвечающий за работу с напоминаниями: reminder Пакет для работы с сериализацией и десериализацией: serializer Пакет ввода-вывода: inputOutput Чат-рулетка: chatRoulette Пакет для работы с событиями + Тайный Санта: event

Стадии разработки

  • Базовые команды
  • Многопользовательность, перисистентное хранилище заметок, интеграция Telegram
  • Встречи
  • Чат-рулетка
  • События
Выпонено/пропущено - [x] Об авторах
- [x] help
- [x] echo
- [x] Команды для создания заметки, вывод напоминания в указанное время
- [x] Отделить ввод/вывод
- [x] Перисистентное хранилище
- [x] Многопользовательность
- [x] Список напоминаний
- [x] Тесты
- [x] Удаление заметок
- [x] Telegram**
- [x] Проблема многопоточности
- [x] Встречи
- [x] Проблема вывода большого числа заметок в нужное время
- [x] Уменьшить дельту между датой заметки и текущим временем
- [x] Периодичные напоминания
- [x] Настройки и внутренние тексты вынести в .ini или .json
- [x] Логи
- [x] Чат-рулетка
Пользователи могут анонимно общаться через бота со случайным человеком.
Собеседника можно сменить в любой момент.
Собеседники могут создать общую встречу по общему согласию.
- [x] Новое состояние -- общение
- [x] Придумать как создавать встречи
- [x] Heroku
- [x] String.format
- [x] uuid
- [x] Тип сериализатора в конфиге
- [x] Правильное время на Хероку
- [x] Отделить парсинг команд от их исполнения
- [x] Json -> data base
- [x] Класс пользователя
- [x] Не переключаться на одного и того же юзера в рулетке
- [x] Вынести установку периода в отельный диалог
- [x] /stop
- [x] Переместить заметки в /Resources
- [x] Тайный санта
Пользователи собираются в группу, потом в определенное время каждому пользователю
назначается собеседник, которому он должен написать поздравление (Или что-то не
текстовое -- надо подумать). Если человек не отправлет поздравление, то ему приходит
напоминание. Если не отправить поздравление до дедлайна, то пользователь теряет
анонимность и всем остальным оправляется гневное сообщение (напр. Толик -- бубун)
- [x] Пофиксить проблему с неправильным отображением месяцев следующего года
- [x] Сделать так, чтобы кнопка возвращала конкретное значение, а не номер кнопки
- [x] Пофиксить проблему с потерей коннекта к базе данных
- [x] synchronized -> потокобезопасные структуры. Сохранить все сортировки и компараторы
- [x] Красивый вид дней месяца и мясяцев года.
- [x] Убрать двустороннюю связь между классами
- [ ] В рулетке, при создании встречи, токен видят все
- [ ] Заменить айди чата на никнейм или что-то еще в рулетке.
- [ ] Добавить возможность делать никнемы
- [ ] Исправление некорректной даты начинается в тот же шаг, когда дата становится неправильной
- [ ] Пофиксить тесты
- [ ] Русификация
- [ ] Help в телеге
- [ ] DDoS заметки :D
- [ ] /start
- [ ] Убрать варнинги при билде
- [ ] Добавить описание
- [ ] Спрашивать у пользователя часовой пояс
- [ ] В списке всех заметок выводить токен у встреч
- [ ] Заменить switch на словарь комманд
- [ ] Добавить описание тайного Санты
- [ ] Добавить возможность писать время через точку
- [ ] Починить счетчик онлайн пользователей
- [ ] Динамически менять время обновления
- [ ] Связь заметок между собой. При удалении корневой, удаляются все

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages