Giter Club home page Giter Club logo

kolomna's Introduction

ТЗ

Название: Приложение для туристических маршрутов

Описание: В настоящий момент существует необходимость полноценно продемонстрировать пользователю/гостю туристические возможности г. Коломна (около 40 музеев, 80 музейных программ, 3 маршрута, 90 кафе/ресторанов, 1,7 млн. туристов в год). Для этого нужно автоматизировать взаимодействие с пользователем/гостем города путем внедрения решения, которое позволит в режиме реального времени оперативно знакомиться со всеми необходимыми ресурсами, осуществлять покупку билетов/запись на экскурсии.

Предполагаемый результат: Приложение, которое упростит опыт взаимодействия туриста с городской инфраструктурой. Приложение должно собирать данные для AMO crm или Битрикс 24.

Вводные данные: Базы данных со сложными уникальными расписаниями 6 туристических объектов.

Описание возможностей системы и того, на что необходимо обратить внимание при тестировании

Пользователь

Создание аккаунта

  • Нажмите на кнопку "Войти" в верхней части сайта
  • Во всплывшем окне нажмите "Зарегистрироваться"
  • Заполните и отправьте форму
  • Созданные пользователь появится в CRM Битрикс 24 в разделе клиенты

Добавить программу в корзину

  • Открываем "Программы"
  • Может отфильтровать мероприятия по доступных параметрам
    • Музей
    • Длительность в минутах
    • Доступность мест
    • Цена
    • Дата
    • Диапазон времени
  • Нажимаем купить
  • Выбираем понравившееся дату и время
  • Динамически считается кол-во доступных билетов в зависимости от
    • максимального числа посетителей мероприятия
    • максимального числа посетителей конкретной категории
    • общему числу купленных билетов
    • числу купленных билетов определённой категории
  • Добавляем в корзину
  • Отмечаем, что число товаров возле иконки корзины изменилось

Добавление в корзину набора билетов

  • Для покупки набора билетов переходит в соответсвующее окно
  • Выбираем набор
  • Возле каждого из мероприятий в наборе выбираем дату, когда хотим его посетить
  • После того как всё выбрано нажимаем "Добавить в корзину"

Покупка корзины

  • Открываем корзину, нажав на соответсвующую иконку
  • У нас есть два варианта того, что может быть в корзине: одиночные мероприятия или наборы. В корзине "мероприятие из набора" отображается вместе с одиночными, однако:
    • стоимость этих билетов не идёт в сумму за "колонку суммы", а в финальную стоимость включается цена именно наборов
    • удалить из корзины "мероприятие набора" можно лишь удалив весь набор (также нажав на иконку корзины)
  • Система считает наложения расписаний с учётом 45 минут на дорогу. Пользователь может купить билет с наложением, но ему потребуется дополнительно согласиться с тем, что он может опоздать
  • Также, если каким-то образом пользователь добавил в корзину больше билетов, чем доступно мест, то система не даст ему оплатить заказ, а билеты с "ошибкой" будут выделены красным
  • Для покупки нажимаем "Купить" и попадаем в yookassa
  • На этом моменте заказ попадает в CRM и создаётся 'сделка' (с прикрепленными 'товарами')
  • Если мы не опалим заказ, то он будет в статусе Новый и его можно оплатить со страницы "Профиль"
  • После оплаты статус переходит в "Оплачен"
  • В CRM измениться статус 'сделки' измениться на 'В работе' и создастся 'задача' на сотрудника колл-центра
  • Также пользователю, на указанную при регистрации почту придут билеты
  • На каждое единичное мероприятие формируется свой билет, а на набор мероприятий свой

Личный кабинет

  • Ознакомиться с билетами пользователь может в личном кабинете
  • Открыв билет подробнее он может ознакомиться с информацией, а также перейти к оставлению отзыва

Важно отметить

  • Адаптивность под мобильные устройства страниц, доступных пользователю (не сотруднику ТИЦ)

Сотрудник ТИЦ

Добавление/изменение/удаление наборов

  • Кнопка для перехода на форму добавления находится на экране списка наборов
  • Кнопки для изменения и удаления находится на экране самого набора

Календарь

  • На странице календаря есть два блока: фильтр и сам календарь
  • В фильтре представлена "легенда" - то каким цветом отображается каждая организация
  • Фильтр можно скрыть специальной кнопкой
  • Отфильтровать данные можно по организации и заполненности
  • Сам календарь состоит из 3 вкладок:
    • день - мероприятий за день, распряжённых по столбцам-организациям
    • неделя целиков - колонками выступают дни, а для разделения мероприятий разных организаций применяется цветовая окраска
    • неделя по организациям - колонками также выступают дни, но у каждой колонки есть деление по организациям
  • При нажатии на карточку появляется всплывающее окно, где можно изучить информацию подробнее и перейти к изменению расписания мероприятия

Добавление мероприятия

  • Перейти на страницу добавления мероприятия можно со страницы календаря
  • Сама страница представляет собой форму

Добавление расписания

  • Попасть на страницу можно со страницы календаря
  • Необходимо выбрать мероприятие, периодичность и цену/кол-во билетов по категории
    • Если выбрано одиночное мероприятие, то пользователю нужно выбрать дату/время начала и конца мероприятия
    • Если выбрано периодическое мероприятие, то нужно проставить:
      • промежуток дат, в которые нужно создать расписания мероприятия (чтобы не было возможности купить билет на 2030 год)
      • время начала и конца
      • дни недели, в которые будет проходить мероприятие
  • Благодаря такой комплексной системе можно создавать слоты посещения мероприятия в разные дни недели с разными цена (например по будня одно расписание и цена, по выходным другое). Также можно делать исключения, например на праздники, в которые устанавливать совершенно отдельные расписания и цены.
  • После создания расписание в CRM появляется 'товар' формата "Название мероприятия + категория" (если до этого такой записи не было)

Изменение расписания

  • Попасть на страницу можно, нажав на интересующее нас расписание и кликнув на соответсвующую кнопку во всплывающем окне
  • На странице можно ознакомиться с информацией о мероприятии и перейти по ссылке на само мероприятие (где его можно удалить/изменить)
  • Также имеется кнопка удаления расписание
  • И список билетов, также с возможностью перехода на страницу удаления полного заказа

Покупка другому пользователю

  • Для покупки билетов другому пользователю вначале необходимо добавить товары в корзину (которая подчиняется тем же правилам, что и для обычного пользователя)
  • После перехода на страницу корзины сотруднику ТИЦ необходимо выбрать пользователя из выпадающего списка и нажать кнопку "Купить"
  • Покупка в системе прикрепится к выбранному пользователю, а данные билетов сразу отправятся на почту
  • В CRM запись сразу будет в статусе 'В работе'

Фильтрация пользователей

  • На странице "пользователи" можно увидеть список покупателей, а также приобретённые ими билеты
  • По данным из таблицы можно составить список рассылки

Отзывы

  • На странице "отзывы" можно увидеть список отзывов

Отметка посещения билетов

  • Ссылка qr кода билета ведёт на возможность отметки посещения
  • Нажав на кнопку статус билета меняется

Полезное

Команды

python3 manage.py dumpdata --exclude admin.logentry --exclude auth.permission --exclude contenttypes.contenttype --exclude sessions.session

python3 manage.py runsslserver 0.0.0.0:5432 --certificate fullchain.pem --key privkey.pem

Ссылки

Deploy

kolomna's People

Contributors

bossofcreeps avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.