Постановка задачи

Имеется работающее frontend-приложение для водителя маршрутки на React + TypeScript. Архитектура управления состояниями (FSM) реализована неправильно. Требуется спроектировать и переписать модуль конечного автомата с нуля, следуя принципам чистой архитектуры.

Требования к реализации

  • База - TypeScript, без классов;
  • У движка должны быть четкие интерфейсы состояний, событий (transition) и условий переходов (guards);
  • Код FSM должен быть изолирован от UI и подключаться как кастомный хук;
  • Генерировать строгую типизацию всех возможных переходов (union types);
  • Не должно быть пересечения логики FSM с вспомогательной отрисовкой;
  • Движок должен легко переиспользоваться в других частях проекта.

Дополнительные детали

  • Сроки: не критичны, но работа требует изучения основ FSM-архитектуры в React;
  • Ожидаемый уровень: новичок/джун, который хочет разобраться в паттернах и реализовать их на практике;
  • Прошлые исполнители не справились - требуется внимательный Pre-review и чёткое описание переходов;
  • Бюджет: ограничен, подходит для режима учебного проекта или легкой фриланс-задачи.

Критерии приёмки

  1. Типизированный FSM с отдельными файлами для описания состояний (states, transitions, guards);
  2. Полностью функционирует в вёрстке водительского приложения (без регрессии UI-логики);
  3. Находит и исправляет все недочеты текущей FSM среди пользовательских сценариев;
  4. Прилагаются комментарии в коде для объяснения архитектуры новичкам.

Разработка многофункционального веб-приложения с ролевой моделью на Bubble.io

Требуется опытный разработчик на Bubble.io для создания адаптивного веб-приложения с личными кабинетами для разных ролей пользователей. Проект включает управление клиентами, документами, CRUD-операции и интеграционную готовность.

Разработка сайта для автоматических донатов с интеграцией API

Требуется создать веб-сайт для приема пожертвований (донатов) с использованием стороннего API платежной системы. Необходимо предоставить примеры возможных реализаций и подтвердить техническую возможность интеграции.