Skip to content

Repository files navigation

Дашборд IT-компаний Калининградской области

Веб-приложение для анализа и визуализации данных об IT-компаниях Калининградской области. Система позволяет просматривать информацию о компаниях, фильтровать данные, проверять аккредитацию и создавать отчеты.

🚀 Основные возможности

  • Просмотр данных: Анализ 120+ IT-компаний с информацией о выручке, налогах, численности сотрудников
  • Фильтрация: Множественные фильтры по различным параметрам (ОКВЭД, выручка, налоги, численность, аккредитация)
  • Проверка аккредитации: Автоматическая проверка статуса аккредитации через API Госуслуг
  • Система ролей: Разделение доступа между директором и сотрудником
  • Генерация отчетов: Создание детальных отчетов по выбранным компаниям (только для директора)
  • Внутренняя почта: Система внутренней электронной почты с виртуальными адресами (например, admin@metrika.com, username@metrika.com)
  • Отправка отчетов по почте: Возможность отправки Excel-отчетов сотрудникам через внутреннюю почтовую систему
  • Интерактивный интерфейс: Живой поиск, сортировка таблиц, быстрые фильтры

🛠 Технологии

  • Backend: Django 5.2.8 (Python)
  • Frontend: HTML, CSS, JavaScript (vanilla)
  • База данных: SQLite
  • Внешние API: Госуслуги (проверка аккредитации IT-компаний)

📋 Требования

  • Python 3.8+
  • pip (менеджер пакетов Python)

🔧 Установка

  1. Клонируйте репозиторий (или скачайте проект):

    git clone <url-репозитория>
    cd my_prof
  2. Создайте виртуальное окружение (рекомендуется):

    python -m venv venv
  3. Активируйте виртуальное окружение:

    • Windows:
      venv\Scripts\activate
    • Linux/Mac:
      source venv/bin/activate
  4. Установите зависимости:

    pip install -r requirements.txt
  5. Примените миграции базы данных:

    python manage.py migrate
  6. Создайте тестовых пользователей:

    python manage.py create_users

🏃 Запуск проекта

Вариант 1: Использование bat-файла (Windows)

run_dashboard.bat

Вариант 2: Запуск через manage.py

python manage.py runserver

После запуска откройте браузер и перейдите по адресу: http://127.0.0.1:8000/

👤 Учетные данные для входа

После выполнения команды create_users будут созданы следующие пользователи:

Директор (полный доступ):

  • Логин: director
  • Пароль: director123

Сотрудник (ограниченный доступ):

  • Логин: employee
  • Пароль: employee123

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

my_prof/
├── dashboard_app/            # Основное приложение
│   ├── migrations/           # Миграции базы данных
│   ├── management/           # Кастомные команды (create_users)
│   ├── services.py           # Бизнес-логика и работа с данными
│   └── ...                   # Остальные файлы приложения
├── dashboard_site/           # Настройки проекта Django
│   ├── settings.py           # Конфигурация приложения
│   └── urls.py               # Маршрутизация URL
├── data/
│   └── dop_material.csv      # Исходные данные о компаниях
├── static/                   # Статические файлы (CSS + JS)
│   └── dashboard_app/
│       ├── styles.css        # Основные стили
│       ├── mail.css          # Стили почтовой системы
│       └── dashboard.js      # JavaScript для интерактивности
├── templates/                # HTML шаблоны
│   └── dashboard_app/
│       ├── dashboard.html    # Главная страница
│       ├── login.html        # Страница авторизации
│       ├── mail_inbox.html   # Входящие письма
│       ├── mail_sent.html    # Отправленные письма
│       └── mail_view.html    # Просмотр письма
├── manage.py                 # Точка входа Django
├── requirements.txt          # Зависимости проекта
├── run_dashboard.bat         # Быстрый запуск на Windows
└── README.md                 # Этот файл

🔐 Система ролей

Директор

  • ✅ Просмотр всех данных
  • ✅ Использование всех фильтров
  • ✅ Обновление аккредитации компаний
  • ✅ Создание отчетов
  • ✅ Отправка отчетов через внутреннюю почту
  • ✅ Доступ к внутренней почте

Сотрудник

  • ✅ Просмотр всех данных
  • ✅ Использование всех фильтров
  • ✅ Доступ к внутренней почте (получение писем с отчетами)
  • ❌ Обновление аккредитации (недоступно)
  • ❌ Создание отчетов (недоступно)

📊 Функционал

Фильтры

  • Поиск по названию компании или ФИО руководителя
  • Фильтр по ОКВЭД
  • Фильтр по применению УСН
  • Фильтр по аккредитации
  • Фильтры по выручке (мин/макс)
  • Фильтр по налогам
  • Фильтр по численности сотрудников
  • Фильтры по годам данных

Статистика

  • Совокупная выручка
  • Совокупные налоги
  • Средняя численность штата
  • Доля компаний на УСН
  • Топ компания по выручке

Аккредитация

Система автоматически проверяет статус аккредитации компаний через API Госуслуг. Директор может обновить статус аккредитации для выбранных компаний. Время обновления отображается в локальном часовом поясе.

Внутренняя почтовая система

Система включает полнофункциональную внутреннюю почту без необходимости внешнего домена:

  • Виртуальные email-адреса: Каждому пользователю автоматически присваивается внутренний email-адрес:

    • Директор: admin@metrika.com
    • Сотрудники: username@metrika.com (где username - логин пользователя)
  • Отправка отчетов: Директор может отправлять Excel-отчеты сотрудникам через внутреннюю почту:

    • Выбор получателя из списка сотрудников
    • Автоматическое создание письма с вложенным отчетом
    • Уведомление получателя о новом письме
  • Почтовый интерфейс:

    • Входящие письма с фильтрацией (все/прочитанные/непрочитанные)
    • Отправленные письма
    • Просмотр отдельных писем с возможностью скачать вложенный отчет
    • Счетчик непрочитанных писем в шапке сайта
  • Уведомления: Система автоматически отслеживает непрочитанные письма и отображает их количество

🛠 Управление через админ-панель

Доступ к админ-панели: http://127.0.0.1:8000/admin/

Для входа используйте суперпользователя (создайте через python manage.py createsuperuser).

📝 Команды управления

# Применить миграции
python manage.py migrate

# Создать суперпользователя
python manage.py createsuperuser

# Создать тестовых пользователей
python manage.py create_users

# Запустить сервер разработки
python manage.py runserver

# Собрать статические файлы (для продакшена)
python manage.py collectstatic

🔄 Обновление данных

Данные о компаниях загружаются из файла data/dop_material.csv. Для обновления данных:

  1. Замените файл data/dop_material.csv новыми данными
  2. Перезапустите сервер (данные кэшируются в памяти)

🐛 Решение проблем

Ошибка при миграциях

python manage.py migrate --run-syncdb

Ошибка импорта модулей

Убедитесь, что виртуальное окружение активировано и все зависимости установлены:

pip install -r requirements.txt

Проблемы с кодировкой (Windows)

Используйте флаг -X utf8 при запуске Python:

python -X utf8 manage.py <команда>

📄 Лицензия

Этот проект создан в образовательных целях.

👨‍💻 Автор

Разработано для анализа данных IT-компаний Калининградской области.

📞 Поддержка

При возникновении проблем создайте issue в репозитории проекта.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages