Skip to content

Тестовое #1 для компании "NeKidaem"

Notifications You must be signed in to change notification settings

NechepurenkoA/nekidaem_test

Repository files navigation

NeKidaem тестовое #1

Blog REST API

Имеется возможность подписываться на блоги пользователей и делать посты. Пользователи добавляются ТОЛЬКО через админку!

Используемый стек

Python Django DRF Postgres Nginx Docker

Задание

Задание можно посмотреть по этой ссылке click

Архитектура проекта

Директория Описание
infra Файлы для запуска с помощью Docker, настройки Nginx
src/backend Код Django приложения

Доступные "ручки"

Route Method Описание
{HOST}/obtain-token/ POST Получение токена пользователя
{HOST}/blogs/<blog_id:int>/follow/ POST Подписка на блог
{HOST}/blogs/<blog_id:int>/unfollow/ DELETE Отписка от блога
{HOST}/news/ GET Новостная лента
{HOST}/news/ POST Сделать пост
{HOST}/news/<post_id:int>/ DELETE Удалить пост
{HOST}/news/<post_id:int>/send_to_read/ POST Отправить в "прочтенные"

Подготовка

Требования

  1. Python 3.12
    Убедитесь, что у вас установлена нужная версия Python или активирована в pyenv.

  2. Poetry
    Зависимости и пакеты управляются через poetry. Убедитесь, что poetry установлен на вашем компьютере и ознакомьтесь с документацией.
    Установка зависимостей

    poetry install
    

    Также будет создано виртуальное окружение, если привычнее видеть его в директории проекта, то используйте настройку virtualenvs.in-project

  3. Docker

  4. pre-commit (если хотите поиграться с проектом) Документация
    При каждом коммите выполняются хуки (автоматизации) перечисленные в .pre-commit-config.yaml. Если не понятно какая ошибка мешает сделать коммит можно запустить хуки вручную и посмотреть ошибки:

    pre-commit run --all-files

    Для упрощения можно установить pre-commit

    pre-commit install

Разворачиваем проект в контейнерах

Создаём .env файл в папке infra и заполняем его по образцу .env.example.

Переходим в директорию infra/

cd infra/

Поднимаем контейнеры

docker-compose -f docker-compose.yml up -d

Администрирование развёрнутого приложения

Создание суперпользователя

Используйте команду ниже и следуйте инструкциям в терминале (перед этим откройте новое окно)

docker exec -it backend python manage.py createsuperuser

Разворачиваем проект локально

Устанавливаем зависимости

Создаём .env файл в корневой директории проекта и заполняем его по образцу .env.example

Переходим в директорию src/backend/

cd src/backend/

Применяем миграции

python manage.py migrate

Запускаем development-сервер Django

python manage.py runserver

About

Тестовое #1 для компании "NeKidaem"

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published