Skip to content

HR-portal for moving employees within the company written using Angular and Django

Notifications You must be signed in to change notification settings

angst-storm/hrportal

Repository files navigation

Демонстрация

Сервис развернут по адресу: https://hrportal.sergei-kiprin.ru

Автогенерируемая Swagger-документация для backend

Запуск Frontend

Требуется:

cd frontend
npm install
ng serve

Приложение разворачивается на http://localhost:4200

Запуск Backend

Запуск в Windows:

Требуется:

В корневой папке должен находится файл .env с переменными окружения Скачать

Установить postgres и создать базу данных. Имя базы данных, имя пользователя и пароль вставить в .env в поля POSTGRES_DB_NAME, POSTGRES_USER, POSTGRES_PASSWORD.

cd backend
python -m venv venv
pip install -r requirements.txt
python manage.py migrate
python manage.py runserver

Приложение разворачивается на http://localhost:8000

Для создания суперюзеров (для доступа к панели администратора Django):

python manage.py createsuperuser

Запуск с помощью Docker:

Требуется:

В корневой папке должен находится файл .env.docker с переменными окружения Скачать

Для запуска только Backend в DEV режиме (на http://localhost:8000):

docker compose -f docker-compose-dev.yaml up -d

Также есть возможность добавить Frontend в DEV режиме (на http://localhost:4200):

docker compose -f docker-compose-dev.yaml --profile frontend up -d --build

Для запуска всего приложения (включая nginx) в PROD режиме (на http://localhost):

docker compose -f docker-compose-prod.yaml up -d --build

Аргумент --build необходимо использовать, если вы хотите быть уверены, что докер запустит контейнеры со всеми последними изменениями в коде. Если не использовать аргумент --build, Docker будет использовать последние собранные контейнеры. Также аргумент --build рекомендуется использовать в случае перехода с DEV на PROD версию Frontend, так как при сборке его контейнера используются переменные окружения.

Доступ к консоли внутри контейнера Backend:

docker exec -it django bash
# для создания суперюзеров
python manage.py createsuperuser

Настройки отправки почты

Для тестирования отправки почты зарегистрироваться на mailtrap.io и вставить в .env (.env.docker) собственные EMAIL_HOST_USER и EMAIL_HOST_PASSWORD (либо оставить имеющиеся, но письма будут приходить в ящик @angstorm)

Развертывание с Terraform:

terraform -chdir=terraform apply -target yandex_cm_certificate.hrportal
# output dns_challenge_cname = <dns challenge>
# подтвердить сертификат по DNS, создав cname запись <dns challenge>

terraform -chdir=terraform apply -target yandex_container_registry.hrportal
# output django_image_tag = <tag>
docker build backend -t <tag>
docker push <tag>

terraform -chdir=terraform apply

cd frontend
npm install
ng build
aws --endpoint-url=https://storage.yandexcloud.net/ s3 sync dist/out/assets s3://hrportal-static/assets
# перенести файлы сайта в браузер, в бакет hrportal-static

About

HR-portal for moving employees within the company written using Angular and Django

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •