Тестовое задание. Система управления заказами в кафе.
Тестовое задание
Описание: Необходимо разработать полнофункциональное веб-приложение на Django для управления заказами в кафе. Приложение должно позволять добавлять, удалять, искать, изменять и отображать заказы. Каждый заказ должен содержать следующие поля:- id (уникальный идентификатор, генерируется автоматически)
- table_number (номер стола)
- items (список заказанных блюд с ценами)
- total_price (общая стоимость заказа, вычисляется автоматически)
- status (статус заказа: “в ожидании”, “готово”, “оплачено”)
Функциональные требования:
- Добавление заказа: Через веб-интерфейс пользователь вводит номер стола и список блюд с ценами. Система автоматически добавляет заказ с уникальным ID, рассчитанной стоимостью и статусом “в ожидании”.
- Удаление заказа: Пользователь через веб-интерфейс выбирает заказ по ID и удаляет его из системы.
- Поиск заказа: Возможность поиска заказов по номеру стола или статусу через поисковую строку.
- Отображение всех заказов: Веб-страница с таблицей всех заказов, отображающая их ID, номер стола, список блюд, общую стоимость и статус.
- Изменение статуса заказа: Пользователь через интерфейс выбирает заказ по ID и изменяет его статус (“в ожидании”, “готово”, “оплачено”).
- Расчет выручки за смену: Отдельная страница или модуль для расчета общего объема выручки за заказы со статусом “оплачено”.
Будет плюсом:
- Документация: Аннотирование функций и переменных (например, с использованием typing). Подробное описание функций и основных блоков кода. README файл с инструкцией по установке и использованию приложения.
- Тестирование: Покрытие ключевых функций тестами с использованием unittest или Pytest.
- Дополнительные возможности: Возможность редактирования заказа (добавление или удаление блюд). Фильтрация списка заказов по статусу.
Требования к проекту:
- Корректность и полнота функционала.
- Чистота и читаемость кода.
- Обработка ошибок и исключений.
- Удобство использования веб-интерфейса.
- Структура проекта: Логическое разделение на приложения, модели, представления, шаблоны и маршруты.