Skip to content

netology-code/python-final-diplom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Дипломный проект профессии «Python-разработчик: расширенный курс»

Backend-приложение для автоматизации закупок

Цель дипломного проекта

Создадите и настроите проект по автоматизации закупок в розничной сети, проработаете модели данных, импорт товаров, API views.

Вам нужно:

  • разработать backend для сервиса заказа товаров,
  • усовершенствовать навыки работы с Django ORM через проработку моделей товаров и связанных сущностей,
  • реализовать импорт и экспорт товаров,
  • внедрить систему управления заказами,
  • оптимизировать методы с использованием асинхронности,
  • освоить работу со сторонними библиотеками и фреймворками,
  • подготовить документацию к проекту,
  • использовать AI инструменты для решения задач.

Чеклист готовности к работе над проектом

  1. Изучить материалы лекции подготовки к дипломной работе.
  2. Подготовить компьютер или виртуальную машину с ОС Linux или MacOS (не рекомендуем использовать Windows).
  3. Установить IDE с поддержкой Python: Pycharm, VS Code или др.
  4. Установить версию Python 3.10 или более позднюю.
  5. Установить AI-плагин из списка:

Инструкция к работе над проектом

Общее описание приложения

Приложение предназначено для автоматизации закупок в розничной сети через REST API.

Внимание! Все взаимодействие с приложением ведется через API запросы. Реализация фронтенд-приложения возможна только по желанию обучающегося

Пользователи сервиса:

  1. Клиент (покупатель):
  • делает ежедневные закупки по каталогу, в котором представлены товары от нескольких поставщиков,
  • в одном заказе можно указать товары от разных поставщиков,
  • пользователь может авторизироваться, регистрироваться и восстанавливать пароль через API.
  1. Поставщик:
  • через API информирует сервис об обновлении прайса,
  • может включать и отключать приём заказов,
  • может получать список оформленных заказов (с товарами из его прайса).

Задача

Необходимо разработать backend-часть сервиса заказа товаров для розничных сетей на Django Rest Framework.

Базовая часть:

  • разработка сервиса под готовую спецификацию (API),
  • возможность добавления настраиваемых полей (характеристик) товаров,
  • импорт товаров,
  • отправка накладной на email администратора (для исполнения заказа),
  • отправка заказа на email клиента (подтверждение приёма заказа).

Продвинутая часть (необязательная к выполнению, не влияет на получение зачёта):

  • экспорт товаров,
  • админка заказов (проставление статуса заказа и уведомление клиента),
  • выделение медленных методов в отдельные асинхронные функции (email, импорт, экспорт).

Обратите внимание!

В репозитории приведён готовый пример с базовой частью проекта. Вы можете работать с проектом, выбрав один из двух вариантов:

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

Вы можете интерпретировать текстовое описание проекта по-своему. Работа над дипломом - это в первую очередь творческий процесс. Главное - отсутствие плагиата (не сдавать работы других студентов).

Исходные данные для проекта

  1. Общее описание сервиса
  2. Спецификация (API) - 1 шт.
  3. Файлы yaml для импорта товаров - 1 шт.
  4. Базовый пример API Сервиса для магазина

Этапы разработки

Разработку backend рекомендуется разделить на следующие этапы.

Базовая часть:

  1. Создание и настройка проекта.
  2. Проработка моделей данных.
  3. Реализация импорта товаров.
  4. Реализация API views.
  5. Полностью готовый backend.

Продвинутая часть (выполняется по желанию, если базовая часть полностью готова):

  1. Реализация forms и views админки склада.
  2. Вынос медленных методов в задачи Celery.
  3. Создание docker-compose файла для приложения.

Разработку следует вести с использованием git (github/gitlab/bitbucket) с регулярными коммитами в репозиторий, доступный вашему дипломному руководителю. Старайтесь делать коммиты как можно чаще.

Этап 1. Создание и настройка проекта

Критерии достижения

  1. Вы имеете актуальный код данного репозитория на рабочем компьютере.
  2. У вас создан Django-проект, и он запускается без ошибок.

Для получения подробностей по данному этапу перейдите по ссылке.

Этап 2. Проработка моделей данных

Критерии достижения

  1. Созданы модели и их дополнительные методы.

Для получения подробностей по данному этапу перейдите по ссылке.

Этап 3. Реализация импорта товаров

Критерии достижения

  1. Созданы функции загрузки товаров из приложенных файлов в модели Django.
  2. Загружены товары из всех файлов для импорта.

Для получения подробностей по данному этапу перейдите по ссылке.

Этап 4. Реализация APIViews

Критерии достижения

  1. Реализованы API Views для основных страниц сервиса (без админки):
    • Авторизация
    • Регистрация
    • Получение списка товаров
    • Получение спецификации по отдельному товару в базе данных
    • Работа с корзиной (добавление, удаление товаров)
    • Добавление/удаление адреса доставки
    • Подтверждение заказа
    • Отправка email c подтверждением
    • Получение списка заказов
    • Получение деталей заказа
    • Редактирование статуса заказа

Для получения подробностей по данному этапу перейдите по ссылке.

Этап 5. Полностью готовый backend

Критерии достижения

  1. Полностью работающие API Endpoint'ы
  2. Корректно отрабатывает следующий сценарий:
    • пользователь может авторизироваться,
    • есть возможность отправки данных для регистрации и получения email с подтверждением регистрации,
    • пользователь может добавлять в корзину товары от разных магазинов,
    • пользователь может подтверждать заказ с вводом адреса доставки,
    • пользователь получает email с подтверждением после ввода адреса доставки,
    • пользователь может переходить на страницу «‎Заказы» и открывать созданный заказ.

Для получения подробностей по данному этапу перейдите по ссылке.

Полезные материалы

  1. Информация о сервисе
  2. Спецификация API
  3. Описание страниц сервиса

Продвинутая часть (выполняется по желанию, не влияет на получение зачёта)

Обязательное условие: базовая часть проекта полностью готова.

Этап 6. Реализация API views админки склада

Критерии достижения

  1. Реализованы API views для страниц админки сервиса.

Для получения подробностей по данному этапу перейдите по ссылке.

Этап 7. Вынос медленных методов в задачи Celery

Критерии достижения

  1. Создано Celery-приложение c методами:
    • send_email,
    • do_import.
  2. Создан view для запуска Celery-задачи do_import из админки.

Для получения подробностей по данному этапу перейдите по ссылке.

Этап 8. Создание docker-compose файла для приложения

  1. Создать docker-compose файл для сборки приложения.
  2. Предоставить инструкцию для сборки docker-образа.

Важно: не нарушайте дедлайн сдачи, возникающие вопросы задавайте в чате с дипломным руководителем.


Правила приёма дипломной работы

  1. Проект разместить в GitHub. Ссылка на дипломную работу должна оставаться неизменной, чтобы дипломный руководитель мог видеть ваш прогресс.
  2. Сдавать финальный вариант дипломной работы в личном кабинете Нетологии.

Критерии оценки

Зачёт по дипломной работе можно получить, если работа соответствует критериям:

  • работоспособный проект в репозитории с документацией по запуску,
  • выполненная базовая часть проекта,
  • наличие собственных комментариев к коду,
  • использование сторонних библиотек и фреймворков.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages