Тестовое CRUD-приложение системы складского учёта на Django 3.0.8 с базой данных SQLite3.
Как запустить
Один из вариантов - использовать дистрибутив Linux и установленный Docker
(протестировано на Ubuntu 20.04 LTS с установленным docker.io 19.03.8).
Будут загружены Docker образы Nginx и Alpine с python3.8,
затем создан образ контейнера приложения Django и два volume - директории для базы данных и статических файлов.
Доступ к сайту будет осуществляться через контейнер Nginx (порт 8888).
Для установки нужно выполнить следующие команды в терминале:
- клонировать репозиторий в нужную директорию, перейти в неё и добавить скрипту
install.shразрешение на выполнение
$ git clone https://github.com/96tm/warehouse-management-test.git; cd warehouse-management-test; chmod +x ./install.sh- запустить скрипт установки, заменив
EMAIL_HOSTна адрес почтового сервера для отправки сообщений,
EMAIL_ADDRESSна email на указанном почтовом сервере (будет использоваться как email администратора),
EMAIL_PASSWORDна пароль для email,
CLIENT_EMAILна email для тестовых пользователей (можно такой же, какEMAIL_ADDRESS)
$ sudo ./install.sh "EMAIL_HOST" "EMAIL_ADDRESS" "EMAIL_PASSWORD" "CLIENT_EMAIL"База будет заполнена тестовыми данными.
Сайт должен быть доступен по адресу
localhost:8888.
Для входа на страницу администрирования можно использовать тестового пользователя admin
с паролем admin.
Для остановки и удаления приложения нужно выполнить следующие команды в терминале:
$ chmod +x ./uninstall.sh; sudo ./uninstall.shДля удаления Docker образов Alpine и Nginx:
sudo docker image rm python:3.8-alpine; sudo docker image rm nginx:latestЧто можно сделать + скриншоты
-
создать поставку на странице /cargo_new

-
создать покупку на странице /order;

-
выбрать созданные поставку и покупку на страницах admin/cargo/cargo и /admin/shipment/shipment;

-
на странице поставки нажать "Подтвердить получение поставки";
-
на странице покупки нажать "Подтвердить готовность к отправке" (если количество товаров в покупке превышает количество товаров на складе, кнопка будет скрыта).
