feat: project scaffold (FastAPI backend, React frontend, aiogram bot, docker-compose, CI/CD)
This commit is contained in:
1 parent
066deaca47
commit
71460ab56a
37 files changed
+936
No files matched your search
@@ -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`.
|
||||
Reference in new issue
Block a user