Веб-приложение для учета и управления аудиторным фондом университета, разработанное на Django.
Система предназначена для комплексного учета аудиторного фонда университета, включая:
- Управление корпусами: информация о корпусах, их адресах, количестве этажей
- Учет помещений: детальная информация о каждом помещении с расчетом площадей и объемов
- Структура подразделений: иерархическая организация подразделений университета
- Статистика и отчеты: автоматический расчет площадей, объемов и вместимости
- Автоматический расчет площади помещений (ширина × длина)
- Расчет объема помещений (площадь × высота потолков)
- Оценочная вместимость (площадь ÷ 2 кв.м на человека)
- Общая статистика по корпусам и подразделениям
- Просмотр иерархической структуры подразделений
- Определение факультетов, кафедр и лабораторий в каждом корпусе
- Статистика по подразделениям
- Добавление новых корпусов
- Редактирование информации о корпусах
- Удаление корпусов (с проверкой связанных помещений)
- Добавление новых помещений
- Редактирование информации о помещениях
- Удаление помещений
- Фильтрация по корпусам, назначению и типу
cd DevOps-task-app
DJANGO_SETTINGS_MODULE=university_auditorium.settings_tests coverage run --source=auditorium_app manage.py test
coverage report -mcd DevOps-task-app
$env:DJANGO_SETTINGS_MODULE="university_auditorium.settings_tests"; coverage run --source=auditorium_app manage.py test
coverage report -m- Python 3.8+
- Django 4.2.7
- SQLite (по умолчанию) или PostgreSQL/MySQL
- Bootstrap 5.3.0 (для интерфейса)
-
Двойной клик на
start.bat- автоматически создаст виртуальное окружение, установит зависимости и запустит приложение -
Или через PowerShell:
.\start.ps1
git clone <repository-url>
cd university-auditorium# Windows
python -m venv venv
venv\Scripts\activate
# Linux/Mac
python -m venv venv
source venv/bin/activatepip install -r requirements.txtpython manage.py makemigrations
python manage.py migratepython init_db.pypython manage.py createsuperuserpython manage.py runserver
# или
python run.pyПриложение будет доступно по адресу: http://127.0.0.1:8000/
- Главная страница: http://127.0.0.1:8000/
- Административный интерфейс: http://127.0.0.1:8000/admin/
- Логин: admin
- Пароль: admin123
university_auditorium/
├── auditorium_app/ # Основное приложение
│ ├── models.py # Модели данных
│ ├── views.py # Представления (контроллеры)
│ ├── forms.py # Формы для ввода данных
│ ├── urls.py # URL маршруты
│ ├── admin.py # Административный интерфейс
│ └── templates/ # HTML шаблоны
│ └── auditorium_app/
│ ├── base.html # Базовый шаблон
│ ├── index.html # Главная страница
│ ├── buildings_*.html # Страницы корпусов
│ ├── rooms_*.html # Страницы помещений
│ └── departments_*.html # Страницы подразделений
├── university_auditorium/ # Настройки проекта
│ ├── settings.py # Основные настройки
│ ├── urls.py # Корневые URL маршруты
│ └── wsgi.py # WSGI конфигурация
├── static/ # Статические файлы
├── init_db.py # Скрипт инициализации БД
├── requirements.txt # Зависимости Python
├── manage.py # Управляющий скрипт Django
└── README.md # Документация
name- Наименование корпусаaddress- Адрес корпусаfloors_count- Количество этажейdescription- Описание
building- Связь с корпусомroom_number- Номер комнатыfloor- Этажlocation_in_building- Расположение в корпусеwidth,length- Размеры помещенияceiling_height- Высота потолковpurpose- Назначение помещенияroom_type- Тип помещенияdepartment- Закрепленное подразделение
name- Название подразделенияparent- Родительское подразделение (иерархия)department_type- Тип подразделенияdescription- Описание
building- Связь с корпусомfloor_number- Номер этажаceiling_height- Высота потолков на этаже
/- Главная страница со статистикой/buildings/- Список корпусов/buildings/<id>/- Детальная информация о корпусе/rooms/- Список помещений/rooms/<id>/- Детальная информация о помещении/departments/- Структура подразделений
/buildings/create/- Создание корпуса/buildings/<id>/edit/- Редактирование корпуса/buildings/<id>/delete/- Удаление корпуса/rooms/create/- Создание помещения/rooms/<id>/edit/- Редактирование помещения/rooms/<id>/delete/- Удаление помещения
/api/rooms/<id>/calculations/- Расчеты помещения/api/buildings/<id>/statistics/- Статистика корпуса
- Площадь:
ширина × длина - Объем:
площадь × высота потолков - Вместимость:
площадь ÷ 2(2 кв.м на человека)
- Проверка уникальности номеров комнат в корпусе
- Валидация размеров помещений
- Проверка соответствия этажа количеству этажей в корпусе
- Рекурсивное построение дерева подразделений
- Поддержка неограниченной глубины вложенности
- Автоматический расчет полного пути подразделения
- Фильтрация помещений по корпусам
- Фильтрация по назначению и типу помещений
- Пагинация для больших списков
Доступ к административному интерфейсу Django:
- URL:
/admin/ - Требуется создание суперпользователя
Для продакшена рекомендуется использовать PostgreSQL или MySQL:
# settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'university_auditorium',
'USER': 'your_username',
'PASSWORD': 'your_password',
'HOST': 'localhost',
'PORT': '5432',
}
}# settings.py
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')# settings.py
DEBUG = False
ALLOWED_HOSTS = ['your-domain.com']
SECRET_KEY = 'your-secret-key'python manage.py collectstaticПроект распространяется под лицензией MIT License.
Разработано в рамках учебного проекта по дисциплине "Разработка веб-приложений".
Для получения поддержки или сообщения об ошибках создайте issue в репозитории проекта.
- Первоначальная версия
- Базовый функционал учета корпусов и помещений
- Расчет площадей и объемов
- Иерархическая структура подразделений
- Веб-интерфейс на Bootstrap