Skip to content

Repository files navigation

ГДПБЗН - Система за управление на произшествия

ГДПБЗН Logo

Система за управление на произшествия и пожарни екипи

Главна дирекция "Пожарна безопасност и защита на населението" (ГДПБЗН) е част от Министерството на вътрешните работи на Република България. Тази система е предназначена да подпомогне основните оперативни дейности в ежедневната работа на пожарникарите, включително управление на произшествия, координация на екипи, комуникация и ресурси.


Съдържание


Функционалности

Потребителски роли

Роля Описание
Администратор Пълен достъп до системата, управление на потребители, роли и станции
Мениджър произшествия Управление на произшествия, разрешаване, маркиране на фалшиви сигнали
Диспечер Създаване на произшествия, назначаване на екипи, комуникация
Пожарникар Оперативен персонал, достъп до табло, произшествия, екипи, комуникации, ресурси
Потребител Докладване на произшествия, преглед на своите доклади

Основни модули

Модул Описание
Табло Общ преглед на активни произшествия, налични екипи, успеваемост и спасени животи
Произшествия Създаване, преглед, редактиране, разрешаване и изтриване на произшествия
Екипи Управление на пожарни екипи, назначаване на членове, автоматичен статус
Операции Интерактивна карта с произшествия и екипи, назначаване на екипи от картата
Комуникации Чат канали, видео обаждания, известия, спешни съобщения
Ресурси Управление на ресурси в станциите, преместване и премахване
Доклади Анализи, статистики, ефективност на екипите
Потребители Управление на потребители, роли, станции (само за администратори)
Профил Лична информация, смяна на парола, профилна снимка

Ключови функции

  • Автоматичен статус на екипите - Определя се на база активни произшествия
  • Карта с местоположение - Интерактивна карта с маркери за произшествия и екипи
  • Станции - 3 станции в София (Център, Люлин, Младост)
  • Препоръчани екипи - При произшествие се показват екипи от най-близката станция
  • Фалшиви сигнали - Маркиране и автоматично предупреждение за потребителя
  • Прикачени файлове - Качване на снимки и документи към произшествия
  • Тъмна тема - Поддръжка на светла и тъмна тема

Технологичен стек

Backend

Технология Версия Описание
Python 3.10+ Основен език за програмиране
Flask 2.3.3 Микроуеб框架
Flask-SQLAlchemy 3.1.1 ORM за база данни
Flask-Login 0.6.2 Управление на сесии и потребители
Flask-Migrate 4.0.5 Миграции на база данни
Flask-SocketIO 5.3.6 Реално-времева комуникация
SQLite - Основна база данни (разработка)
PostgreSQL - Препоръчва се за продукция

Frontend

Технология Описание
Bootstrap 5 CSS framework
Leaflet.js Интерактивни карти
Chart.js Графики и статистики
Socket.IO Реално-времеви чат
Font Awesome Икони

Допълнителни инструменти

Инструмент Описание
Celery Фонови задачи
Redis Брокер за Celery
Gunicorn WSGI сървър за продукция
Docker Контейнеризация

Инсталация

Изисквания

  • Python 3.10 или по-нова версия
  • pip (Python package manager)
  • Git

Стъпки за инсталация

1. Клониране на репозиторито

git clone https://github.com/your-username/gdpozharna-system.git
cd gdpozharna-system

2. Създаване на виртуална среда

# Windows
python -m venv venv
venv\Scripts\activate

# macOS / Linux
python3 -m venv venv
source venv/bin/activate

3. Инсталиране на зависимости

pip install -r requirements.txt

4. Конфигурация на средата

Създайте .env файл в основната директория:

FLASK_APP=run.py
FLASK_ENV=development
SECRET_KEY=your-super-secret-key-here
DATABASE_URL=sqlite:///instance/gdpozharna.db

5. Инициализиране на база данни

# Създайте instance папката
mkdir instance

# Стартирайте приложението (създава базата автоматично)
python run.py

6. Създаване на администратор

При първо стартиране се създава автоматично администраторски потребител:

Имейл Парола
admin@example.com admin123

7. Стартиране на приложението

python run.py

Приложението ще бъде достъпно на: http://localhost:5000


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

gdpozharna-system/
├── app/
│   ├── api/                    # API endpoints
│   ├── blueprints/             # Flask blueprints
│   │   ├── admin/              # Административен модул
│   │   ├── auth/               # Автентикация
│   │   ├── communications/     # Комуникации
│   │   ├── dashboard/          # Табло
│   │   ├── incidents/          # Произшествия
│   │   ├── main/               # Публични страници
│   │   ├── operations/         # Операции
│   │   ├── profile/            # Профил
│   │   ├── reports/            # Доклади
│   │   ├── resources/          # Ресурси
│   │   └── teams/              # Екипи
│   ├── config/                 # Конфигурационни файлове
│   ├── forms/                  # Формуляри
│   ├── models/                 # Модели на база данни
│   ├── services/               # Бизнес логика
│   ├── static/                 # Статични файлове
│   │   ├── css/                # Стилове
│   │   ├── images/             # Изображения
│   │   ├── js/                 # JavaScript
│   │   └── uploads/            # Качени файлове
│   ├── templates/              # HTML шаблони
│   └── utils/                  # Помощни функции
├── instance/                   # База данни (SQLite)
├── logs/                       # Лог файлове
├── migrations/                 # Миграции на база данни
├── tests/                      # Тестове
├── venv/                       # Виртуална среда
├── .env                        # Конфигурация на средата
├── .gitignore                  # Git ignore файл
├── config.py                   # Конфигурация на приложението
├── README.md                   # Документация
├── requirements.txt            # Зависимости
└── run.py                      # Точка на вход

Роли и разрешения

Матрица на разрешенията

Функция Админ Мениджър произшествия Диспечер Пожарникар Потребител
Табло
Произшествия - преглед
Произшествия - създаване
Произшествия - редактиране
Произшествия - разрешаване
Произшествия - изтриване
Екипи
Операции
Комуникации
Ресурси
Доклади
Потребители
Профил

Стартиране

Разработка

# Активиране на виртуалната среда
venv\Scripts\activate  # Windows
source venv/bin/activate  # macOS / Linux

# Стартиране
python run.py

Продукция (с Gunicorn)

# Инсталиране на Gunicorn
pip install gunicorn

# Стартиране
gunicorn -w 4 -b 0.0.0.0:8000 "app:create_app()"

Docker

# Изграждане на Docker образ
docker build -t gdpozharna .

# Стартиране на контейнер
docker run -p 5000:5000 gdpozharna

Тестване

Примерни тестови акаунти

Роля Имейл Парола
Администратор admin@example.com admin123

Забележка

Другите роли (Мениджър произшествия, Диспечер, Пожарникар) трябва да бъдат създадени от администратор чрез интерфейса.


Лиценз

Този проект е собственост на Главна дирекция "Пожарна безопасност и защита на населението" (ГДПБЗН).


Контакти

Канал Информация
Спешен телефон 112
Имейл gdpbzn@mvr.bg
Адрес София, България

About

iara-gdbpzn-BMGeorgiev23 created by GitHub Classroom

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages