GithubHelp home page GithubHelp logo

yamdb_final-1's Introduction

CI и CD проекта api_yamdb

example workflow

Описание

Проект реализует REST API для работы с отзывами на различные произведения искусства. Он представлен в виде web-приложения и базы данных, поднятых в docker-контейнерах. API позволяет:

  • регистрировать пользователя с различными ролями (пользователь, модератор, администратор)
  • выполнять аутентификацию с помощью JWT
  • просматривать, создавать, редактировать и удалять произведения
  • просматривать, создавать и удалять жанры и категории произведений
  • просматривать, создавать, редактировать и удалять отзывы на произведения
  • просматривать, создавать, редактировать и удалять комментарии к отзывам
  • просматривать, создавать, редактировать и удалять пользователей (администратор)

Проект доступен по адресу http://51.250.18.97

Шаблон наполнения env-файла

DB_ENGINE=<...> # указываем, что работаем с postgresql
DB_NAME=<...> # имя базы данных
POSTGRES_USER=<...> # логин для подключения к базе данных
POSTGRES_PASSWORD=<...> # пароль для подключения к БД (установите свой)
DB_HOST=<...> # название сервиса (контейнера)
DB_PORT=<...> # порт для подключения к БД
SECRET_KEY=<...>	# ключ для settings.py

Как запустить проект

Клонировать репозиторий и перейти в него в командной строке:

https://github.com/apolwow/yamdb_final.git

Перейти в директорию с файлом docker-compose.yaml:

cd /infra

Собрать контейнеры и запустить их:

docker-compose up -d --build

Выполнить миграции, создать суперпользователя и собрать статику, выполнив поочередно команды:

docker-compose exec web python manage.py migrate
docker-compose exec web python manage.py createsuperuser
docker-compose exec web python manage.py collectstatic --no-input

Команда для заполнения базы данными:

docker-compose exec web python manage.py loaddata fixtures.json

Остановка проекта

Остановить контейнеры, с последующим их удалением:

docker-compose down -v

Основные использованные технологии

  • Python - язык программирования.
  • Django - свободный фреймворк для веб-приложений на языке Python.
  • Django REST Framework - мощный и гибкий набор инструментов для создания веб-API.
  • Simple JWT - плагин аутентификации JSON Web Token для Django REST Framework.
  • Docker - официальная документация Docker
  • Dockerfile - официальная документация Dockerfile
  • Docker Compose - официальная документация Docker Compose
  • YamDB - образ yamdb.
  • PostgreSQL — объектно-реляционная система управления базами данных (СУБД)
  • Nginx — веб-сервер

Автор

Лицензии

  • Этот проект использует MIT License

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.