feat: project scaffold (FastAPI backend, React frontend, aiogram bot, docker-compose, CI/CD)

This commit is contained in:
apuc committed 2026-09-26 19:41:12 +03:00
1 parent 066deaca47
commit 71460ab56a
37 files changed
+936

No files matched your search

+75
View File
@@ -0,0 +1,75 @@
# АС «Платформа ОПОРА РОССИИ»
Автоматизированная система для общероссийской общественной организации МСП «ОПОРА РОССИИ»: мессенджер-бот, 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`.