Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VTB Analytics Dashboard

License Python Django React Vite WeasyPrint

Screenshot


Полноценный аналитический проект для визуализации корпоративных данных в формате веб-панели. Проект включает:

  • vtb-django — Django REST API и сервер аналитики
  • vtb-react — современный React/Vite интерфейс
  • nginx — пример Nginx-конфигурации для контейнерного развёртывания

Что внутри

  • Интерактивная панель с фильтрами по клиентским данным
  • Графики и дашборд на Plotly / Recharts
  • Экспорт отчётов в PDF через WeasyPrint
  • Аналитика данных с Pandas и Django
  • Поддержка быстрого запуска на Windows и Linux

Ключевые возможности

  • Фильтрация и сегментация клиентов по возрасту, доходу, региону и другим метрикам
  • Визуализация распределений, трендов и ключевых метрик
  • Генерация PDF-отчёта из интерфейса
  • Быстрый прототипный фронтенд на Vite + React

Структура репозитория

  • vtb-django/ — backend-приложение на Django
  • vtb-react/ — frontend-приложение на React + Vite
  • nginx/ — пример Docker-образа и конфигурации
  • start.bat / start.sh — сценарии запуска Django и React одновременно

Быстрый старт

Перед запуском обязательно установите WeasyPrint.

Windows

  1. Откройте PowerShell в корне проекта.
  2. Перейдите в папку vtb-django:
    cd vtb-django
  3. Создайте и активируйте виртуальное окружение:
    python -m venv .venv
    .\.venv\Scripts\activate
  4. Установите зависимости:
    pip install -r requirements.txt
  5. Вернитесь в корень проекта и запустите start.bat:
    cd ..
    .\start.bat

Linux / macOS

  1. Откройте терминал в корне проекта.
  2. Перейдите в vtb-django:
    cd vtb-django
  3. Создайте и активируйте виртуальное окружение:
    python3 -m venv .venv
    source .venv/bin/activate
  4. Установите зависимости:
    pip install -r requirements.txt
  5. Запустите оба приложения через start.sh:
    cd ..
    ./start.sh

Только вручную

Django

cd vtb-django
python -m venv .venv
source .venv/bin/activate   # или .\.venv\Scripts\activate на Windows
pip install -r requirements.txt
python manage.py runserver

React

cd vtb-react
npm install
npm run dev -- --host 127.0.0.1 --port 3000

Адреса в браузере

Важные API-эндпоинты

Все API доступны под префиксом /api/.

  • POST /api/login/ — вход пользователя
  • POST /api/register/ — регистрация пользователя
  • GET /api/logout_api/ — выход из сессии
  • GET /api/check/ — проверка авторизации
  • GET /api/csrf/ — получение CSRF-токена
  • GET /api/dashboard/ — агрегированные данные дашборда
  • GET /api/search/clients/ — поиск клиентов
  • GET /api/report/ — генерация отчёта
  • POST /api/export/pdf/ — экспорт PDF-отчёта
  • POST /api/export/report/pdf/ — экспорт расширенного PDF-отчёта
  • POST /api/upload/csv/ — загрузка CSV-файла
  • GET /api/download/template/ — скачивание шаблона CSV
  • GET /api/status/ — статус API

Пример запроса к дашборду

curl "http://127.0.0.1:8000/api/dashboard/?min_age=25&max_income=150000&region=Москва"

Пример запроса авторизации

curl -X POST "http://127.0.0.1:8000/api/login/" \
  -H "Content-Type: application/json" \
  -d '{"username":"admin","password":"password"}'

Дополнительная информация

  • vtb-django/requirements.txt — список Python-зависимостей
  • vtb-react/package.json — список JavaScript-зависимостей
  • vtb-django/Dockerfile — образ для контейнера Django
  • nginx/ — конфигурация для прокси/обратного сервера

Тестирование

Для запуска тестов Django используйте:

cd vtb-django
pytest

Рекомендации

  • Обязательно установите WeasyPrint, чтобы работал экспорт PDF
  • Для повышения стабильности используйте Python 3.11 и последнюю версию Node.js
  • На Windows сначала запустите start.bat, чтобы автоматически создать окружение и поднять оба сервера

Контакт

Если нужно расширить проект, добавить новые источники данных или усилить аналитические отчёты — структура готова к доработке.

About

Web app for anylize money. Project was for competition.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Contributors

Languages