{"id":30188601,"url":"https://github.com/breadrock1/architecture-propdevelopment","last_synced_at":"2026-02-11T14:32:34.493Z","repository":{"id":305750583,"uuid":"1016902484","full_name":"breadrock1/architecture-propdevelopment","owner":"breadrock1","description":null,"archived":false,"fork":false,"pushed_at":"2025-07-21T19:18:28.000Z","size":422,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-08-12T17:12:17.932Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/breadrock1.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-09T17:48:52.000Z","updated_at":"2025-07-21T19:18:32.000Z","dependencies_parsed_at":"2025-07-21T21:40:42.777Z","dependency_job_id":null,"html_url":"https://github.com/breadrock1/architecture-propdevelopment","commit_stats":null,"previous_names":["breadrock1/architecture-propdevelopment"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/breadrock1/architecture-propdevelopment","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/breadrock1%2Farchitecture-propdevelopment","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/breadrock1%2Farchitecture-propdevelopment/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/breadrock1%2Farchitecture-propdevelopment/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/breadrock1%2Farchitecture-propdevelopment/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/breadrock1","download_url":"https://codeload.github.com/breadrock1/architecture-propdevelopment/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/breadrock1%2Farchitecture-propdevelopment/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29335228,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-11T14:07:45.431Z","status":"ssl_error","status_checked_at":"2026-02-11T14:07:45.080Z","response_time":97,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-08-12T17:08:10.071Z","updated_at":"2026-02-11T14:32:34.488Z","avatar_url":"https://github.com/breadrock1.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# architecture-propdevelopment\n\n## Сдача проектной работы 5 спринта\n\nВ этот раз вы будете работать над кейсом компании PropDevelopment.\n\n#### О компании\n\nPropDevelopment — это крупная строительная компания. Она входит в топ-3  застройщиков в стране и продолжает активно развиваться.\n\nPropDevelopment предоставляет клиентам услуги, которые связаны с покупкой недвижимости и обслуживанием жилых комплексов. \nВ основном компания работает с частными клиентами. Их можно разделить на две категории:\n - Потенциальные покупатели жилья. Их мы будем называть «клиенты».\n - Собственники, которые приобрели жильё у компании. Их так и будем называть — «собственники».\n\nКлиентам компания предлагает такие IT-продукты:\n - Онлайн-витрина для подбора и бронирования недвижимости из фонда PropDevelopment.\n - Онлайн-тур — приложение, которое позволяет клиентам осмотреть жильё без посещения объекта недвижимости.\n - Онлайн-сделка — приложение, которое позволяет проводить сделки по покупке недвижимости онлайн.\n\nДля собственников компания разработала мобильное приложение, которое упрощает взаимодействия с управляющей компанией. \nВ приложении можно:\n - Оплачивать услуги ЖКХ.\n - Получать информацию от управляющей компании.\n - Следить за текущим и капитальным ремонтом. Собственники могут просматривать актуальные данные о запланированных работах и изучать историю проведённых работ.\n - Управлять «Умным домом». Например, можно управлять автоматикой в жилом помещении и на этажах, а ещё контролировать устройство, которое запирает квартиру.\n\n### 1. Текущее состояние архитектуры\n\nУ компании доменная структура. Каждый домен отвечает за часть бизнеса и состоит из ряда продуктовых команд.\nВсего в PropDevelopment четыре домена:\n- Группа сервисов для продаж. Сюда входит пять приложений: витрина продаж, client-tour-app (приложение для онлайн-тура), client-mart-app (приложение для онлайн-сделки), client-crm-app (система для управления клиентскими данными) и client-mart-estate-app (приложение для управления данными о недвижимости). У всех приложений, кроме витрины, есть собственная база данных.\n- Группа сервисов ЖКУ. Они отвечают за предоставление услуг собственникам. Сюда входит витрина, tenant-core-app (сервис для предоставления услуг) и его БД, а также CRM, которая управляет данными о собственниках, и её БД.\n- Финансы. В этот домен входит система финансового учёта — accountant-service-1, а также её БД и служба каталогов.\n- Дата — группа сервисов, которые отвечают за обработку данных. Сюда входит хранилище, BI и отчётность.\n\nТак выглядит диаграмма контейнеров компании в модели C4:\n\n![Image.png](docs/Image.png)\n\nГруппа сервисов для клиентов — самая сложная. Здесь такая логика взаимодействия с пользователем:\n - Монолитное приложение позволяет частным клиентам осуществлять подбор и бронирование недвижимости.\n - Каждое бронирование недвижимости может сопровождаться осмотром. Это может быть оффлайн посещение или онлайн-тур. Результаты осмотра фиксируются в IT-системах. При бронировании клиент указывает контактные данные — ФИО, телефон и электронную почту. Ещё он может заполнить расширенную форму. Данные из расширенной формы далее используются при проведении онлайн-сделки.\n - По результатам бронирования клиент может принять решение о покупке квартиры. Для этого реализована функциональность онлайн-сделки. Это сложный технический и юридический процесс, который клиент может провести через IT-системы PropDevelopment. Для этого компания реализовала интеграцию с госорганами, которые отвечают за определённые этапы.\n\n### 2. Инфраструктура\n\nБольшинство IT-продуктов развёрнуты на собственных серверах. Часть продуктов развёрнуты в гибриде. Для временного расширения \nмощностей на этапах доработки и тестирования команды могут использовать облачные ресурсы и управляемые сервисы.\n\nСервисы компании развёрнуты в приватном облаке, имеется собственный ЦОД и используются мощности, арендованные у облачного провайдера.\nДля всех баз данных выполняется резервное копирование данных на глубину, которая необходима для восстановления данных.\nДоступ в систему для внешних пользователей (клиентов и собственников) осуществляется через межсетевой экран (firewall).\n\n\n### 3. Структура команд\n\nПродуктовая команда состоит из двух команд: функциональной и операционной.\n\nФункциональная команда отвечает за разработку, развитие и поддержку IT-продуктов. Каждая функциональная команда состоит из:\n - владельца продукта,\n - бизнес-аналитиков,\n - разработчиков,\n - инженеров по эксплуатации.\n - DevOps-инженера.\n\n**Операционная команда** — использует IT-продукты, разработанные продуктовой командой, в операционной деятельности компании. \nОперационная команда состоит из менеджеров. Они обеспечивают эффективное использование и развитие продуктов.\n\nСпециалист по ИБ один на всю компанию. Недавно были изменения в составе руководителей IT-команд, из-за чего нарушился \nпроцесс передачи информации между командами. В какой-то момент стало понятно, что специалисту по ИБ передают не все \nрешения и изменения. \n\n### 4. Проблемы и потребности бизнеса\n\nГлобально у компании две проблемы.\n\n**Нарушен контроль данных.** \nЕсть несколько точек регистрации нового клиента, координации между этими точками нет. Внутренние потоки данных между \nIT-продуктами контролируются не системно. Ограничения по передаваемым данным в основном обусловлены бизнес-процессами \nмежду взаимодействующими IT-продуктами. Со стороны систем обработки данных нет ограничений на доступ к данным.\n\n**Есть проблемы с API партнёров.** \nПартнёры — это системы управляющих компаний, которые позволяют собственникам оплачивать ЖКУ и следить за информацией о \nдоме. Системы PropDevelopment используют API управляющих компаний без единых политик по безопасности и без системного \nконтроля за передаваемыми данными. В ходе интеграций команды разработки не раз замечали, что:\n - Контракты API содержат категории данных, которые явно предоставляют персональные данные.\n - Некоторые контракты позволяют внешним пользователям выполнять действия и получать данные, к которым у них не должно быть доступа. Например, партнёр из одной управляющей компании может увидеть или изменить данные клиентов и жилищных комплексов, которые относятся к другой компании.\n\nПри этом компания собирается активно развивать сервисы для покупателей и жильцов. В том числе — за счёт партнёрских сервисов.\nВ итоге PropDevelopment собирается провести комплексный аудит безопасности. Сейчас компания готовится к этому мероприятию. \nАудит безопасности поможет решить описанные проблемы и закрыть потребности бизнеса:\n - **Повысить уровень удовлетворённости клиентов.** Компания столкнулась с жалобами клиентов: они видят в приложении ошибки, когда заходят в личный кабинет. Там иногда могут отображаться данные другого клиента — например, другое Ф. И. О. Аудит безопасности позволит найти источник проблемы и устранить её.\n - **Компания не может расширять направление обработки данных.** Компания активно накапливает данные, которые можно «заставить работать», — извлечь из данных знания и реализовать новые сервисы. PropDevelopment планирует реализовать новые сервисы на базе BI-, ML- и AI-технологий. Сейчас проблема управления и хранения потоков данных блокирует реализацию новых продуктов, основанных на данных.\n - **Отреагировать на инциденты и рыночные изменения.** Недавно у конкурента произошла утечка данных, которая активно обсуждалась в СМИ. Руководство PropDevelopment обеспокоено. Аудит безопасности должен помочь компании предотвратить подобные инциденты.\n - **Проверить соответствие требованиям законодательства.** IT-ландшафт PropDevelopment активно развивался: появлялись новые интеграции с поставщиками услуг для продажи недвижимости и новые услуги для жильцов. Сейчас нет уверенности в том, что все текущие бизнес-процессы компании соответствуют законодательным нормам. Аудит позволит проверить, выполняет ли компания требования законодательства РФ, и предотвратить возможные штрафы.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbreadrock1%2Farchitecture-propdevelopment","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbreadrock1%2Farchitecture-propdevelopment","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbreadrock1%2Farchitecture-propdevelopment/lists"}