Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Система оповещений о ЧС

Система глобальных оповещений о чрезвычайных ситуациях с использованием протоколов TCP, UDP и WebSocket.

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

Проект состоит из двух основных частей:

  • Backend: Django + Django REST Framework + Django Channels
  • Frontend: React + Material UI

Возможности системы

  • Получение оповещений от МЧС (через TCP)
  • Отслеживание данных с дронов (через UDP)
  • Оповещения о стихийных бедствиях в реальном времени (через WebSocket)
  • Управление серверами (добавление/удаление серверов)
  • Кэширование событий и данных на клиенте
  • Статистика по активным ЧС

Установка и запуск

Требования

  • Python 3.8+
  • Node.js 14+
  • Redis (для Django Channels)
  • PostgreSQL (опционально)

Backend

  1. Создайте виртуальное окружение и активируйте его (в каждом терминале, где будете писать команды запуска, миграций или зависимостей):
python -m venv venv
source venv/bin/activate  # Linux/Mac
venv\Scripts\activate     # Windows
  1. Установите зависимости:
pip install -r requirements.txt
  1. Создайте файл .env в директории backend со следующими параметрами:
DEBUG=True
SECRET_KEY=your_secret_key
DATABASE_URL=sqlite:///db.sqlite3
REDIS_URL=redis://localhost:6379/0
  1. Выполните миграции:
python backend/manage.py migrate
  1. Запустите Django сервер:
python backend/manage.py runserver
  1. В отдельном терминале запустите TCP и UDP серверы:
python backend/manage.py runservers

Frontend

  1. Установите зависимости:
cd frontend
npm install

Основные зависимости фронтенда:

  • React 19.1.0
  • Material UI 7.0.2
  • React Router DOM 7.5.0
  • React Toastify 10.0.4
  • Axios 1.8.4
  1. Запустите React приложение:
cd frontend
npm start

Приложение будет доступно по адресу http://localhost:3000

Режим разработки

В режиме разработки можно использовать моковые данные, которые автоматически генерируются при подключении к локальным серверам (localhost или 127.0.0.1).

Для запуска в режиме разработки:

  1. Запустите только фронтенд: npm start из директории frontend
  2. В приложении выберите "Локальный сервер" в разделе "Серверы"

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

  • Оповещений о ЧС
  • Данных с дронов
  • Статистики

Протоколы взаимодействия

TCP (Оповещения от МЧС)

Сервер принимает сообщения от систем МЧС по протоколу TCP и сохраняет данные о ЧС в базе данных.

UDP (Данные с дронов)

Данные о положении дронов и собранной ими информации передаются на сервер по протоколу UDP.

WebSocket (Стихийные бедствия)

Информация о стихийных бедствиях и обновления статуса ЧС отправляются клиентам через WebSocket соединение.

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

Проблемы с подключением к серверу

Если вы не можете подключиться к локальному серверу:

  1. Убедитесь, что Django сервер запущен на порту 8000
  2. Проверьте, работает ли Redis (для WebSocket соединений)
  3. Для локальной разработки используйте подключение к localhost:8000 или 127.0.0.1:8000

ERR_CONNECTION_TIMED_OUT

Если вы видите ошибку таймаута при подключении, приложение автоматически переключится в режим симуляции. Проверьте, что бэкенд запущен и доступен.

Авторы

  • Денисова Юлия Константиновна

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages