|
1 | 1 | # Электронный склад
|
2 | 2 |
|
3 |
| -Московская предпрофессиональная олимпиада школьников. |
| 3 | + |
| 4 | + |
| 5 | + |
| 6 | + |
| 7 | + |
4 | 8 |
|
5 |
| -Профиль "Информационные технологии". |
| 9 | +[Московская предпрофессиональная олимпиада школьников.](http://predprof.olimpiada.ru/) |
6 | 10 |
|
7 |
| -Командный кейс №5 "Электронный склад" |
| 11 | +[Профиль "Информационные технологии".](http://predprof.olimpiada.ru/it) |
8 | 12 |
|
9 |
| -[Исходный текст технического задания](https://github.com/W-A-L-L-3/electronic-storehouse/blob/main/docs/technical-requirements.pdf) |
| 13 | +**Командный кейс №5 "Электронный склад".** |
| 14 | +[Исходный текст технического задания](docs/technical-requirements.pdf) |
10 | 15 |
|
11 |
| -## Кратное описание |
| 16 | +## Навигация |
12 | 17 |
|
13 |
| -Информационный сервис обеспечивающий взаимодействие пользователей (операторов) с автоматизированным складом. |
| 18 | +* [Описание проекта](#chapter-0) |
| 19 | +* [Как начать](#chapter-1) |
| 20 | +* [Интерфейс приложения](#chapter-2) |
| 21 | +* [Ошибки](#chapter-3) |
| 22 | +* [Код](#chapter-4) |
| 23 | +* [Авторы](#chapter-5) |
| 24 | +* [Лицензия](#chapter-6) |
14 | 25 |
|
15 |
| -## Функциональность |
| 26 | +<a id="chapter-0"></a> |
| 27 | + |
| 28 | +## Описание проекта |
| 29 | + |
| 30 | +Информационный сервис, обеспечивающий взаимодействие пользователей (операторов) с автоматизированным складом. |
| 31 | + |
| 32 | +[Техническая документация](docs/technical-documentation.pdf) |
| 33 | + |
| 34 | +### Функциональность |
16 | 35 |
|
17 | 36 | 1. Добавление нескольких позиций из поставки на склад.
|
18 |
| -2. Отображение в виде списка позиций (товаров), с указанием ячейки, в которой товар находится на складе (по запросу в |
| 37 | +2. Отображение в виде списка позиций (товаров) с указанием ячейки, в которой товар находится на складе (по запросу в |
19 | 38 | пользовательском интерфейсе).
|
20 | 39 |
|
21 |
| -3. Выбор определенного товара (позиции), для осуществления выдачи его аппаратной частью. |
| 40 | +3. Выбор определенного товара (позиции) для осуществления выдачи его аппаратной частью. |
22 | 41 | 4. Наличие удалённого склада для позиций, которые невозможно разместить на основном складе.
|
23 | 42 | 5. Отображение в виде списка позиций (товаров), находящихся на удалённом складе.
|
24 | 43 |
|
| 44 | +<a id="chapter-1"></a> |
| 45 | + |
| 46 | +## :hammer: Как начать |
| 47 | + |
| 48 | +1. Установить [Python 3](https://www.python.org/downloads/) |
| 49 | +2. Установить модуль requests: ```pip install requests``` |
| 50 | + |
| 51 | + [Инструкция по установке модулей при помощи PIP](https://pythonru.com/baza-znanij/ustanovka-pip-dlja-python-i-bazovye-komandy) |
| 52 | + |
| 53 | +3. Скачать данный репозиторий |
| 54 | + * Вариант 1 |
| 55 | + 1. Установить [Git](https://git-scm.com/download/win) |
| 56 | + 2. Клонировать репозиторий |
| 57 | + ```bash |
| 58 | + git clone https://github.com/W-A-L-L-3/electronic-storehouse |
| 59 | + cd electronic-storehouse |
| 60 | + ``` |
| 61 | + * Вариант 2 - [Скачать ZIP](https://github.com/W-A-L-L-3/electronic-storehouse/archive/main.zip) |
| 62 | + |
| 63 | +4. Запустить `./API/app.py` |
| 64 | +5. Запустить `./main.py` |
| 65 | + |
| 66 | +<a id="chapter-2"></a> |
| 67 | + |
25 | 68 | ## Интерфейс приложения
|
26 | 69 |
|
27 | 70 | ### Главное окно
|
28 | 71 |
|
29 | 72 | #### До инициализации склада
|
30 | 73 |
|
31 |
| - |
| 74 | + |
32 | 75 |
|
33 | 76 | **1** - Инициализация склада.
|
34 | 77 |
|
35 |
| -При успешной инициализации появится всплывающие уведомление: |
36 |
| - |
37 |
| - |
38 |
| - |
39 |
| -Если произошла ошибка во время связи с API для инициализации: |
| 78 | +Уведомление об успешной инициализации склада: |
40 | 79 |
|
41 |
| - |
| 80 | + |
42 | 81 |
|
43 | 82 | #### После инициализации склада
|
44 | 83 |
|
45 |
| - |
| 84 | + |
46 | 85 |
|
47 | 86 | **2** - Добавление нескольких позиций из поставки на склад.
|
48 | 87 |
|
49 |
| -**3** - Отображение в виде списка позиций (товаров), с указанием ячейки, в которой товар находится на складе. |
| 88 | +**3** - Отображение в виде списка позиций (товаров) с указанием ячейки, в которой товар находится на складе. |
50 | 89 |
|
51 |
| -**4** - Выбор определенного товара (позиции), для осуществления выдачи его аппаратной частью. |
| 90 | +**4** - Выбор определенного товара (позиции) для осуществления выдачи его аппаратной частью. |
52 | 91 |
|
53 | 92 | **5** - Отображение в виде списка позиций (товаров), находящихся на удалённом складе.
|
54 | 93 |
|
55 |
| -____ |
56 |
| - |
57 | 94 | ### Окно для добавления товаров на склад
|
58 | 95 |
|
59 |
| - |
| 96 | + |
60 | 97 |
|
61 | 98 | **1** - Добавить строчку для ещё одного товара.
|
62 | 99 |
|
63 |
| -**2** - Отправить товары на склад. |
| 100 | +**2** - Отправить все товары на склад. |
64 | 101 |
|
65 | 102 | После двух нажатий кнопки **1**:
|
66 | 103 |
|
67 |
| - |
| 104 | + |
68 | 105 |
|
69 |
| -Корректный ввод позиций: |
| 106 | +_Корректный_ ввод позиций: |
70 | 107 |
|
71 |
| - |
| 108 | + |
72 | 109 |
|
73 |
| -Некорректный ввод позиций: |
| 110 | ++ Название - непустая строка |
| 111 | ++ Размеры - 3 натуральных числа, разделённых "\*" (длина\*ширина\*высота) |
| 112 | ++ Масса - натуральное число |
74 | 113 |
|
75 |
| - |
| 114 | +_Некорректный_ ввод позиций: |
76 | 115 |
|
77 |
| -При успешной отправке товаров на склад появится всплывающие уведомление: |
| 116 | + |
78 | 117 |
|
79 |
| - |
| 118 | +Уведомление об успешной отправке товаров на склад: |
80 | 119 |
|
81 |
| -Если значение в каком-либо из полей в поставке некорректно: |
| 120 | + |
82 | 121 |
|
83 |
| - |
| 122 | +### Окно для отображения позиций (товаров), находящихся на складе |
84 | 123 |
|
85 |
| -____ |
| 124 | + |
86 | 125 |
|
87 |
| -### Окно для отображения позиций (товаров), находящихся на складе |
| 126 | +### Окно для выбора определенного товара (позиции) для осуществления выдачи его аппаратной частью. |
88 | 127 |
|
89 |
| - |
| 128 | + |
90 | 129 |
|
91 |
| -____ |
| 130 | +При успешном выборе и выдаче товара появится всплывающие уведомление: |
92 | 131 |
|
93 |
| -### Окно для выбора определенного товара (позиции), для осуществления выдачи его аппаратной частью. |
| 132 | + |
94 | 133 |
|
95 |
| - |
| 134 | +### Окно для отображения позиций (товаров), находящихся на удалённом складе |
96 | 135 |
|
97 |
| -При успешном выборе и выдаче товара появится всплывающие уведомление: |
| 136 | + |
98 | 137 |
|
99 |
| - |
| 138 | +<a id="chapter-3"></a> |
100 | 139 |
|
101 |
| -Если товара с введённым названием нет на складе: |
| 140 | +## :heavy_exclamation_mark: Ошибки |
102 | 141 |
|
103 |
| - |
| 142 | +### Ошибка получения параметров при инициализации |
104 | 143 |
|
105 |
| -____ |
| 144 | + |
106 | 145 |
|
107 |
| -### Окно для отображения позиций (товаров), находящихся на удалённом складе |
| 146 | +**Возможные причины:** |
| 147 | + |
| 148 | +1. Не запущено API (см. пункт 4 раздела [Как начать](#chapter-1)). |
| 149 | +2. Какая-либо ошибка связи с API. |
| 150 | + |
| 151 | +### Некорректное значение в каком-либо из полей в поставке |
| 152 | + |
| 153 | + |
| 154 | + |
| 155 | +### Товар не найден |
| 156 | + |
| 157 | + |
| 158 | + |
| 159 | +**Причина:** |
| 160 | + |
| 161 | +Товара с введённым названием нет на складе. |
| 162 | + |
| 163 | +<a id="chapter-4"></a> |
| 164 | + |
| 165 | +## Код |
| 166 | + |
| 167 | +### Папки |
| 168 | + |
| 169 | ++ **API** - исходный код программной модели аппаратной части (взят |
| 170 | + с [ppo_it_5_2021](https://dt.miet.ru/gitlab/dt_smartpark/ppo_it_5_2021)) |
| 171 | ++ **server** - серверная часть приложения (моделирование работы склада, обращение к API) |
| 172 | ++ **gui** - клиентская часть приложения (графический интерфейс) |
| 173 | + |
| 174 | +### Используемые библиотеки |
| 175 | + |
| 176 | +* [tkinter](https://docs.python.org/3/library/tkinter.html) - графический интерфейс приложения |
| 177 | +* [json](https://docs.python.org/3/library/json.html) - работа с форматом json |
| 178 | +* [uuid](https://docs.python.org/3/library/uuid.html) - генерация случайного идентификатора товара |
| 179 | +* [pickle](https://docs.python.org/3/library/pickle.html) - хранение объекта модели склада в бинарном режиме |
| 180 | +* [requests](https://requests.readthedocs.io/en/master/) - составление HTTP-запросов |
| 181 | + |
| 182 | +<a id="chapter-5"></a> |
| 183 | + |
| 184 | +## :smile: Авторы |
| 185 | +<a href="https://github.com/Yu-Leo"> |
| 186 | + <img src="https://avatars3.githubusercontent.com/u/66430048?s=400&u=48f180775538c9967cc45bb4fc07ced723063a6e&v=4" width="50px"> |
| 187 | +</a> |
| 188 | +<a href="https://github.com/kholevenkovav"> |
| 189 | + <img src="https://avatars3.githubusercontent.com/u/56455393?s=400&u=baa1b3fb667896e8cc43b0a4902ada8b143e4d7b&v=4" width="50px"> |
| 190 | +</a> |
| 191 | +<a href="https://github.com/ASDF2357"> |
| 192 | + <img src="https://avatars3.githubusercontent.com/u/67108097?s=400&v=4" width="50px"> |
| 193 | +</a> |
| 194 | + |
| 195 | +<a id="chapter-6"></a> |
| 196 | + |
| 197 | +## :open_hands: Лицензия |
| 198 | + |
| 199 | +GNU General Public License v3.0. |
108 | 200 |
|
109 |
| - |
| 201 | +Полный текст в [LICENSE](LICENSE) |
0 commit comments