Skip to content

levinadev/kittygram_final

Repository files navigation

Kittygram

CI/CD

Kittygram — это приложение для обмена фотографиями кошек.

Демо

Возможности

  • Загружать карточку с информацией о кошке — фото, имя, год рождения, цвет кота и достижения
  • Редактировать информацию о кошке
  • Удалять карточку с кошкой

Установка и запуск локально

  1. Клонировать репозиторий:
git clone https://github.com/levinadev/kittygram_final.git
cd kittygram_final
  1. Создать файл .env в корне проекта на основе шаблона:
cp .env.example .env

При необходимости измените значения переменных в .env (например, DJANGO_SECRET_KEY и DJANGO_ALLOWED_HOSTS) под ваше окружение.

  1. Запуск:
docker-compose -f docker-compose.production.yml up -d
  1. После этого проект будет доступен по адресу: http://127.0.0.1:9000/

  2. Остановка контейнеров:

docker-compose -f docker-compose.production.yml down

Примеры запросов к API

  1. Регистрация
curl -X POST http://127.0.0.1:8000/api/token/ \
  -H "Content-Type: application/json" \
  -d '{"username": "your_username", "password": "your_password"}'

Ответ:

{
    "email": "",
    "username": "your_username",
    "id": 4
}
  1. Получить токен
curl -X POST http://127.0.0.1:8000/api/token/login/ \
  -H "Content-Type: application/json" \
  -d '{"username": "your_username", "password": "your_password"}'

Ответ:

{
  "auth_token": "your_token"
}
  1. Получить список кошек
curl -X GET http://127.0.0.1:8000/api/cats/ \
  -H "Authorization: Token your_token"
  1. Создать кошку
curl -X POST http://127.0.0.1:8000/api/cats/ \
  -H "Authorization: Token your_token" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Барсик",
    "color": "#000000",
    "birth_year": 2020,
    "achievements": [{"achievement_name": "Лучший охотник"}],
    "image": null
  }'
  1. Обновить кошку
curl -X PATCH http://127.0.0.1:8000/api/cats/2/ \
  -H "Authorization: Token your_token" \
  -H "Content-Type: application/json" \
  -d '{"name": "Рыжик"}'
  1. Удалить кошку
curl -X DELETE http://127.0.0.1:8000/api/cats/2/ \
  -H "Authorization: Token your_token"

Технологии

  • Python 3.11
  • Django 3.2
  • Django REST Framework
  • PostgreSQL 13
  • Docker & Docker Compose
  • GitHub Actions (CI/CD)
  • React (Frontend)
  • Gunicorn
  • Nginx

Автор

About

Kittygram — приложение для обмена фотографиями кошек. 📒Яндекс Практикум

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors