Главное, что мы хотим получить, — это надёжный движок расписания. В основе лежит схема бассейна: дорожки и временные слоты, поверх которых мы расставляем занятия. Каждое занятие привязано к уровню подготовки и возрасту, имеет ограничение по числу мест и повторяется на протяжении сезона. Система обязана сама не допускать конфликтов: одна дорожка и один тренер не могут стоять в двух местах в одно время. При открытом наборе клиент видит только подходящие ему слоты со свободными местами и записывается сам; если мест нет, он попадает в лист ожидания и получает первое освободившееся. По каждому занятию ведётся отметка присутствия, а по каждому ученику — карта навыков с отметками об освоенных элементах и переводом на следующую ступень.
Отдельно важна денежная часть, связанная с записью напрямую. Нужны разовые визиты, абонементы на месяц и оплата полного курса, текущий баланс ученика, напоминания о приближении срока и сводка по оплатам за период. Расскажите, на каком стеке будете делать, как реализуете контроль занятости дорожек и тренеров и в какие сроки уложитесь. Ожидаемые блоки работы:
— справочник уровней и занятий с местами и возрастными правилами;
— расписание дорожек и тренеров с исключением накладок;
— самозапись клиентов, повторяющиеся занятия и лист ожидания;
— учёт присутствия и прогресс навыков по каждому ученику;
— оплаты, балансы и напоминания о сроках.