Мы с важной новостью: с 28 февраля 2025 года сервис Хабр Фриланс прекратит свою работу.

Купить услуги можно до 28 февраля 2025, но пополнить баланс уже нельзя. Если на вашем счете остались средства, вы можете потратить их на небольшие услуги — служба поддержки готова поделиться бонусами, на случай, если средств немного не хватает.
R50 591bbaaeec8daec29f69698f2bf159d5
Node.js Backend developer

Система постинга

Добавлено 12 янв 2024 в 17:46
Логика проекта - автоматизация публикации сообщений в ~ 1000 Telegram чатов.
В проекте принимали участие в разработке всего 4 человека
2 Frontend разработчика, тестировщик и Backend разработчик.

Основные функции системы:
- Создание/редактирование/удаление публикации через сайт
- Получение списка всех созданных публикаций
- Установка даты, когда должна выйти публикация
- Установка таймера авто-удаления публикации в чатах
- Закрепление и авто-открепление публикации в чатах
- Авто-удаление публикации в чатах
- Настройка чатов (Часовой пояс, количество участников, категории чатов)
- Функция предпросмотра (Бот покажет как будет выглядеть публикация в чатах)

Я занимался серверной частью (Backend ), т.е.:
- Сохранение/обновление/удаление данных
Например, сохранение данных публикации.
Это текст для конкретного поста (сообщения), стили этого текста, материалы (фото/видео/файлы), кнопочки, дату публикации, таймер автоудаления, выбранные чаты.

- Конвертация и сжатие файлов
Пользователь загружает на сайт фотографию для будущего поста и задача серверной части проверить загруженный файл на лимиты Telegram, иначе бот просто не сможет опубликовать пост.
Лимиты Telegram- вес файлов, разрешение картинок, расширение/кодировка видео.
Например, пользователь захотел видеть в своём посту картинку с разрешением 6000x7000 px с весом 2 ГБ. Telegram попросту "не разрешит" боту публиковать эту картинку, т.к. сумма разрешения картинки не должна превышать 10000 px (6000+7000=13000) и вес картинки не должен превышать 20 МБ. Серверная часть сожмет эту картинку и избежит лимитов.

- Прочая программная суета
  • Программирование сюжетов бота (команда - ответ, кнопка - конкретное меню)
  • Обеспечил стабильную работу системы за счёт обработки ошибок и использования системы мониторинга Sentry
  • Оптимизация кода (скорость выполнения задач)
  • Борьба за красивую архитектуру
8258ea847d 8bd962f735 8e6c07cef8