76 lines
2.5 KiB
Markdown
76 lines
2.5 KiB
Markdown
# АС «Платформа ОПОРА РОССИИ»
|
|
|
|
Автоматизированная система для общероссийской общественной организации МСП «ОПОРА РОССИИ»: мессенджер-бот, 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`.
|