Skip to content

Code which powers websites | Код который используется на сайтах https://смотрины.укр & https://смотрины.рус

License

Notifications You must be signed in to change notification settings

skivol/better-dating

Repository files navigation

English README

Хранилище кода для сайтов смотрины.укр и смотрины.рус

Саморазвитие, Свидания/Отношения, создание Семьи

Описание текущих функций сайта "Смотрины"

(дальнейшие планы разработки изложены в tasks.md)

Описание идеи / обратная связь

Предложение

  • сохранение прогресса заполнения формы в локальном хранилище с возможностью его очистить.

Подтверждение почты

  • а также возможность получить еще раз токен для подтверждения почты в случае просроченного предыдущего токена.
  • одновременно с подтверждением почты;
  • с помощью одноразового токена, отправляемого на почту;
  • с помощью профиля в социальных сетях Facebook и Вконтакте.

Окно Входа

Просмотреть / обновить / удалить / проанализировать собственный профиль

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

Пример анализа ИМТ:

Пример анализа ИМТ

Активировать второй этап

Меню профиля -> Перейти к следующему этапу (становится доступным при заполнении всей информации запрашиваемой на первом этапе). Меню Профиля

Диалог активации второго этапа:

Диалог Активации Второго Этапа Диалог Активации Второго Этапа 2

Алгоритм автоматизированного подбора пар (для цели "Поиск второй половинки")

  • пользователи имеют подтвержденные эл. почтовые адреса;
  • пользователи участвуют в автоматизированном подборе пар;
  • пользователи не находятся сейчас в активной паре;
  • участники разного пола;
  • из одной ИМТ категории;
  • возраст - участник мужского пола может быть в пределах 7 лет старше или на 2 года младше участницы женского пола;
  • рост - участник мужского пола может быть (в пределах) 25 см выше или 5 см ниже участницы женского пола;
  • намерения в связи с привычками связанными с никотином, алкоголем, просмотром порнографии и внесемейными интимными отношениями должны совпадать (т.е., пользователи могут обое не собираться ими заниматься в будущем либо заниматься в той или иной мере; в случае если участник не определился, то он/она могут составить пару с кем угодно по этому параметру);
  • единый тип внешности;
  • из одного и того же населенного пункта (для облегчения организации свидания, в начальной версии);
  • родной или один/несколько из родных языков должны совпадать;
  • обработка в порядке регистрации.

В коде эту логику можно увидеть в файле PairMatcherTask.kt и PairsRepository.kt.

Посмотреть сформированные пары / организованные свидания

С помощью пользовательского меню "Пары и Свидания" можно посмотреть соответствующую информацию.

Пары и Свидания

Что дальше ?

Посмотреть / проанализировать профиль участника с кем была сформирована пара

При формировании пары создаются одноразовые ссылки для просмотра профилей друг друга которые присылаются по почте. Также можно получить дополнительную ссылку выбрав пункт меню пары "Посмотреть профиль ...".

Меню Пары

Действия связанные со свиданием

  • Я на месте - пункт для того чтобы отметиться о прибытии на свидание;
  • Подтвердить свидание - предоставляет возможность ввести код подтверждения свидания полученный другим пользователем;
  • Оценить профиль - оценка правдивости, предложения по улучшению профиля / а также посмотреть соответствующую оценку своего профиля;
  • Не получается прийти - действия на случай невозможности прибытия на свидание.

Меню Свидания

Решение по паре

Добавить Решение по паре можно с помощью соответствующего пункта меню пары, при наличии как минимум одного проверенного свидания.

Диалог Решения

Добавление / подтверждение / просмотр места встречи

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

Статус свидания где нужно предложить место встречи

Добавление места встречи

Просмотр событий

Есть также возможность посмотреть события (пункт в пользовательском меню) связанные с профилем, например, его просмотры другими пользователями.

Пользовательское Меню

Посмотреть / проанализировать профиль автора системы

Страница администратора

  • статистика по общему количеству зарегистрированных профилей, а также их удалений;
  • возможность отправить тестовое письмо;
  • возможность проверить геолокацию.

Выход из учетной записи

Нефункциональные требования

  • Шифрование при передаче (https) и хранении данных (Windows BitLocker, Linux Luks);
  • SEO (Sitemap.xml, мета тэги);
  • SSR (стили, иконки, серверная навигация);
  • Поддержка офлайн работы.

Технологии

Использованные технологии упоминаются на странице благодарности, языки программирования в секции "Languages" на текущей странице.

Разработка

  • Docker
  • Postgres - bd-database-docker-build, bd-db-run в dev-aliases.sh;
  • Redis - bd-cache-docker-build, bd-cache-run;
  • Браузерное приложение - bd-ui-server;
  • Нужно создать .env-dev в корне проекта из .template-env и заполните значения переменных;
  • Добавьте .db-password и .mail-password;
  • Скачайте skivol/spring-fu и запустите spring-fu-publish-to-local;
  • Серверное приложение - bd-backend-server (эта команда запускает сервер без интеграции с почтовым сервисом, вместо этого письма будут выводиться в консоль);
  • Приложение должно быть доступно по ссылке http://localhost:3000/.

Помощь

Помощь приветствуется в форме:

  • предложений по улучшению функций сайта и информации изложенной на нём;
  • распространения и использования информации присутствующей на сайте, желательно с упоминанием источника;
  • прочих действий способствующих благотворному развитию идей и целей обозначенных на сайте.