Дописать сайт (Маркетплейс для авторских туров) на Python (django)

Цена договорная
18 мая 2022, 08:19 • 12 откликов • 85 просмотров
  1. Введение
Trip-House ( https://trip-house.ru/ ) — туристический портал/каталог туристических продуктов, проще говоря — туров, где "тур" значит "возможность поехать куда-либо отдохнуть"

Туры бывают "обычные", также "экстремальные", "тематические" и т д

Например: http://192.46.237.51/tour/5 в тестовой версии сайта

На сайте встречаются 2 типа пользователей: Организаторы и Туристы

И также присутствуют Администраторы (Владельцы сайта)

Туристом может быть даже "случайно" зашедший (т.е. анонимный, без предварительной регистрации) пользователь который (как задумано для простоты), как только увидит интересующий Тур, может сразу произвести оплату (и таким образом зарегистрироваться на Тур)

Организаторами являются только зарегистрированные пользователи, одобренные Администратором. Их бывает (что важно для выбора метода оплаты) — 2 типа: "частные гиды" (физ. лица) и "организации" (юр. лица, в перспективе)

Портал организует размещение туров и способствует процессу регистрации туристов

2. Основные программные технологии
  • Python 3+/Django 3.2
  • ReactJS (без типизации) + Webpack/CRA и стандартная инфраструктура
  • База данных PostgreSQL
  • HTML/CSS/SCSS и некоторые части фреймворка Bootstrap

    3. Свои технологии и особенности
Кодовое название “form builder” — система на основе Django и ReactJS, превращающая описание навроде: https://dpaste.com/C63X87ACD в



т.е. готовую форму с необходимым внешним видом со:

  • считыванием из базы данных через Django ORM
  • записью обратно
  • необходимой валидацией (на основании определения модели Django)
  • поддержкой ForeignKey (в “обе” стороны) и т п
  • загрузкой файлов
(в перспективе — Open-Source проект и т п)

Также есть генератор таблиц (менее успешная реализация) и система (на основе Django Views), по которой работает API. На сайте используется не REST API (т.е. не API ресурсов из базы данных) а API страниц, что вместе с технологией генерации форм делает backend и frontend “ближе” друг к другу и процесс разработки более декларативным/автоматизированным.

4. Используемые (планируемые к использованию) интеграции:
  • оплата через «Безопасную сделку» (для выплат организаторам–физическим лицам) и «Маркетплейс» (для выплат организаторам–юридическим лицам) от «Тинькофф Бизнес»
  • отправка писем (скорее всего — MailGun)
  • отправка SMS (например, SendPulse)
  • push-уведомления (vapid, firebase и т п, т.е. интеграцией по сути не является)
  • аналитика GA/Яндекс и т п

    5. Другие вводные данные
  • Дизайн в Figma в трёх вариантах (мобильный/планшетный/настольный): https://www.figma.com/file/aJoXS9IWrGNkViCGjiMUSW/Trip-House?node-id=5585%3A9233
  • Т.к. описание всего функционала трудоёмко, то будущим исполнителям предлагается самим его понять исходя из представленного дизайна

    6. Нереализованные вопросы
На данный момент реализация выполняется без server-side rendering. Возможно, что для поисковой оптимизации и лучшей поисковой привлекательности сайта будет необходимо подключить серверный рендеринг (например, с использованием NextJS для ReactJS)

7. Функционал, требующий доработки
  • Вёрстка - Все страницы в соответствии с дизайном (Сложный виджет — карусель подборок)
  • Регистрация пользователей - Подтверждение регистрации (email, SMS)
  • Добавление и редактирование туров (админ и организатор) - Уточнение (лучшее продумывание) статусов и запрет/разрешение редактирования при соответствующих статусах
  • Отображение туров - Отображение только при соответствующих статусах. Возможно, более “умная” сортировка если пустые и т. д.
  • Подборки туров - Лучший интерфейс для составления (возможно, сортировка и т.п.). Логика отображения (в т.ч. если пустые или не так много и т. д.)
  • Общее в Личных кабинетах - Лучшие виджеты загрузки всех изображений (с предпросмотром, соблюдением пропорций, обрезкой и т п)
  • Профиль туриста - Лучший интерфейс для оставления отзывов
8. Нереализованный функционал (необходима реализация)

  • Подтверждение организаторов - Профиль организаторов необходимо подтверждать, а также иметь возможность “снять” подтверждение профиля обратно (а также не отображать их туры)
  • Восстановление пароля - Через email/SMS
  • Модуль уведомлений и коммуникаций - 1) Создание списка событий (в качестве реакции на которые отсылаются уведомления) — UI для админа. 2) Разработка интеграций (Email, SMS, Push). 3) Настройка интеграций (DNS-хостинг/IP-адрес для Email и т п) 4) Истории уведомлений — UI для админа
  • Оплата - 1) Подключение оплаты Тинькофф (для начала — только Безопасная сделка) 2) Сохранение информации (карты для выплат) для Организаторов 3) Сохранение информации (карты для оплаты) для Туристов 4) Интерфейс для управления (для Администраторов) — подтверждение сделок или возврат денег. Аннулирование совершённых сделок (решение споров)
  • Модуль уведомлений и коммуникаций - 1) Создание списка событий (в качестве реакции на которые отсылаются уведомления) — UI для админа. 2) Разработка интеграций (Email, SMS, Push). 3) Настройка интеграций (DNS-хостинг/IP-адрес для Email и т п) 4) Истории уведомлений — UI для админа
  • Система модерации - Для всего загружаемого Организаторами и Туристами контента перед публикацией должны проходить проверки: элементы профиля (фото, информация), туры, отзывы, комментарии к отзывам
  • Удаление и блокировка пользователей - Удаление пользователей по их желанию (возможно, для соблюдения условий по образцу GDPR) с сохранением оставленной им информации (например, “доли” их отзыва в рейтинге), Блокировка пользователей — продумать (скрытие контента, запрет активности и т п), Удаление конкретных элементов
  • Рейтинг туров и организаторов - Вычисление и отображение
  • Избранное - Сбор страниц в “избранное”, Отображение “избранного”

*Предполагается, что будут какие-либо ещё доработки/дополнения после более детального пересмотра сайта и имеющихся материалов

Необходимо дописать сайт - туристический веб-сервис по поиску авторских туров (маркетплейс).

Так же в дальнейшем возможно сопровождение сайта.
Будет круто, если специалист сам увлекается туризмом или каким-то видом активности, чтобы работа была вдвойне интереснее. Но это просто пожелание, а не требование.

Оплата договорная.

Файлы