mmetelev / education

API для представления структуры компании.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

API для представления структуры компании.


Описание задачи

Разработать API для представления структуры компании:

  • Список департаментов
  • Список сотрудников (как общий, так и по департаментам отдельно)

Функционал

  • Получения списка сотрудников + фильтр для поиска по фамилии и по id департамента
  • Добавление/удаление сотрудников через API
  • API для получения списка департаментов (включает искусственное поле с числом сотрудников + поле с суммарным окладам по всем сотрудникам)
  • API со списком сотрудников - с пагинацией, API со списком департаментов - без пагинации
  • Доступ к списку сотрудников - только для авторизованных пользователей, доступ к списку департаментов - доступен и для анонимных пользователей

Дополнительно реализовано

  • Разворачивание проекта с помощью Docker
  • Документация Swagger / Redoc
  • Unit тестирование
  • Установлен Silk и проведена оптимизация

Инструкция по развертыванию

  1. Клонируйте проект из репозитория.
  2. Создайте файл .env в корневой директории и укажите ваши настройки.
    DEBUG=1
    DJANGO_SECRET_KEY=
    DJANGO_ALLOWED_HOSTS=*
    CORS_ALLOWED_HOSTS=http://127.0.0.1:8000 http://localhost:3000
    DB_ENGINE=django.db.backends.postgresql
    POSTGRES_DB=
    POSTGRES_USER=
    POSTGRES_PASSWORD=
    DB_HOST=
  1. Создайте контейнер
    docker-compose build
  1. Запустите контейнер.
    docker-compose up
  1. Создайте суперпользователя.
    docker-compose run web sh -c "python manage.py createsuperuser"
  1. Запуск тестов
    docker-compose run web sh -c "python manage.py test"

Сервис доступен по ссылке:

http://localhost:8000/

Документация доступна по адресу:

http://localhost:8000/swagger/

http://localhost:8000/redoc/

About

API для представления структуры компании.


Languages

Language:Python 82.5%Language:CSS 17.1%Language:HTML 0.4%Language:Dockerfile 0.0%