Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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