Клиент - компания, занимающаяся фотографированием детей в детских садиках. Есть фотографы, которые должны выезжать на съёмки, а есть менеджеры, которые распределяют съёмки между фотографами. Так же, фотографы иногда могут быть заняты. Ну и расписание так же должны видеть фотографы только своё, а менеджеры - полную картину.
+ некоторые мелочи, которые не так важны
Клиент уже вёл таблицу со списком съёмок в сервисе SmartSheets, аналог Google Таблиц. Важно было не переучивать менеджеров и создать автоматическое расписание, чтобы не приходилось ничего делать, кроме добавления новых съёмок в список.
У SmartSheets есть JavaScript SDK, который и был использован. Приложение на базе Node.js + Express (для создания задачи в cron) каждые 5 минут обходит таблицы списка съёмок, списка фотографов и их занятости и заносит свежие данные в базу данных MySQL.
Далее, пользователи могут авторизоваться в специальном веб-приложении на PHP и смотреть расписание, в зависимости от их прав (фотограф/менеджер).
По факту, это первый опыт работ, где совмещаются две различные технологии для выполнения своих функций.