geek.moscowдокументация

Репозитории и структура кода

Проект организован как репозиторий рабочего пространства и отдельные репозитории приложений. Публичной точкой входа выбран GitLab проекта; пять репозиториев приложений опубликованы в группе geek.moscow, адреса и ревизии перечислены на странице исходного кода. Клонирование workspace не загружает исходники приложений автоматически: они размещаются отдельными клонами в соответствующих каталогах.

Карта репозиториев

Каталог Репозиторий Назначение
Корень workspace Не опубликован в группе; содержание представлено этим сайтом docs/, infra/ (k3s/, scripts/, ff-ca/, docs-site/), правила работы, JOURNAL.md
backend/ https://gitlab.geek.moscow/geek.moscow/backend Монорепозиторий сервисов, Gateway и контрактов
frontend/ https://gitlab.geek.moscow/geek.moscow/frontend Монорепозиторий продуктового и административного интерфейсов
design-sys/ https://gitlab.geek.moscow/geek.moscow/design-sys Пакет @geek.moscow/design-sys, токены, компоненты, Storybook
ui-react-brandbook/ https://gitlab.geek.moscow/geek.moscow/ui-react-brandbook Сайт брендбука
fsp-mock/ https://gitlab.geek.moscow/geek.moscow/fsp-mock Эмулятор реестра ФСП и исследовательский интерфейс
cooming-soon/ Исторический каталог, не публикуется Страница ожидания, которой geek.moscow отвечал до запуска платформы
example/ Исторический каталог, не публикуется Пример сервиса, использованный как шаблон backend

Ссылки из обзора на файлы приложений разрешаются в полной рабочей области с этими клонами. В отдельном клоне только workspace соответствующих файлов может не быть.

Backend

Backend использует npm workspaces packages/* и services/*, TypeScript, NestJS на Fastify, gRPC через @grpc/grpc-js, PostgreSQL через pg, RabbitMQ через amqplib, Redis через ioredis, JWT через jose, метрики через prom-client, логи через pino, тесты jest.

backend/
├── contracts/
│   ├── proto/geek/<service>/v1/  protobuf-контракты сервисов
│   ├── events/schemas/          JSON-схемы событий
│   ├── catalog.json             каталог RPC и разрешённых маршрутов
│   └── compatibility/           база проверки несовместимых изменений
├── packages/
│   └── database, grpc-auth, messaging, platform-config,
│       proto, redis, shared, test-support
├── services/
│   └── gateway, identity, candidates, employers, opportunities,
│       recruitment, chat, notifications, backoffice
├── templates/microservice/      адаптированный снимок примера сервиса
├── infra/compose/               локальная инфраструктура
├── k3s/geek-api/                манифесты стенда
└── scripts/                    сборка, публикация и вспомогательные операции

В базовом контрактном срезе указаны 13 proto-файлов и 143 RPC, а также 33 JSON-схемы: оболочка, 16 предметных событий и payload удаления. Распределение RPC: Candidates 35, Recruitment 26, Employers 21, Opportunities 16, Identity 14, Chat 12, Backoffice 11, Notifications 8. Эти числа относятся к описанной версии; административные расширения следует сверять с актуальными контрактами.

Gateway — один код, развёрнутый в профилях public и admin. Поэтому каталог содержит девять приложений, но бизнес-сервисов восемь. Процессы workers, outbox и планировщиков не увеличивают число предметных сервисов.

Сервисная структура включает Dockerfile, конфигурацию Nest и модули предметной логики, RPC, workers, метрик и сообщений. Шаблон из example/microservice сопровождается ADAPTATION.md. Локальный Compose в описанном срезе включает PostgreSQL 16, RabbitMQ 3.13 с management, Redis 7.4 и MinIO.

Порядок реализации, владение файлами и интеграционные условия описаны в backend-prompts. Поведение сервисов задаётся контрактами, а не только устройством каталогов.

Frontend

Основной frontend использует React 18, Vite, Module Federation через @module-federation/vite, React Router 7, TanStack Query, MSW, vitest и Playwright. В описанном окружении используется Node 22. Дизайн-система устанавливается из npm-реестра проекта.

frontend/
├── apps/
│   ├── web-shell/             оболочка продуктового интерфейса
│   └── admin/                 отдельное административное приложение
├── modules/
│   └── public-account, backoffice
├── remotes/
│   └── candidates, employers, recruitment, messaging
├── packages/
│   └── contracts, platform, product-ui, mock-platform
├── tooling/                   запуск, порты, общие зависимости federation
├── docs/implementation/        решения, контракты модулей и покрытие экранов
└── tests/                     контракты, интеграционные и сквозные проверки

web-shell отвечает за оболочку и маршруты публичной, инженерной и корпоративной частей. Четыре подключаемых модуля загружаются через /mf/*; каждый имеет окружение для самостоятельной разработки. Общая политика фиксирует совместимые версии разделяемых зависимостей.

Admin UI собирается отдельно и обслуживается собственным хостом. Контракты работы frontend с backend находятся в frontend-api, материалы разработки на имитаторах — в frontend-mock. Наличие MSW и mock-пакетов для разработки не является доказательством использования имитаторов в конкретной опубликованной сборке.

Вспомогательные приложения

Приложение Стек и роль
design-sys/ TypeScript, tsup, Storybook, vitest; единый пакет интерфейсных компонентов
ui-react-brandbook/ React 19 и Vite; визуальные правила и живые примеры компонентов
fsp-mock/ NestJS 11, JSON в памяти, jest/supertest; отдельный explorer на React
cooming-soon/ React 18, Vite, образ Caddy; отсчёт до запуска по московскому времени и объяснение механики в три шага, без форм и вызовов API
example/microservice/ NestJS и Fastify; образец конфигурации, health-endpoints и метрик

React 18 в продукте и React 19 в брендбуке относятся к разным приложениям, а не к одной сборке. Версии библиотек фиксируются соответствующими манифестами и lock-файлами; обзор не заменяет их.

Документация и правила работы

Как эти границы использовать при передаче задач и параллельной работе нескольких команд, описано в разделе «Технологии и командная разработка». Там же разобраны контракт подключения frontend-модуля, согласование выпуска и роль наблюдаемости в сопровождении.

Workspace связывает требования, архитектуру, визуальные материалы и инфраструктуру. Главные точки входа — карта документации, продуктовые спецификации, журнал работ и правила репозитория.

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

Существенные изменения выполняются в отдельных ветках feat/… или fix/…; защищённая main обновляется через PR. Коммиты и отправка в удалённый репозиторий выполняются по запросу владельца. Секреты хранятся только в creds-store. Параллельные реализации при их организации используют отдельные git worktrees и явно разделённое владение файлами.

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


Архитектура · Все разделы · Административный контур

Обновлено 2026-10-10 Команда nubble · ЛЦТ-2026, трек ФСП Все разделы