Веб-разработка. Разработка с нуля, доработка существующего продукта. Техническое задание Проект: ToDoTrip — AI-туристическое агентство с возможностью построения маршрутов и попутчиков. Задача: Разработка фронт-энда для кроссплатформенного использования веб-сайта. Стек и технологии Фреймворк: Vue.js / React.js / Flutter Адаптивность: Tailwind CSS или аналогичная utility-first библиотека Сборка: Vite / Webpack CI/CD: GitHub Actions (по согласованию) Функциональные требования Общие: Поддержка всех основных браузеров (Chrome, Safari, Edge, Firefox) Корректное отображение на мобильных устройствах (iOS / Android) и десктопе Удобная навигация, анимации, загрузочные состояния Подключение онлайн оплаты Подключение яндекс метрики Админ панель Совместимость с Яндекс картами или аналогом Чат между пользователями сайта Компоненты: Главная страница: Хедер (туры, о нас, маршрут, вход/регистрация, попутчики) Основное описание Блок с описанием генерации маршрута + кнопка действия Блок с турами (выдача наиболее подходящий туров сразу человеку на экран на основе его куки файлов) Блок про авторские туры (описание) + кнопка перехода на другой сайт Блок попутчиков (описание) + кнопка перехода в раздел + кнопка регистрации. Раздел поиска попутчиков работает, как дейтинг - об этом дальше. Подвал сайта со всей необходимой информацией (конфиденциальность, оферта, соглашение и прочее) Личный кабинет: Данные пользователя Чат Заявки / бронирования Настройки профиля Анкета путешественника Мои маршруты Мои контакты (+ поиск по id) Город (+ определить геолокацию *в лк должен быть указан ID пользователя Анкета пользователя должна содержать: Тест OCEAN Местоположение Предпочтения / интересы Аватар Описание Возраст Авторизация и регистрация: Регистрация происходит путем заполнения телефона, почты и пароля. После чего подтверждение почты. Восстановление пароля - указание почты, куда приходит код восстановления. Поиск попутчиков: Функция работает в формате дейтинг-приложений. К каждой анкете прикрепляется тест OCEAN. В анализ совместимости должен входить тест OCEAN (основной параметр) + схожесть всех остальных элементов анкеты (отношение к животным, к вредным привчкам и т.д.) Карточка пользователя: Отображаемое имя Основное фото профиля Остальные фото профиля Избранные маршруты Предпочтения в путешествиях Результаты теста OCEAN Возраст Хобби Языки Отношение к животным Дети Есть ли другие попутчики? (да и сколько/нет) Вредные привычки: - курение (много/мало/когда выпью/нет) -алкоголь (много/мало/по праздникам/нет) Хобби можно дополнительно нажать, чтобы появился попап где указаны все выбранные хобби. Другие попутчики можно отдельно нажать, чтобы указывались другие попутчики (их профили). Избранные маршруты можно нажать, чтобы узнать о маршруте подробнее На главном экране функции должны появляться все пользователи, из которых человек уже может выбрать, дальше перейти к общению / добавить в свою поездку. Построение маршрута Блок с описанием, как именно работает технология для пользователя. Попап если человек не зареган/не проходил тест оушена с призывом зарегаться/пройти. При построении маршрута также указываются пожелания при помощи ползунков (от 0 до 10). После чего все данные отправляются в ИИ при помощи ML модуля, а далее принимаются и выдаются пользователю в виде маршрута. В результате: пользователь видит список из мест с описанием, а также карту, на которой отмечены все места и маршрут между ними. Карту можно экспортировать в Яндекс.Карты, а маршрут - сохранить в личном кабинете или поделиться им. Все туры: Описание функции для пользователя. Здесь слева должны быть ползунки и другие фильтры для выбора туров. Вся информация о турах подтягивается через API. У каждого тура есть свое описание, свои характеристики, туроператор и возможность забронировать. Бронирование: После того, как пользователь добавил тур в корзину, он может забронировать и оплатить тур. При бронировании вылазит основное описание тура, его стоимость и другая важная информация. Далее идет заполнение данных путешественника, а именно: паспорт, ФИО, дата рождения, пол, телефон, почта. Далее человек выбирает доп услуги, если такое имеются. После этого идет согласие на тур. Человеку высылается для ознакомления договор в приложении, если он с ним согласен - высылается код подтверждения (приравнивается к подписи клиента), после чего экран с оплатой тура. Чат: Чат между двумя пользователями, реализуется через Supabase со стороны бэка API Бекенд разрабатывается параллельно, фронт должен взаимодействовать с ним через REST или GraphQL: Авторизация / регистрация Получение и сохранение маршрутов Поиск и матчинг попутчиков Загрузка картинок Чаты Личный кабинет Сохранённые маршруты Логика теста на основе OCEAN Получение рекомендаций Документация API будет предоставлена. Технические детали Требуется SSR? Нет Многоязычность: Русский Временные зоны / локализация: Автоматическое определение часового пояса SEO: Семантически корректная HTML-структура (заголовки h1–h3, alt-атрибуты и т.п.) Open Graph и микроразметка (Schema.org) для маршрутов, мероприятий и мест, Генерация читаемых URL (/routes/sochi-weekend, /profile/egor), Настройка мета-тегов (title, description, canonical и др.) под каждую ключевую страницу, Поддержка динамического рендеринга или пререндеринга (например, с помощью vite-plugin-ssr или аналогов), чтобы поисковики индексировали маршрутные страницы, Создание sitemap.xml и robots.txt, Скорость загрузки и Core Web Vitals в зелёной зоне (по Lighthouse), Интеграция с Яндекс.Вебмастер и Google Search Console Скорость загрузки: до 2 сек на мобильных Аналитика: Подключение Яндекс.Метрики Все фреймы и то, как все должно располагаться на сайте лежит на фигме вот тут: https://www.figma.com/design/PO8QZiV9q6rqGwr33EkcBz/Untitled?node-id=173-10&m=draw Сроки MVP: 3–4 недели Тестирование и отладка: 1 неделя Общий срок: до 8 недель Коммуникация и отчётность Еженедельная демонстрация прогресса Репозиторий на GitHub, pull-requests и code-review Оформление договора с самозанятым или ИП / ООО. БЭК: Подключение одноразовых кодов аутентификации для 1) Восстановления пароля 2) Подписание договоров.