Приложение для сайта промышленной компании, выполненное по тестовому заданию.
Штат сотрудников компании более 50000 человек
Приложение состоит из четырёх интерфейсов.
- Авторизация пользователя
- Древовидная структура компании
- Страница списка сотрудников, сгруппированных по выбранным параметрам поиска
- Интерфейс администратора для приёма и распределения сотрудников
Страница, после авторизации, на которой, можно будет получить доступ к информации приложения, в зависимости от прав пользователя.
Страница доступная только пользователю с разрешением изменения данных.
Здесь в компанию принимается новый сотрудник, далее он попадает в список снятых с должности или нераспределённых сотрудников, где можно назначить на должность или уволить
Скачайте код:
git clone https://github.com/SwedL/industrial-company.git
Перейдите в каталог проекта industrial-company
, создайте виртуальное окружение, выполнив команду:
- Windows:
python -m venv venv
- Linux:
python3 -m venv venv
Активируйте его командой:
- Windows:
.\venv\Scripts\activate
- Linux:
source venv/bin/activate
Создайте файл .env
с переменными окружения и положите туда такой код:
DEBUG=True
SECRET_KEY='vu1c-=svhigsn81!1doknfa2zxchlq&^37vdyqgc165a8wswjr'
ALLOWED_HOSTS='127.0.0.1 localhost'
INTERNAL_IPS='127.0.0.1 localhost'
POSTGRES_USER=user
POSTGRES_PASSWORD=user_pass
POSTGRES_DB=user_db
SQL_ENGINE=django.db.backends.postgresql
SQL_DATABASE=user_db
SQL_USER=user
SQL_PASSWORD=user_pass
SQL_HOST=localhost
SQL_PORT=5432
! Важно: SECRET_KEY замените на свой.
Если вы хотите использовать базу данных PostgreSQL
, то замените настройки доступа к базе данных на свои.
Если хотите использовать базу данных по умолчанию SQLite
,
то файле settings.py
каталога ic
поменяйте базу данных на SQLite
Перейдите в каталог project
и установите зависимости в виртуальное окружение:
pip install -r requirements.txt
Создайте необходимые таблицы базы данных командой:
python manage.py migrate
Для наполнения базы данных списком должностей, загрузите фикстуру командой:
- Windows:
python manage.py loaddata structure\fixtures\positions.json
- Linux:
python manage.py loaddata structure/fixtures/positions.json
Для наполнения базы фейковыми данными сотрудников можно воспользоваться скриптом, путь его размещения structure/management/commands/init_employees.py
Команда запуска:
python manage.py init_employees
Возможно для наполнения базы сотрудниками потребуется какое-то время Создайте модель суперпользователя командой:
python manage.py createsuperuser
Запустите сервер:
python manage.py runserver
Для добавления разрешения на изменения данных новому пользователю необходимо выдать право structure.change_employee
Скачайте код:
git clone https://github.com/SwedL/industrial-company.git
Приложение в docker настроено на работу с использованием базы данных PostgreSQL.
Перейдите в каталог проекта industrial-company
.
Создайте файл .env
с переменными окружения и положите туда такой код:
DEBUG=True
SECRET_KEY='vu1c-=svhigsn81!1doknfa2zxchlq&^37vdyqgc165a8wswjr'
ALLOWED_HOSTS='127.0.0.1 localhost'
INTERNAL_IPS='127.0.0.1 localhost'
POSTGRES_USER=user
POSTGRES_PASSWORD=user_pass
POSTGRES_DB=user_db
SQL_ENGINE=django.db.backends.postgresql
SQL_DATABASE=user_db
SQL_USER=user
SQL_PASSWORD=user_pass
SQL_HOST=postgres
SQL_PORT=5432
! Важно: SECRET_KEY замените на свой.
Затем выполните сборку и запуск образа:
docker-compose up -d
Если необходимо наполнить базу фейковыми данными сотрудников, используйте команду:
docker exec -it ic_project python manage.py init_employees
Создайте суперпользователя:
docker exec -it ic_project python manage.py createsuperuser
Проект покрыт тестами моделей, форм, представлений и url.
Тесты запускаются командой:
python manage.py test
В docker:
docker exec -it ic_project python manage.py test
- Осминин Алексей - SwedL