Giter Club home page Giter Club logo

foodhelper-project-react's Introduction

Проект Foodhelper


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

Cайт Foodhelper («Помощник подбора продуктов»).
На этом сервисе пользователи смогут публиковать рецепты, подписываться на публикации других пользователей, добавлять понравившиеся рецепты в список «Избранное», а перед походом в магазин скачивать сводный список продуктов, необходимых для приготовления одного или нескольких выбранных блюд.

Основные возможности проекта

  • Создание пользователей сайта;
  • Просмотр списка рецептов;
  • Создание, удаление и редактировани рецептов;
  • Добавление рецептов в избранное;
  • Добавления рецептов в список покупок;
  • Возможность подписки на других авторов;
  • Получение списка необходимых к покупке ингредиентов в виде txt-файла.

Технологии использованные в проекте:

  • Python 3.9
  • Django 3.2
  • Django Rest Framework 3.14
  • Gunicorn
  • PostgreSQL

CI CI CI CI CI CI CI


Схема API-проекта:

Схема API - Это схема API проекта.


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

Для запуска проекта на локальной машине у вас должен быть установлен Docker.

  • Устанавливаем Docker и Docker compose:
sudo apt install docker.io
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  • Устанавливаем разрешение для docker compose
sudo chmod +x /usr/local/bin/docker-compose
  • Клонируйте репозиторий:
git clone [email protected]:MartiAndrew/foodgram-project-react.git
  • Создайте .env файл в корне проекта. Его содержание в файле env.example, который находится в корне проекта.

Все последующие команды выполняются с правами суперпользователя

  • Выполните команду:
docker compose up -d --build
  • Соберите статику:
docker compose exec backend python manage.py collectstatic --no-input
  • Создайте файлы миграций:
docker compose exec backend python manage.py makemigrations 
  • Примените миграции:
docker compose exec backend python manage.py migrate
  • Создайте суперпользователя Django:
docker compose exec backend python manage.py createsuperuser
  • Для загрузки данных из csv файлов:
docker compose exec backend python manage.py import_csv

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

  • Клонируйте репозиторий:
git clone [email protected]:MartiAndrew/foodgram-project-react.git
  • Соединяемся с сервером:
ssh -i ~/.ssh/<путь до вашего закрытого ключа> <имя пользователя на сервере>@<ip-сервера>
  • Устанавливаем Docker и Docker compose:
sudo apt install docker.io
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  • Устанавливаем разрешение для docker compose
sudo chmod +x /usr/local/bin/docker-compose
  • Создаём домашнюю директорию проекта. Далее создаём .env файл в корне проекта. Его содержание в файле env.example, который находится в корне проекта.
mkdir foodhelper && cd foodhelper/
touch .env
  • находясь на локальном компьютере в корневой директории скаченного проекта зайдите в папку infra и выполните команду копирования её содержимого
scp -i ~/.ssh/<путь до вашего закрытого ключа> . <имя пользователя на сервере>@<ip-сервера>:/home/yc-user/foodhelper/infra/
  • Заходим снова на сервер, как показано ранее. И выполняем команду запуска docker-compose:
cd foodhelper/infra/ && sudo docker-compose up -d
  • Соберите статику:
docker compose exec backend python manage.py collectstatic --no-input
  • Создайте файлы миграций:
docker compose exec backend python manage.py makemigrations 
  • Примените миграции:
docker compose exec backend python manage.py migrate
  • Создайте суперпользователя Django:
docker compose exec backend python manage.py createsuperuser
  • Для загрузки данных из csv файлов:
docker compose exec backend python manage.py import_csv

Выше описанная процедура может быть автоматизирована и произведено развертывание и управление процессами CI/CD с помощью workflow main.yml. В конкретном случае запуск происходит автоматически при отправке проекта на сервер разработчика (git push). Предварительно на github action создаются секретные ключи(DOCKER_PASSWORD, DOCKER_USERNAME, (HOST, SSH_KEY, SSH_PASSPHRASE, USER) - данные для аутентификации на виртуальной машине)


Пример главной страницы работающего проекта

Проект доступен по адресу - Главная страница проекта.


Над проектом работал: Мишков Андрей

foodhelper-project-react's People

Contributors

martiandrew avatar

Stargazers

 avatar

Watchers

 avatar

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.