Собери приложение для складского учёта товаров. Я не разработчик: структуру данных, связи и экраны продумай сам, а результатом отдай один HTML-файл, внутри которого уже лежат стили и скрипты. Внешние библиотеки и серверная часть не нужны.
Про мой склад: помещение небольшое, товар лежит на стеллажах и в зоне комплектации. Учёт сейчас — таблица плюс блокнот, поэтому количество на полке и в файле расходится, а дефицит обнаруживается в момент отгрузки.
Что важнее всего: остаток должен быть следствием операций. Любое изменение количества — запись с датой, причиной и комментарием, а не перезапись цифры. Итоговое количество по позиции всегда вычисляется из этих записей.
Сущности:
1) Позиция: наименование, артикул, категория, единица (шт, кг, упак, м), цена закупки, порог запаса, зона хранения, текущий статус.
2) Операция: вид (поступление или списание), позиция, количество, дата и время, контрагент или получатель, комментарий, автор.
3) Контрагент: наименование, контактное лицо, телефон, срок поставки, список поставок и сумма за период.
4) Категория: наименование и число позиций внутри.
5) Закупка: позиции, ушедшие ниже порога, с рекомендуемым количеством и флажком «заказано».
Статусы: «в наличии», «ниже порога», «закончилось». Статус вычисляется сам после каждой операции; вручную его не выставляют. Строку, ушедшую под порог, выделяй цветом в таблице остатков.
Экраны:
- Остатки: наименование, артикул, категория, количество, порог, цена, стоимость остатка, статус. Поиск по наименованию и артикулу, фильтры по категории и статусу, сортировка по количеству и стоимости. Внизу — итоги в штуках и в рублях.
- Поступление: позиция, количество, цена за единицу, контрагент, дата, комментарий. Позиций в одной поставке может быть несколько.
- Списание: позиция, количество, получатель либо причина (цех, продажа, брак), дата, комментарий. Списывать больше имеющегося запрещено — выводи понятное предупреждение по-русски, без кодов ошибок.
- Карточка позиции: все поля, текущее количество, лента операций с датами, видом и пояснением, средний расход в месяц, кнопки «Поступление» и «Списание» здесь же.
- Закупка: только позиции под порогом, рекомендуемое количество, флажок «заказано», группировка по контрагенту.
Детали:
- Хранение — в браузере. Сделай две кнопки: сохранить архив с данными и восстановить его из файла.
- Отрицательных количеств быть не должно.
- Числа показывай моноширинным шрифтом, разряды разделяй пробелом.
- Лист закупки должен печататься на одной странице А4.
- Язык интерфейса русский, оформление светлое и спокойное: белый фон, тонкие линии, синий акцент только на главных кнопках. Элементы крупные, чтобы попадать пальцем с телефона.
- Сначала кратко опиши структуру и экраны, затем выдай полный код одним файлом, который открывается двойным щелчком.