Skip to content

REST API and React SPA for site with food recipes.

Notifications You must be signed in to change notification settings

melax08/recipes_site

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

77 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Лучший сайт с рецептами

recipes workflow

Описание проекта:

Данный проект содержит в себе полноценный сервис, который позволяет людям делиться рецептами, смотреть рецепты других людей, добавлять их в избранное, в список покупок, скачивать список ингредиентов для покупки, подписываться на понравившихся авторов.

В проекте присутствует:

  • Полноценный SPA в качестве фронтенда;
  • API-бэкенд;
  • Инфраструктурные скрипты, позволяющие быстро развернуть проект на сервере;
  • Документация;
  • 100% покрытие API тестами.

Подробнее обо всем об этом в следующем разделе.

Технологии:

В проекте используются следующие технологии:

  1. В качестве фронтенда выступает одностраничное приложение на фреймворке React, которое взаимодействует с бэкенд-API.
  2. В качестве бэкенда выступает API-приложение, которое написано с использованием python веб-фреймворка Django Rest Framework. Фронтенд уже настроен на использование данного API, кроме того, данное API можно использовать для работы с другими сервисами, например его можно интегрировать в различные чат-боты, либо в мобильное приложение. Подробнее см. раздел с документацией.
  3. Все приложения в сервисе готовы к работе в docker-контейнерах. Подробнее см. раздел с установкой.
  4. Настроено CI CD с автоматическими unittest и деплоем на сервер с помощью github actions.

Автор:

Илья Малашенко (github: melax08, telegram: @ScreamOFF)

Установка:

Проект автоматически разворачивается на боевом сервере через github actions. Настроить под себя можно в файле .github/workflows/recipes-workflow.yml

Инструкция по ручной установке на сервер:

  1. Клонируем репозиторий с проектом на удаленном сервере:
git clone https://github.com/melax08/recipes_site.git
  1. Переходим в каталог с инфраструктурными скриптами:
cd recipes_site/infra
  1. Заполняем файл .env в соответствии с примером:
mv .env_example .env
nano .env
  1. В файле nginx.conf указываем домен или IP (или и то и другое) для вашего сайта в секции server_name.

  2. Запускаем docker-compose (должен быть предварительно установлен на сервере):

sudo docker-compose up -d

или

docker compose up -d

Документация:

После запуска проекта, API-документация будет доступа по адресу: http:https://127.0.0.1/api/docs/

Вместо 127.0.0.1 - нужно подставить домен или IP вашего сайта.