# АС «Платформа ОПОРА РОССИИ» Автоматизированная система для общероссийской общественной организации МСП «ОПОРА РОССИИ»: мессенджер-бот, mobile-first веб-приложение и единое API. ## Стек - **Backend:** Python 3.12, FastAPI, SQLAlchemy 2, Alembic - **БД:** PostgreSQL 16 - **Кэш/очередь:** Redis, Celery - **Бот:** aiogram 3 (Telegram) + адаптер MAX - **Frontend:** React, TypeScript, Vite, Tailwind CSS, Recharts - **Файлы:** MinIO (S3-совместимое) - **Инфра:** Docker Compose, Nginx, Let's Encrypt - **AI-ассистент:** OpenRouter (`deepseek/deepseek-chat`) ## Структура ``` backend/ FastAPI-приложение, модели, миграции frontend/ React SPA (mobile-first, PWA) bot/ aiogram-бот deploy/ nginx.conf, сертификаты docs/ документация проекта tech-design/ модель данных, API, макеты design/ дизайн-система tools/ вспомогательные скрипты (тест LLM) docker-compose.yml .gitlab-ci.yml ``` ## Быстрый старт (локально) ```bash cp .env.example .env # заполнить .env (пароли, токены) docker compose up -d --build ``` - API: http://localhost/api/docs - Сайт: http://localhost/ - MinIO Console: http://localhost:9001 ## Миграции БД ```bash docker compose exec api alembic revision --autogenerate -m "init" docker compose exec api alembic upgrade head ``` ## Разработка ```bash # backend cd backend && pip install -r requirements.txt uvicorn app.main:app --reload # frontend cd frontend && npm install && npm run dev ``` ## Документация - `docs/stack.md` — стек и архитектура - `docs/tech-design/01-data-model.md` — модель данных - `docs/tech-design/02-api.md` — контракты API - `docs/tech-design/03-screens.md` — макеты экранов - `docs/design/design-system.md` — дизайн-система - `docs/llm-test-report.md` — тест LLM-моделей ## Деплой CI/CD через GitLab CI: линтеры → тесты → сборка образов → деплой на сервер (вручную, ветка `main`). Требуемые переменные GitLab CI: `SSH_PRIVATE_KEY`, `DEPLOY_HOST`, `DEPLOY_USER`, `CI_REGISTRY_IMAGE`.