diff --git a/README.md b/README.md index 5fc4534..1b44fb8 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,33 @@ -# buhapp-docs +# BuhApp Docs -ТЗ, юр. доки, спецификации \ No newline at end of file +Документация проекта BuhApp — приложение для поиска компании. + +## Структура + +``` +buhapp-docs/ +├── README.md — этот файл +├── TZ.md — техническое задание +└── legal/ — юридические документы + ├── TERMS.md — Пользовательское соглашение + ├── PRIVACY.md — Политика конфиденциальности (152-ФЗ) + └── DISCLAIMER.md — Отказ от ответственности +``` + +## Репозитории проекта + +- **buhapp-docs** — документация (этот репо) +- **buhapp-backend** — Go backend (Fiber + PostgreSQL + Redis + MinIO) +- **buhapp-mobile** — React Native приложение +- **buhapp-infra** — Docker Compose, nginx, скрипты развёртывания + +## Инфраструктура + +- Git: https://git.buhapp.mygoodservice.ru +- Приложение: https://buhapp.mygoodservice.ru (в разработке) +- API: https://api.buhapp.mygoodservice.ru (в разработке) + +## Контакты + +- Владелец: Гордеев А.С. +- Email: admin@buhapp.mygoodservice.ru diff --git a/TZ.md b/TZ.md new file mode 100644 index 0000000..de6b621 --- /dev/null +++ b/TZ.md @@ -0,0 +1,146 @@ +# buhapp — мобильное приложение для поиска собуседника/компании для совместного досуга + +## 1. Назначение + +Мобильное приложение для поиска совершеннолетних пользователей, желающих познакомиться и провести время вместе (в компании, за баром, на прогулке, в путешествии и т.п.) с использованием GPS-геолокации. + +## 2. Целевая аудитория + +- Совершеннолетние (18+) пользователи +- Гео: Россия, СНГ (старт — РФ) +- Язык интерфейса: русский (старт) + +## 3. Основные функции (MVP) + +### 3.1. Регистрация и онбординг +- Регистрация по email/телефону (OTP) +- Заполнение анкеты: имя, возраст, пол, город +- Предпочтения: что пьёт, чем любит заниматься +- **Обязательное согласие** с: + - Пользовательским соглашением + - Политикой конфиденциальности + - Отказом от ответственности + - Подтверждением совершеннолетия (18+) +- Без согласия регистрация невозможна + +### 3.2. Геолокация и поиск (главный экран) +- Запрос разрешения на использование геолокации +- Отображение пользователей на карте в радиусе N км +- Фильтры: возраст, пол, что пьёт, что делает +- **Скрытие точного местоположения** (±300 м) +- Точка исчезает через 1 час неактивности +- Возможность скрыть свою точку с карты + +### 3.3. Профиль +- Фото (опционально) +- О себе (краткое bio) +- Язык общения +- Цели (пообщаться, выпить, погулять, поужинать и т.п.) + +### 3.4. Чат +- Текстовые сообщения +- Отправка фото +- Удаление/редактирование сообщений +- Блокировка пользователя +- Жалоба на пользователя + +### 3.5. Отзывы и рейтинги +- После первого сообщения / встречи +- Оценка 1–5 звёзд +- Текстовый отзыв +- Виден в профиле пользователя + +### 3.6. Верификация (опционально, MVP — без обязательности) +- Привязка соцсетей (VK, Telegram, OK) +- В будущем: паспорт + selfie (ручная модерация) + +### 3.7. Безопасность +- Кнопка SOS (отправляет контакту/модератору) +- Журнал действий (audit_log) +- Блокировка пользователей +- Жалобы → модерация + +## 4. Технический стек + +### Backend +- **Go 1.22+**, фреймворк **Fiber** +- **PostgreSQL 16** — основная БД +- **Redis 7** — кэш, сессии, rate limiting +- **MinIO** — хранение фото +- **WebSocket** — чат в реальном времени +- **JWT** — авторизация +- **golang-migrate** — миграции БД + +### Frontend (Mobile) +- **React Native** (iOS + Android) +- **react-native-maps** — карты (Apple/Google) +- **TypeScript** +- **React Navigation** +- **Zustand** — state +- **React Query** — данные + +### Инфраструктура +- **Docker Compose** на сервере 77.106.71.9 +- **Nginx** — reverse proxy + SSL (Let's Encrypt) +- **Gitea** — локальный Git (https://git.buhapp.mygoodservice.ru) +- Домены: + - `buhapp.mygoodservice.ru` — основное приложение + - `api.buhapp.mygoodservice.ru` — backend API + - `git.buhapp.mygoodservice.ru` — Git + - `files.buhapp.mygoodservice.ru` — MinIO/S3 + +## 5. Структура БД (предварительная) + +``` +users (id uuid pk, email, phone, name, birthdate, gender, city, bio, photo_url, ...) +user_preferences (user_id fk, drinks text[], activities text[], ...) +user_locations (user_id pk, lat, lng, visible, updated_at) +consent_log (id, user_id, doc_type, doc_version, ip, user_agent, accepted_at) +audit_log (id, user_id, action, target_type, target_id, metadata, ip, created_at) +chats, messages, reviews, blocks, reports... +``` + +## 6. API эндпоинты (основные) + +``` +POST /api/v1/auth/register -- регистрация + согласия +POST /api/v1/auth/login -- вход (OTP) +POST /api/v1/auth/refresh -- обновить JWT + +GET /api/v1/me -- свой профиль +PUT /api/v1/me -- обновить профиль +PUT /api/v1/me/location -- обновить GPS +PUT /api/v1/me/visibility -- скрыть/показать на карте + +GET /api/v1/search/nearby -- поиск рядом +GET /api/v1/users/:id -- посмотреть профиль +POST /api/v1/users/:id/block -- заблокировать +POST /api/v1/users/:id/report -- пожаловаться + +GET /api/v1/chats -- список чатов +POST /api/v1/chats -- создать чат +GET /api/v1/chats/:id/messages -- сообщения +POST /api/v1/chats/:id/messages -- отправить + +POST /api/v1/reviews -- оставить отзыв +GET /api/v1/users/:id/reviews -- отзывы о пользователе + +POST /api/v1/sos -- кнопка SOS +``` + +## 7. Этапы разработки + +1. **Sprint 0** — Юр. документы, ТЗ (этот документ) +2. **Sprint 1** — Каркас backend (auth + register + согласия) +3. **Sprint 2** — Профиль и анкета +4. **Sprint 3** — Геолокация и поиск на карте +5. **Sprint 4** — Чат (WebSocket) +6. **Sprint 5** — Отзывы +7. **Sprint 6** — Mobile (RN) с картой как главный экран +8. **Sprint 7** — Безопасность (SOS, жалобы) +9. **Sprint 8** — Подписка / монетизация +10. **Sprint 9** — Тест, деплой в прод + +## 8. Версия документа + +- v0.1 — 2026-08-20 — начальная версия diff --git a/legal/DISCLAIMER.md b/legal/DISCLAIMER.md new file mode 100644 index 0000000..70dc4c8 --- /dev/null +++ b/legal/DISCLAIMER.md @@ -0,0 +1,156 @@ +# Отказ от ответственности (Disclaimer) + +Версия: 1.0 от 20.08.2026 + +## 1. Назначение документа + +Настоящий документ устанавливает пределы ответственности Администрации Сервиса BuhApp (далее — «Сервис», «Администрация») и определяет риски, которые Пользователь принимает на себя при использовании Сервиса. + +## 2. Встречи в реальной жизни + +### 2.1. Организация встреч + +Пользователи самостоятельно принимают решение о личных встречах с другими Пользователями Сервиса. Сервис является исключительно площадкой для первичного знакомства и **не организует**, **не контролирует** и **не несёт ответственности** за встречи, происходящие вне Сервиса. + +### 2.2. Безопасность встреч + +Администрация **настоятельно рекомендует**: +- встречаться в общественных местах +- сообщать близким о месте и времени встречи +- не передавать денежные средства незнакомым лицам +- не оставлять личные вещи без присмотра +- не употреблять алкоголь в компании незнакомых людей +- прекратить встречу при возникновении угрозы + +### 2.3. Ответственность Пользователя + +Пользователь **самостоятельно несёт полную ответственность** за: +- выбор места и времени встречи +- свою безопасность во время встречи +- свои действия и поведение +- употребление/неупотребление алкогольных напитков +- управление транспортным средством в нетрезвом состоянии (ЗАПРЕЩЕНО) +- материальный, физический и моральный ущерб, причинённый другим Пользователям или третьим лицам + +## 3. Употребление алкоголя + +### 3.1. Ограничения по возрасту + +Употребление алкогольных напитков в Российской Федерации разрешено **только лицам старше 18 лет**. Пользователь обязан соблюдать данное ограничение. + +### 3.2. Ответственность + +Администрация **не несёт ответственности** за: +- нарушение Пользователем возрастных ограничений +- чрезмерное употребление алкоголя +- управление транспортным средством в состоянии опьянения +- противоправные действия в состоянии опьянения + +### 3.3. Запрет пропаганды + +Сервис **категорически не поощряет**: +- принуждение к употреблению алкоголя +- пропаганду чрезмерного употребления +- употребление алкоголя несовершеннолетними +- распитие алкоголя в запрещённых местах +- вождение в нетрезвом состоянии + +## 4. Достоверность информации + +### 4.1. Данные Пользователей + +Сервис **не гарантирует** достоверность информации, предоставленной другими Пользователями (имя, возраст, фото, цель знакомства и т.п.). + +### 4.2. Верификация + +На начальном этапе (MVP) верификация Пользователей не является обязательной. Администрация не несёт ответственности за ложную информацию в профилях. + +### 4.3. Будущая верификация + +В будущем планируется ввести обязательную верификацию паспорта и selfie для повышения безопасности. До введения обязательной верификации Пользователи должны проявлять повышенную осторожность. + +## 5. Безопасность Пользователей + +### 5.1. Модерация + +Администрация применяет разумные меры для выявления и блокировки Пользователей, нарушающих Соглашение. Однако Администрация **не гарантирует**: +- отсутствие мошенников +- отсутствие неадекватных Пользователей +- полную проверку всех профилей +- немедленное реагирование на жалобы + +### 5.2. Действия Пользователя + +При обнаружении подозрительного поведения Пользователь обязан: +- прекратить общение +- заблокировать Пользователя +- подать жалобу через приложение +- при угрозе жизни — обратиться в полицию (112) + +### 5.3. Кнопка SOS + +Сервис предоставляет кнопку SOS для экстренных ситуаций. Однако Администрация **не гарантирует**: +- немедленное реагирование служб +- доступность кнопки SOS в любой ситуации +- работу Сервиса в зоне без связи + +## 6. Медицинские риски + +6.1. Сервис **не несёт ответственности** за: +- аллергические реакции на продукты/напитки +- ухудшение здоровья после встречи +- инфекционные заболевания +- травмы, полученные во время встречи + +6.2. Пользователи самостоятельно оценивают риски для своего здоровья. + +## 7. Финансовые риски + +7.1. Сервис **не несёт ответственности** за: +- мошенничество со стороны других Пользователей +- утрату денежных средств +- неоплаченные счета в заведениях +- долговые обязательства + +7.2. Пользователям **запрещено**: +- давать/брать деньги в долг у других Пользователей +- передавать банковские карты +- сообщать PIN-коды и пароли + +## 8. Ограничение ответственности Администрации + +8.1. В максимально допустимой законом степени Администрация **не несёт ответственности** за: +- прямой, косвенный, случайный, специальный ущерб +- упущенную выгоду +- моральный вред +- ущерб репутации + +8.2. Совокупная ответственность Администрации ограничена суммой, фактически уплаченной Пользователем за использование Сервиса (для платных функций). + +## 9. Освобождение от ответственности + +9.1. Используя Сервис, Пользователь **подтверждает и соглашается**, что: +- осознаёт все риски использования Сервиса +- освобождает Администрацию от ответственности за действия других Пользователей +- принимает на себя ответственность за свою безопасность +- не будет предъявлять претензий к Администрации в связи с действиями других Пользователей + +## 10. Изменения документа + +10.1. Администрация вправе изменять настоящий документ. + +10.2. Продолжение использования Сервиса означает согласие с изменениями. + +## 11. Контакты + +Гордеев А.С. +Email: admin@buhapp.mygoodservice.ru +Домен: https://buhapp.mygoodservice.ru + +--- + +**Регистрируясь в Сервисе, Пользователь подтверждает, что:** +1. Ознакомился с настоящим Отказом от ответственности +2. Понимает все риски использования Сервиса +3. Принимает на себя ответственность за свою безопасность +4. Освобождает Администрацию от ответственности за действия других Пользователей diff --git a/legal/PRIVACY.md b/legal/PRIVACY.md new file mode 100644 index 0000000..74c9176 --- /dev/null +++ b/legal/PRIVACY.md @@ -0,0 +1,122 @@ +# Политика конфиденциальности BuhApp + +Версия: 1.0 от 20.08.2026 + +## 1. Общие положения + +1.1. Настоящая Политика конфиденциальности (далее — «Политика») определяет порядок обработки и защиты персональных данных Пользователей Сервиса BuhApp (далее — «Сервис»). + +1.2. Оператор персональных данных: Гордеев А.С. (далее — «Оператор»). + +1.3. Использование Сервиса означает согласие Пользователя с настоящей Политикой. + +## 2. Состав обрабатываемых данных + +### 2.1. Данные, предоставляемые Пользователем: +- email +- номер телефона +- имя (псевдоним) +- дата рождения +- пол +- город проживания +- текстовое описание профиля (bio) +- фотографии + +### 2.2. Автоматически собираемые данные: +- IP-адрес +- тип и версия браузера/приложения +- операционная система +- данные cookies +- действия Пользователя в Сервисе (audit log) +- геолокация (с согласия Пользователя) +- push-токен (для уведомлений) + +### 2.3. Данные, получаемые от третьих лиц: +- Профиль из социальных сетей (при верификации, в будущем) + +## 3. Цели обработки + +Оператор обрабатывает персональные данные Пользователей для следующих целей: +- регистрация и идентификация Пользователя +- предоставление функциональности Сервиса +- отображение Пользователя на карте другим Пользователям +- обеспечение связи между Пользователями (чат) +- обеспечение безопасности (предотвращение мошенничества) +- уведомления Пользователя +- модерация контента +- сбор отзывов +- выполнение требований законодательства РФ + +## 4. Правовые основания + +4.1. Обработка осуществляется на основании: +- Федерального закона № 152-ФЗ «О персональных данных» +- Согласия Пользователя на обработку персональных данных +- Пользовательского соглашения Сервиса + +## 5. Сроки обработки и хранения + +5.1. Персональные данные обрабатываются с момента регистрации и до удаления аккаунта Пользователем. + +5.2. После удаления аккаунта персональные данные удаляются в течение 30 дней, за исключением данных, которые Оператор обязан хранить по закону. + +5.3. Данные геолокации хранятся в течение 1 часа после последнего обновления, затем автоматически удаляются. + +5.4. Журнал действий (audit log) хранится в течение 1 года. + +## 6. Передача третьим лицам + +6.1. Оператор не передаёт персональные данные третьим лицам, кроме случаев: +- передача другим Пользователям Сервиса (имя, фото, bio, приблизительное местоположение) +- по требованию государственных органов в случаях, предусмотренных законом +- при использовании сторонних сервисов (хостинг, аналитика) с соблюдением конфиденциальности + +6.2. Оператор не продаёт персональные данные Пользователей. + +## 7. Защита данных + +7.1. Оператор принимает следующие меры для защиты персональных данных: +- шифрование данных при передаче (TLS/SSL) +- хеширование паролей (bcrypt) +- ограничение доступа к данным по принципу минимальных привилегий +- регулярное обновление программного обеспечения +- резервное копирование данных +- мониторинг инцидентов безопасности + +7.2. Хранение персональных данных осуществляется на территории Российской Федерации. + +## 8. Права Пользователя + +Пользователь имеет право: +- получить информацию об обработке своих персональных данных +- уточнить свои персональные данные +- потребовать удаления своих персональных данных +- отозвать согласие на обработку +- обжаловать действия Оператора в Роскомнадзоре + +Для реализации прав Пользователь может обратиться по адресу: admin@buhapp.mygoodservice.ru + +## 9. Cookies и аналитика + +9.1. Сервис использует cookies для обеспечения работоспособности. + +9.2. Сервис может использовать анонимную аналитику для улучшения качества обслуживания. + +## 10. Изменения Политики + +10.1. Оператор вправе изменять настоящую Политику. + +10.2. О существенных изменениях Пользователи будут уведомлены. + +## 11. Реквизиты + +Гордеев А.С. +Email: admin@buhapp.mygoodservice.ru +Домен: https://buhapp.mygoodservice.ru + +--- + +**Регистрируясь в Сервисе, Пользователь подтверждает, что:** +1. Ознакомился с настоящей Политикой конфиденциальности +2. Согласен на обработку своих персональных данных в указанных целях +3. Понимает свои права как субъекта персональных данных diff --git a/legal/TERMS.md b/legal/TERMS.md new file mode 100644 index 0000000..774bd55 --- /dev/null +++ b/legal/TERMS.md @@ -0,0 +1,157 @@ +# Пользовательское соглашение BuhApp + +Версия: 1.0 от 20.08.2026 + +## 1. Общие положения + +1.1. Настоящее Пользовательское соглашение (далее — «Соглашение») регулирует отношения между Пользователем и Сервисом BuhApp (далее — «Сервис», «Приложение»), владельцем которого является Гордеев А.С. (далее — «Администрация»). + +1.2. Использование Сервиса означает безусловное согласие Пользователя с настоящим Соглашением. + +1.3. Сервис предназначен исключительно для совершеннолетних (18+) пользователей. + +## 2. Описание Сервиса + +2.1. BuhApp — мобильное приложение для поиска совершеннолетних пользователей, желающих познакомиться и провести время вместе (в компании, за баром, на прогулке и т.п.) с использованием GPS-геолокации. + +2.2. Сервис **не является**: +- сайтом знакомств в классическом понимании +- службой эскорт-услуг +- сервисом интимных услуг +- организатором мероприятий +- продавцом алкогольной продукции + +2.3. Администрация **не несёт ответственности** за: +- действия Пользователей в реальной жизни +- встречи, организованные Пользователями самостоятельно +- употребление алкогольных напитков +- материальный, физический или моральный ущерб, причинённый Пользователями друг другу или третьим лицам +- достоверность информации, предоставленной Пользователями + +## 3. Регистрация и аккаунт + +3.1. Для использования Сервиса Пользователь обязан пройти регистрацию. + +3.2. При регистрации Пользователь обязан подтвердить: +- своё совершеннолетие (18+) +- согласие с Пользовательским соглашением +- согласие с Политикой конфиденциальности +- согласие с Отказом от ответственности + +3.3. Пользователь несёт полную ответственность за достоверность предоставленных данных. + +3.4. Один Пользователь может иметь только один аккаунт. Создание множественных аккаунтов запрещено. + +3.5. Передача аккаунта третьим лицам запрещена. + +## 4. Использование Сервиса + +4.1. Пользователь обязуется: +- использовать Сервис добросовестно +- не размещать заведомо ложную информацию +- не оскорблять, не угрожать другим Пользователям +- не размещать контент порнографического, экстремистского, насильственного характера +- не использовать Сервис для спама, мошенничества, вымогательства +- не разглашать персональные данные других Пользователей +- соблюдать законодательство Российской Федерации + +4.2. Запрещено: +- регистрация от имени другого лица +- использование чужих фотографий +- принуждение к встречам +- вымогательство денежных средств +- распространение наркотиков, психотропных веществ +- предложение интимных услуг за вознаграждение + +## 5. Геолокация и приватность + +5.1. Сервис использует GPS-геолокацию Пользователя для отображения его на карте другим Пользователям. + +5.2. Точное местоположение Пользователя **не раскрывается** другим Пользователям. На карте отображается приблизительная позиция (±300 м). + +5.3. Пользователь может в любой момент скрыть своё местоположение в настройках. + +5.4. Данные геолокации хранятся в течение 1 часа после последнего обновления, затем удаляются. + +## 6. Контент Пользователя + +6.1. Пользователь сохраняет авторские права на размещённый контент. + +6.2. Размещая контент, Пользователь предоставляет Администрации неисключительную лицензию на его использование в рамках Сервиса. + +6.3. Администрация вправе удалить контент, нарушающий настоящее Соглашение или законодательство. + +## 7. Блокировка и удаление аккаунта + +7.1. Администрация вправе заблокировать или удалить аккаунт Пользователя в случае: +- нарушения настоящего Соглашения +- получения обоснованных жалоб от других Пользователей +- подозрения в мошенничестве +- нарушения законодательства РФ + +7.2. Пользователь вправе удалить свой аккаунт в любой момент через настройки приложения. + +## 8. Ограничение ответственности + +8.1. Сервис предоставляется «как есть» (as is). + +8.2. Администрация не гарантирует: +- бесперебойную работу Сервиса +- совместимость с конкретным устройством +- достижение Пользователем каких-либо результатов + +8.3. Администрация не несёт ответственности за: +- встречи Пользователей в реальной жизни +- действия Пользователей вне Сервиса +- ущерб, причинённый Пользователями друг другу +- утрату данных по техническим причинам +- действия третьих лиц (хакеров, мошенников) + +## 9. Возрастные ограничения + +9.1. Сервис предназначен **только для лиц старше 18 лет**. + +9.2. Регистрация Пользователей младше 18 лет строго запрещена. + +9.3. В будущем планируется ввести обязательную верификацию паспорта для исключения несовершеннолетних Пользователей. + +## 10. Алкоголь + +10.1. Сервис предоставляет возможность Пользователям указывать свои предпочтения относительно употребления алкогольных напитков. + +10.2. Сервис **не продаёт** и **не рекламирует** алкогольные напитки. + +10.3. Сервис **не организует** встречи с целью употребления алкоголя. + +10.4. Пользователи самостоятельно несут ответственность за: +- соблюдение возрастных ограничений при употреблении алкоголя +- соблюдение законодательства об обороте алкогольной продукции +- своё состояние и поведение после употребления алкоголя + +10.5. **Администрация категорически не поощряет чрезмерное употребление алкоголя и вождение в нетрезвом состоянии.** + +## 11. Споры и разрешение конфликтов + +11.1. Все споры разрешаются путём переговоров. + +11.2. При недостижении согласия спор разрешается в соответствии с законодательством Российской Федерации. + +## 12. Изменения Соглашения + +12.1. Администрация вправе изменять настоящее Соглашение с уведомлением Пользователей. + +12.2. Продолжение использования Сервиса после изменений означает согласие с новой редакцией. + +## 13. Реквизиты + +Гордеев А.С. +Email: admin@buhapp.mygoodservice.ru +Домен: https://buhapp.mygoodservice.ru + +--- + +**Регистрируясь в Сервисе, Пользователь подтверждает, что:** +1. Ему исполнилось 18 лет +2. Он ознакомился с настоящим Соглашением +3. Он согласен с условиями использования Сервиса +4. Он понимает, что Администрация не несёт ответственности за действия Пользователей