Задача:
● Разработать личный кабинет для анализа заработных плат компании.
● Разработать приложение для пользователей/компаний с возможностью учета и анализа заработных плат сотрудников.
● Frontend-разработка макетов: 30 макетов с различными состояниями, тултипами, нотификациями и попапами.
● Создание UI однофайловых Vue-компонентов.
● Разработка Backend части приложения (API контроллеры на Node.js, веб-сервер Koa).
● Контроль и код ревью задач выполненных командой.
На CMS Strapi:
● Создание собственных контроллеров и кастомных политик безопасности.
● Для оптимизации sql-запросов писать сырые SQL-запросы к базе данных через Knex, подключение индексов к таблицам, то что Strapi не позволяет сделать через интерфейс.
● Создание узконаправленных бэкапов пользовательских данных.
● Оптимизировать код используя Lifecycle.
● Подключаться к дополнительной базе данных clickhouse, и отдавать результаты её запросов через API Strapi.
● Подготовка трех площадок для разработки: prod, pre-prod, dev.
● Реализовал интеграцию с ClickHouse где хранятся рыночные данные. Задача не типовая, необходимо было разобраться с возможностями и функционалом ClickHouse и SQL-командами, которые отличаются от стандартных реляционных баз данных. Для Strapi дописал плагин в котором разместил все контроллеры с интеграциями и различными запросами к ClickHouse.
● Реализовал виртуальный скролл с динамической подгрузкой данных (пагинация) без библиотек на нескольких страницах.
● Сделал нестандартную валидацию двух методологий оценок должностей. Для грейдирования должности, по бизнес-процессу, необходимо было использовать калькулятор для оценки должности.
● Покрыл весь проект политиками безопасности. Более 80 политик для проверки прав доступа.
● Реализован импорт данных из Excel файла и экспорт данных в Excel, Word, PDF файлы. Из-за сложной структуры экспорта, необходимо было хранить преднастроенные XLSX-файлы, прежде чем вставлять в них данные.
● Нормальных библиотек для построения XLSX-график в open source нет.
● Настроил email-уведомления с помощью Nodemailer.
● Реализовал автоматическое блокирование доступа пользователям, при истечении времени купленной лицензии, при помощи CRON-задачи на Node.js
● Реализовал ограниченный доступ для неавторизованных пользователей при помощи токенов. Ссылки с токенами рассылаются через email.
● Оптимизировал SQL-запросы. Помимо изменения SQL-запросов через Knex.js, настроил индексы полям в SQL-таблицах для ускорения выборок данных из базы.
● Продуктом пользуются топовые компании рынка для анализа заработных плат персонала: Альфа-банк, Магнит, Adidas, Avito, Biocad, ЦИАН, HeadHunter и т.д.