Skip to content

vasay09/MiniStorage

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MiniStorage

Краткое описание

Данное приложение - модель системы ведения учета на небольшом складе. Раньше, когда занимался языком Java, я уже делал что-то подобное (Warehouse), но с использованием Swing и JDBC. Теперь я решил повторить работу, но на другом уровне с использованием других технологий - Python и JS. И бэк- и фронт- часть написаны с нуля и самостоятельно.

Бэкенд работает на Django (использована версия 3.1) и Django Rest Framework (3.11.1) и разбит на два приложения: main и api. Первое предназначено для хранения моделей и размещения контроллеров, отдающих пользователю запрашиваемые страницы. Приложение api реализует функции api, выполнющие отельные запрашиваемые операции (такие, например, как построение отчетов, проведение документов, импорт данных).

Кроме того, я создал несколько django-команд, которые использовал для непосредственного тестирования работы интерфейса. Это команды:

  • clear_base (полная очистка БД)
  • load_test_products (загрузка тестового справочника товаров из xls-файла)
  • load_test_contractors (загрузка тестовго справочника контрагентов)
  • load_test_documents (создание тестовых документов)
  • load_storage_items (загрузка начальных остатков)
  • create_test_base (команда, объединяющая функциональность всех вышеперечисленных)

Также юнит-тестами покрыта критическая функциональность api: проведение и отмена проведения документов и формирование отчетов.

Для фронт-части я использовал jQuery, который изучал параллельно с работой над проектом и, чтобы обучение шло более эффективно, я старался делать основной упор при формировании страниц именно на jQuery. То есть вместе со страницей загружаются скрипты, которые затем запрашивают данные для страницы (например, список документов) и формируют на основе этих данных контент страницы.

Работа с приложением

Вход и различия в доступной функциональности

Страница входа. При входе в приложение формируется токен, который сохраняется в local storage и затем используется для обращения ко всем функциям api

screenshot

После входа пользователь попадает на главную страницу с меню выбора действий. Если пользователь зарегистрирован в системе как superuser для него доступен ряд дополнительных действий, к которым не могут обращаться другие пользователи:

screenshot

  • Администрирование (вход на стандартную страницу администрирования Django)

screenshot

  • Удаление помеченных объектов
  • Импорт справочника товаров
  • Управление остатками

Обычный пользователь не видит этих пунктов меню и может только просматривать остатки на складе, не имея возможность изменять их вручную:

screenshot

Справочник "Товары"

В справочнике доступен поиск товаров по наименованию и номеру товара. Также можно создавать товары, редактировать их, помечать на удаление, сортировать выводимые элементы по различным признакам (порядок сортировки изменяется щелчком по заголовкам столбцов).

screenshot

screenshot

screenshot

screenshot

Справочник "Контрагенты"

Функциональность данного справочника аналогичная функциональности справочника товаров.

screenshot

screenshot

Страница "Документы"

На этой странице пользователь может просматривать список документов (доступна фильтрация и сортировка списка по различным критериям) или отдельные документы, а также создавать приходные и расходные документы.

screenshot

screenshot

screenshot

При создании расходного документа товары выбираются из имеющихся на складе.

screenshot

screenshot

Отчеты

Сводный отчет по базе данных:

screenshot

Отчет по движениям товаров:

screenshot

Для этого отчета доступны фильтры по дате и номеру/наименованию товара:

screenshot

Если щелкнуть на строчке отчета, то можно получить сводную информацию по операциям с контрагентами по данному товару:

screenshot

Отчет по операциям с контрагентами похож по структуре на отчет по операциям с товарами:

screenshot

Также, если щелкнуть на строчку отчета можно получить информацию об операциях данного контрагента в разрезе товаров:

screenshot

Также можно скачать список товаров и контрагентов в формате xls:

screenshot

Удаление помеченных объектов

При выборе этого пункта происходит удаление всех помеченных объектов, для которых эта операция выполнима (нельзя удалить, например, проведенные документы, а также товары и контрагентов, на которые есть ссылки в документах).

screenshot

Импорт товаров

В меню "Сервис" доступна возможность импорта справочника товаров из файла xlsx. Импортированные товары будут добавлены к уже имеющимся в справочнике.

screenshot

Управление остатками

С помощью данного раздела приложения можно решать две задачи:

  • Просматривать текущие остатки (доступна возможность поиска по номеру и наименованию)

screenshot

  • Редактировать и добавлять остатки (если пользователь помечен как superuser)

screenshot

Журнал операций

Здесь отображаются операции, совершаемые пользователями приложения в порядке убывания даты их выполнения (самая последняя операция всегда вверху списка)

screenshot

screenshot

Последнее замечание

В тестовой базе данных, размещенной в данном репозитории созданы два пользователя:

  • admin (пароль admin)
  • ironman (пароль tk796799)

Приложение тестировалось на Windows 10 x64

About

Система ведения учета на небольшом складе

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HTML 49.5%
  • Python 44.3%
  • JavaScript 3.8%
  • CSS 2.4%