Skip to content

Latest commit

 

History

17 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

Django + Stripe Test Task

Тестовое Django-приложение с интеграцией Stripe Checkout.

Приложение позволяет просматривать товары и заказы, создавать Stripe Checkout Session и переходить на страницу оплаты Stripe.

Demo

Приложение развернуто на Railway:

https://web-production-b54a0.up.railway.app/

Django Admin:

https://web-production-b54a0.up.railway.app/admin/

Данные для входа в админку: username: user

password: 123

Реализованные пункты из тестового задания

  • Django модель Item
  • API с GET /buy/{id} и GET /item/{id}
  • Решение есть на Github, а readme.md сейчас открыт)
  • Решение опупликовано онлайн, а логпас к админке указан выше
  • Запуск через Docker
  • Использование env
  • Просмотр моделей в админке
  • Модели Order, Discount и Tax

Примечание по Stripe Checkout

В тестовом задании для перенаправления пользователя на страницу оплаты просят использовать stripe.redirectToCheckout() с session_id.

В документации я нашел, что redirectToCheckout больше не поддерживается в актуальной версии Stripe.js. Поэтому сделал как в документации Stripe сейчас:

  • backend создаёт Checkout Session и возвращает её id и url;
  • frontend получает данные с помощью fetch();
  • переход на Stripe Checkout выполняется через window.location.href = session.url.

Получилось, что требование тестового задания сохранено, но устаревший способ перенаправления заменён на актуальный.

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

Клонируйте репозиторий и перейдите в папку проекта.

Создайте файл .env на основе .env.example и укажите необходимые переменные окружения.

Через Docker

docker compose up --build

Приложение будет доступно по адресу:

http://127.0.0.1:8000/

Без Docker

Установите зависимости:

pip install -r requirements.txt

Примените миграции и запустите сервер:

python manage.py migrate

python manage.py runserver

Фидбек

Спасибо большое за такое интересное тестовое задание! В целом, небольшие проблемы возникли только с Docker и деплоем так как раньше ни того, ни того делать не приходилось, хотя знал, что рано или поздно придется. Постарался максимально глубоко разобраться в той части документации Stripe, которая требуется для выполнения задания, а над Docker и деплоем (в частности Railway) пришлось попотеть, но сейчас все работает. Жду Вашего фидбека)

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages