Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Applications Analytics Service

Микросервис для сбора и агрегации статистики откликов кандидатов на вакансии с админ-дашбордом.

Технологии

Backend

  • Python 3.12
  • FastAPI
  • asyncpg (для работы с БД)
  • psycopg2-binary (для Alembic миграций)
  • Alembic (миграции БД)
  • PostgreSQL 15

Frontend

  • React 18
  • TypeScript
  • Tailwind CSS
  • Recharts

Запуск через Docker Compose

Все сервисы (БД, бэкенд, фронтенд) запускаются одной командой:

docker-compose up --build

После запуска:

Остановка

docker-compose down

Остановка с удалением данных БД

docker-compose down -v

Структура проекта

.
├── app/                    # Backend (FastAPI)
│   ├── database/          # Подключение к БД и миграции
│   ├── models/            # Pydantic модели
│   ├── repositories/      # Репозитории для работы с БД
│   ├── routes/            # API эндпоинты
│   ├── services/          # Бизнес-логика
│   └── utils/             # Утилиты
├── frontend/              # Frontend (React)
│   ├── src/
│   │   ├── api/          # API клиент
│   │   ├── components/   # React компоненты
│   │   ├── pages/        # Страницы
│   │   ├── types/        # TypeScript типы
│   │   └── utils/        # Утилиты
│   └── Dockerfile
├── docker-compose.yml     # Конфигурация Docker Compose
└── Dockerfile             # Dockerfile для бэкенда

API Эндпоинты

Applications

  • POST /api/applications - Создание отклика
  • GET /api/applications - Список откликов (с фильтрами и пагинацией)
  • PATCH /api/applications/{id}/status - Изменение статуса

Analytics

  • GET /api/analytics/summary - Сводная статистика
  • GET /api/analytics/vacancies - Топ вакансий

Health

  • GET /health - Health check

Миграции базы данных

Проект использует Alembic для управления миграциями БД. Alembic использует синхронный драйвер psycopg2, в то время как приложение использует асинхронный asyncpg.

Применение миграций

Миграции автоматически применяются при запуске через Docker Compose.

Для ручного применения миграций:

# Применить все миграции
alembic upgrade head

# Откатить последнюю миграцию
alembic downgrade -1

# Посмотреть текущую версию
alembic current

# Посмотреть историю миграций
alembic history

Создание новой миграции

# Автоматическая генерация на основе изменений моделей
alembic revision --autogenerate -m "описание изменений"

# Создание пустой миграции
alembic revision -m "описание изменений"

Разработка

Backend (локально)

# Установка зависимостей
uv pip install -e .

# Применить миграции
alembic upgrade head

# Запуск
uvicorn app.main:app --reload

Frontend (локально)

cd frontend
npm install
npm run dev

Переменные окружения

Backend

  • DB_HOST - хост БД (по умолчанию: localhost)
  • DB_PORT - порт БД (по умолчанию: 5432)
  • DB_USER - пользователь БД (по умолчанию: postgres)
  • DB_PASSWORD - пароль БД (по умолчанию: postgres)
  • DB_NAME - имя БД (по умолчанию: applications_db)

Frontend

  • VITE_API_URL - URL API (по умолчанию: /api для production, http://localhost:8000 для dev)

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages