Приложение для сайта промышленной компании, выполненное по тестовому заданию.
Штат сотрудников компании более 50000 человек
Рабочую версию сайта вы можете посмотреть на https://icompany-pro.ru
Приложение состоит из четырёх интерфейсов.
- Авторизация пользователя
- Древовидная структура компании
- Страница списка сотрудников, сгруппированных по выбранным параметрам поиска
- Интерфейс администратора для приёма и распределения сотрудников
Страница, после авторизации, на которой, можно будет получить доступ к информации приложения, в зависимости от прав пользователя.
- переход в подразделение компании, осуществляется при нажатии на подразделение в древовидной структуре компании
Страница доступная только пользователю с разрешением изменения данных.
Здесь в компанию принимается новый сотрудник, далее он попадает в список снятых с должности или нераспределённых сотрудников, где можно назначить на должность или уволить
- Склонируйте репозиторий:
git clone https://github.com/SwedL/industrial-company.git
- Перейдите в каталог проекта
cd industrial-company
- Установите переменные окружения. Создайте файл .env и скопируйте содержимое из .env.dev.example, подставьте свои значения.
- Запустите контейнеры.
docker compose up --build
Создайте модель суперпользователя
- Войдите в терминал контейнера с помощью команды:
docker exec -it project bash
- Создайте суперпользователя:
python3 manage.py createsuperuser
- Для наполнения базы фейковыми данными сотрудников можно воспользоваться скриптом
Команда запуска:
python3 manage.py init_employees
- Склонируйте репозиторий:
git clone https://github.com/SwedL/industrial-company.git
- Перейдите в каталог проекта
cd industrial-company
- Установите переменные окружения. Создайте файл .env и скопируйте содержимое из .env.prod.example, подставьте свои значения.
- Создайте директории для certbot, выполнив:
mkdir -p certbot/conf
mkdir certbot/www
- Измените в docker-compose.prod.yml в строке 76 ваш email и ваш домен, для получения SSL-сертификата от Let's Encrypt
- Перейдите в директорию nginx/prod/default.conf и в строках 4, 17, 19, 20 установите значение вашего домена
- Запустите контейнеры.
docker compose -f docker-compose.prod.yml up --build
Создайте модель суперпользователя
- Войдите в терминал контейнера с помощью команды:
docker exec -it project bash
- Создайте суперпользователя:
python3 manage.py createsuperuser
- Для наполнения базы фейковыми данными сотрудников можно воспользоваться скриптом
Команда запуска:
python3 manage.py init_employees
industrial-company/
├── nginx/ # Директория конфигурационных файлов обратного прокси сервера
│ └── ...
└── project/ # Директория Django проекта
├── ic/ # Django проект ic
│ └── ...
├── structure/ # Приложение structure
│ ├── consumers/ # Обработка асинхронных событий websocket соединений
│ ├── fixtures/ # Начальные данные для заполнения БД
│ ├── management/ # Собственные скрипты проекта для manage.py
│ ├── migrations/
│ ├── permissions/ # Функции-разрешения для пользователей
│ ├── services/ # Сервисы - выполняют операции над данными
│ ├── static/
│ ├── templates/
│ ├── tests/ # Тесты шаблонов, форм, представлений
│ ├── admin.py
│ ├── models.py
│ ├── routing.py # Маршрутизация асинхронных событий websocket соединений
│ ├── urls.py
│ ├── views.py
│ └── ...
├── Dockerfile
├── manage.py
└── pyproject.toml # Конфигурация Poetry
Проект покрыт тестами моделей, форм, представлений и url.
Тесты запускаются командой:
python manage.py test
В docker:
docker exec -it project python manage.py test
- Осминин Алексей - SwedL