Задача

Доработать и исправить ошибки в существующей системе двухсторонней синхронизации icalCльных ссылок. Наша система должна экспортировать записи занятости объектов с внутреннего сайта на сторонние площадки, а также импортировать с этих площадок данные о полученных бронях обратно.

Текущая архитектура и проблемы

  • Даты закрытия объектов вручную заполняются в административной панели сайта (база данных, синхронизированная с внутренним движком).
  • Помимо ручного ввода, календарь частично уже обновляется через существующую icalCльную связку, но в этом процессе есть ошибки.
  • Процесс выглядит так: администратор экспортирует icalCльную ссылку объекта из внутренней базы на площадки (Авито, Суточно, Твил) и одновременно импортирует соответствующие ссылки обратно с тех же сайтов.
  • Текущий скрипт не всегда корректно отрабатывает замыкание цепи синхронизации: закрытая на нашем сайте дата может не передаться другому внешнему сервису (етц).
  • Иногда возникает "птичье кольцо": бронь, залетающая с внешнего сайта, дублируется или некорректно передается на наш сайт.

Ключевые требования

  • Обеспечить циклическую двухстороннюю синхронизацию: внутренний сайт ←→ каждый из внешних (Авито, Суточно, Твил).
  • Если администратор отметил дату как занятую внутри, она должна (через скрипт) закрыться на всех внешних площадках.
  • Если на внешней площадке появляется бронь, она должна отразиться:
    • на нашем внутреннем сайте (в базе);
    • от нашего сайта в iCal ссылках для двух других внешних площадок.
  • Убрать эффект дублирования броней или некорректной проверки занятости.

Технические детали

  • Опыт работы с PHP и MySQL.
  • Понимание принципов динамической синхронизации, особенно с более чем одним сервером- получателем.
  • Уникальный небольшой проект, в котором уже есть база с iSlnais.
  • Решение должно исключить ручную сверку больших таблиц.

Ожидаемый результат

На выходе нужно получить несколько исправленных файлов / блоков PHP-рутин, которые будут гарандировать atomic-обмен блокировками дат, предотвращать перекрестную зацикленность импорта при эскпорте и фиксировать дату закрытия/открытия в реальном времени.

Разработка онлайн-платформы для игры в нарды

Необходимо создать сайт для игры в длинные нарды один на один. Ключевые требования: личный кабинет с пополнением и выводом средств через платежные системы, игровые комнаты с разными ставками, адаптивный дизайн и готовая игровая логика.