«Продуктовый помощник»: приложение, на котором пользователи публикуют рецепты, подписываться на публикации других авторов и добавлять рецепты в избранное. Сервис «Список покупок» позволит пользователю создавать список продуктов, которые нужно купить для приготовления выбранных блюд.
- Клонируйте репозиторий с проектом на свой компьютер. В терминале из рабочей директории выполните команду:
git clone https://github.com/xofmdo/foodgram-project-react.git
- Установить и активировать виртуальное окружение
source /venv/bin/activate
- Установить зависимости из файла requirements.txt
python -m pip install --upgrade pip
pip install -r requirements.txt
- Создать файл .env в папке проекта:
DB_ENGINE=django.db.backends.postgresql # указываем, что работаем с postgresql
DB_NAME=postgres # имя базы данных
POSTGRES_USER=postgres # логин для подключения к базе данных
POSTGRES_PASSWORD=postgres # пароль для подключения к БД (установите свой)
DB_HOST=db # название сервиса (контейнера)
DB_PORT=5432 # порт для подключения к БД
DEBUG=0
python manage.py migrate
- В папке с файлом manage.py выполнить команду:
python manage.py runserver
- Создание нового супер пользователя
python manage.py createsuperuser
python manage.py collectstatic --no-input
python manage.py add_tags_from_data
python manage.py add_ingidients_from_data
Установите Docker, используя инструкции с официального сайта:
- для Windows и MacOS
- для Linux. Отдельно потребуется установть Docker Compose
Клонируйте репозиторий с проектом на свой компьютер. В терминале из рабочей директории выполните команду:
git clone https://github.com/xofmdo/foodgram-project-react.git
- в Docker cоздаем образ :
docker build -t foodgram .
Выполните команду:
cd ../infra
docker-compose up -d --build
- В результате должны быть собрано три контейнера, при введении следующей команды получаем список запущенных контейнеров:
docker-compose ps
Назначение контейнеров:
IMAGES | NAMES | DESCRIPTIONS |
---|---|---|
nginx:1.19.3 | infra-_nginx_1 | контейнер HTTP-сервера |
postgres:12.4 | infra-_db_1 | контейнер базы данных |
xofmdo/foodgram_back:latest | infra-_backend_1 | контейнер приложения Django |
xofmdo/foodgram_ront:latest | infra-_frontend_1 | контейнер приложения React |
docker-compose exec backend python manage.py migrate
docker-compose exec backend python manage.py createsuperuser
docker-compose exec backend python manage.py collectstatic --no-input
docker-compose exec backend python manage.py add_tags_from_data
docker-compose exec backend python manage.py add_ingidients_from_data
Адрес | Описание |
---|---|
127.0.0.1 | Главная страница |
127.0.0.1/admin/ | Для входа в панель администратора |
127.0.0.1/api/docs/ | Описание работы API |
Функционал | Неавторизованные пользователи | Авторизованные пользователи | Администратор |
---|---|---|---|
Доступна главная страница. | ✔️ | ✔️ | ✔️ |
Доступна и работает форма авторизации | ✔️ | ✔️ | ✔️ |
Доступна страница отдельного рецепта. | ✔️ | ✔️ | ✔️ |
Доступна и работает форма регистрации. | ✔️ | ✔️ | ✔️ |
Доступна страница «Мои подписки» | ❌ | ✔️ | ✔️ |
Можно подписаться и отписаться на странице рецепта | ❌ | ✔️ | ✔️ |
Можно подписаться и отписаться на странице автора | ❌ | ✔️ | ✔️ |
При подписке рецепты автора добавляются на страницу «Мои подписки» и удаляются оттуда при отказе от подписки. | ❌ | ✔️ | ✔️ |
Доступна страница «Избранное» | ❌ | ✔️ | ✔️ |
На странице рецепта есть возможность добавить рецепт в список избранного и удалить его оттуда | ❌ | ✔️ | ✔️ |
На любой странице со списком рецептов есть возможность добавить рецепт в список избранного и удалить его оттуда | ❌ | ✔️ | ✔️ |
Доступна страница «Список покупок» | ❌ | ✔️ | ✔️ |
На странице рецепта есть возможность добавить рецепт в список покупок и удалить его оттуда | ❌ | ✔️ | ✔️ |
На любой странице со списком рецептов есть возможность добавить рецепт в список покупок и удалить его оттуда | ❌ | ✔️ | ✔️ |
Есть возможность выгрузить файл (.txt) с перечнем и количеством необходимых ингредиентов для рецептов из «Списка покупок» | ❌ | ✔️ | ✔️ |
Ингредиенты в выгружаемом списке не повторяются, корректно подсчитывается общее количество для каждого ингредиента | ❌ | ✔️ | ✔️ |
Доступна страница «Создать рецепт» | ❌ | ✔️ | ✔️ |
Есть возможность опубликовать свой рецепт | ❌ | ✔️ | ✔️ |
Есть возможность отредактировать и сохранить изменения в своём рецепте | ❌ | ✔️ | ✔️ |
Есть возможность удалить свой рецепт | ❌ | ✔️ | ✔️ |
Доступна и работает форма изменения пароля | ❌ | ✔️ | ✔️ |
Доступна возможность выйти из системы (разлогиниться) | ❌ | ✔️ | ✔️ |
Доступна и работает система восстановления пароля. | ❌ | ✔️ | ✔️ |
Изменять пароль любого пользователя. | ❌ | ❌ | ✔️ |
Создавать/блокировать/удалять аккаунты пользователей. | ❌ | ❌ | ✔️ |
Редактировать/удалять любые рецепты. | ❌ | ❌ | ✔️ |
Добавлять/удалять/редактировать ингредиенты. | ❌ | ❌ | ✔️ |
Добавлять/удалять/редактировать теги. | ❌ | ❌ | ✔️ |
Кузьмич Александр
email: [email protected]
telegram @xofmdo