https://github.com/alexfofanov/company-structure
Django-приложение с древовидной структурой подразделений и списком сотрудников
https://github.com/alexfofanov/company-structure
django django-mptt django-rest-framework docker docker-compose mysql pytest python3
Last synced: 3 months ago
JSON representation
Django-приложение с древовидной структурой подразделений и списком сотрудников
- Host: GitHub
- URL: https://github.com/alexfofanov/company-structure
- Owner: alexfofanov
- Created: 2025-12-20T07:38:27.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-12-24T15:59:53.000Z (6 months ago)
- Last Synced: 2025-12-26T06:46:37.117Z (6 months ago)
- Topics: django, django-mptt, django-rest-framework, docker, docker-compose, mysql, pytest, python3
- Language: Python
- Homepage:
- Size: 37.1 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Тестовое задание
Создайте веб страницу, которая будет выводить древовидную структуру отделов со списком сотрудников.
Информация о каждом сотруднике должна храниться в базе данных и содержать следующие данные:
* ФИО;
* Должность;
* Дата приёма на работу;
* Размер заработной платы;
* Подразделение - подразделение имеет структуру до 5 уровней;
Дерево должно отображаться в свернутом виде.
База данных должна содержать не менее 50 000 сотрудников и 25 подразделений в 5 уровнях иерархий
Управление записями CRUD через административную часть Django
Django 3+, Python 3.5+, база на свое усмотрение
Используйте Twitter Bootstrap для создания базовых стилей Вашей страницы.
# Решение
В рамках выполнения задания реализована веб-страница с древовидной структурой отделов и сотрудников.
Технологический стек выбран исходя из требований указанных в вакансии и личных предпочтений.
## Технологический стек:
- Бэкенд: Python 3.12, Django 4.2(LTS), Django REST Framework, MariaDB 11, django-mptt, Bootstrap 5
- Инфраструктура: Docker, Docker Compose, uv
- Тестирование: pytest, pytest-django
Для демонстрации проекта созданы тестовые данные в требуемом заданием объеме.
Доступ к странице с данными об отделах и сотрудниках: http://127.0.0.1:8000/staff/
Пользователь: admin пароль: admin
Доступ к административной панели можно получить по ссылке: http://127.0.0.1:8000/admin/
Пользователь: admin пароль: admin
## Установка и запуск
Клонируем репозиторий:
```
git clone git@github.com:alexfofanov/company-structure.git
```
Переходим в папку проекта:
```
cd company-structure
```
Создаём и при необходимости редактируем файл настройки проекта .env
```
cp .env.sample .env
```
Запуск сервиса:
```
docker compose up --build -d
```
Запуск тестов:
```
docker compose exec django /app/.venv/bin/pytest -v
```
Остановка сервиса:
```
docker compose down -v
```