Giter VIP home page Giter VIP logo

foodgram's Introduction

Foodgram

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

Демо проекта

Демо проекта доступно по адресу http://foodgram.ipadla.org

Докуменация к API http://foodgram.ipadla.org/api/docs/

Созданы пользователи:

login email password
admin [email protected] 123123qaz
moder [email protected] 123123qaz
user [email protected] 123123qaz

Backend

CI YamDB workflow

В рамках дипломного проекта реализован.

Технологии

Описание приложений и api

Тесты

Проект содержит тесты (как удивительно) И проходит проверку flake8

cd ./backend
python3.8 -m venv --prompt='foodgram' venv
pip install -U pip
pip install -Ur requirements.txt
source ./venv/bin/activate
pytest
flake8

Запуск проекта

Файл конфигруации .env

Файл конфигурации должен находиться в папке infra

Django использует python-dotenv для загрузки файла в процессе разработки, при деплое на сервер этот же файл используется для задания переменных окружения контейнера.

SECRET_KEY='Секретный ключ для django'
DB_ENGINE=django.db.backends.postgresql
DB_NAME=postgres
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
DB_HOST=db
DB_PORT=5432
Для разработки

Подготовлен специальный docker-compose-dev.yml запускающий контейнеры db, frontend и nginx

для nginx контейнера созданы специальные настройки, позволяющие nginx обращаться к хосту через host.containers.internal

В конфигурационный файл .env селдует добавить строку DEBUG=True и изменить на localhost, либо удалить ключ DB_HOST

Для запуска:

cd infra
docker-compose -f ./docker-compose-dev.yml up

Далее запускается виртуальное окружение Python:

cd ./backend
python3.8 -m venv --prompt='foodgram' venv
pip install -U pip
pip install -Ur requirements.txt
source ./venv/bin/activate
python manage.py migrate

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

python manage.py createsuperuser

Если необходимо - загрузка тестовых данных:

python manage.py loaddata ./data/fixtures.json

Запуск сервера разработки:

python manage.py runserver 0.0.0.0:8000
Для общего доступа
cd ./backend
docker-compose up --build
docker-compose exec backend python manage.py collectstatic --no-input
docker-compose exec backend python manage.py migrate

Далее по желанию:

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

docker-compose exec backend python manage.py createsuperuser

Загрузка тестовых данных:

docker-compose exec backend python manage.py loaddata \
/app/data/fixtures.json

foodgram's People

Contributors

ipadla 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.