Skip to content

MAGNAT12/MSA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Shift Management System (Hikvision ISAPI)

📌 О проекте

Shift Management System — backend-приложение для автоматического формирования рабочих смен сотрудников на основе событий доступа, полученных из Hikvision ISAPI.

Проект разработан как производственное решение для компании (MSA — внутреннее название), используется для учёта фактического времени присутствия сотрудников и формирования Excel-отчётов.

Проект не является официальным продуктом Hikvision.

Документация и примеры кода доступны в отдельном репозитории:

👉 https://github.com/MAGNAT12/hikvision-isapi-python


🎯 Решаемая задача

В реальных условиях сотрудники:

  • приходят раньше или позже начала смены;
  • несколько раз входят и выходят в течение дня;
  • могут задерживаться после окончания рабочего времени.

Стандартные системы плохо учитывают эти сценарии.

Цель проекта — определить реальное начало и окончание смены сотрудника по данным системы контроля доступа.


🧠 Бизнес-логика

Система анализирует все события доступа сотрудника за день и:

  • определяет первый вход сотрудника за день
    (ближайший ко времени начала смены);
  • определяет последний выход сотрудника за день
    (ближайший ко времени окончания смены);
  • игнорирует все промежуточные входы и выходы;
  • сохраняет итоговую смену в базе данных;
  • формирует Excel-отчёт.

🕒 Пример формирования смены

График сотрудника

  • начало смены: 08:00
  • конец смены: 18:00

Фактические события

  • вход: 07:40
  • несколько входов/выходов в течение дня
  • выход: 18:50

Результат

Employee Date time_in time_out
Ron 01-24 07:40 18:50

🏗 Архитектура решения

  • Django — backend, ORM, бизнес-логика
  • Hikvision ISAPI — источник событий доступа
  • Docker / Docker Compose — развёртывание и изоляция окружения
  • PostgreSQL / SQLite — хранение данных
  • openpyxl — генерация Excel-отчётов
  • Telegram Bot (опционально) — автоматизация и уведомления

⚙️ Основные функции

  • обработка событий доступа из Hikvision;
  • формирование смен (дневные сценарии);
  • защита от дублирующих записей;
  • экспорт отчётов в формате Excel;
  • конфигурация через переменные окружения;
  • контейнеризация проекта.

🧪 Технические навыки, продемонстрированные в проекте

  • Python 3.12
  • Django 5 (ORM, signals, management commands)
  • Работа с внешними API (Hikvision ISAPI)
  • Реализация бизнес-логики учёта времени
  • Docker / Docker Compose
  • Работа с датами и временем
  • Генерация Excel-отчётов
  • Проектирование backend-архитектуры

📄 Экспорт отчётов

Отчёт доступен по HTTP-эндпоинту:

GET /excel/

В Excel:

  • строки — сотрудники;
  • колонки — даты;
  • значения — time_in / time_out.

▶️ Быстрый запуск (Docker)

git clone https://github.com/MAGNAT12/msa.git
cd msa
cp .env.example .env
docker compose up -d --build

About

Django backend developer

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors