
Cистема учёта рабочего времени и расчёта зарплаты для строительного маркетплейса
Многоповерхностная платформа управления сотрудниками для компании Stroymir777 (Узбекистан): Telegram-бот для пожилых работников (отметка одним нажатием через нативную кнопку геолокации), Telegram Mini App как резервный канал и веб-панель администратора. Геозона (Хаверсин) ограничивает отметку радиусом офиса; привязка по телефонному контакту Telegram избавляет от запоминания PIN. Движок зарплаты поддерживает три типа оплаты (месячная / дневная / почасовая) с настраиваемыми правилами — пороги опозданий, штрафы за прогулы, выкуп неотгулянных выходных, автоматический бонус за полную явку с возможностью ручного override, и авансы, вычитаемые в выбранном месяце. Отчёты экспортируются в Excel (один лист на месяц или книга на 13 листов на год со сводной страницей). Стек: React + TypeScript + Tailwind + Zustand на фронте, Node.js + Express + Prisma + PostgreSQL на бэке, grammY для бота. Развёрнуто на собственном VPS через Docker Compose за Caddy с автоматическим HTTPS от Let's Encrypt. Безопасность: PIN-ы хранятся в bcrypt-хэше и параллельно зашифрованы AES-256-GCM (для просмотра администратором), rate-limit на эндпоинтах авторизации, HMAC-проверка Telegram InitData.