Kittygram — это приложение для обмена фотографиями кошек.
- Загружать карточку с информацией о кошке — фото, имя, год рождения, цвет кота и достижения
- Редактировать информацию о кошке
- Удалять карточку с кошкой
- Клонировать репозиторий:
git clone https://github.com/levinadev/kittygram_final.git
cd kittygram_final
- Создать файл
.envв корне проекта на основе шаблона:
cp .env.example .env
При необходимости измените значения переменных в .env (например, DJANGO_SECRET_KEY и DJANGO_ALLOWED_HOSTS) под ваше окружение.
- Запуск:
docker-compose -f docker-compose.production.yml up -d
-
После этого проект будет доступен по адресу: http://127.0.0.1:9000/
-
Остановка контейнеров:
docker-compose -f docker-compose.production.yml down
- Регистрация
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
}
- Получить токен
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"
}
- Получить список кошек
curl -X GET http://127.0.0.1:8000/api/cats/ \
-H "Authorization: Token your_token"
- Создать кошку
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
}'
- Обновить кошку
curl -X PATCH http://127.0.0.1:8000/api/cats/2/ \
-H "Authorization: Token your_token" \
-H "Content-Type: application/json" \
-d '{"name": "Рыжик"}'
- Удалить кошку
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
- Имя: Анна
- Email: anna45dd@yandex.ru
- GitHub: https://github.com/levinadev