Мобильное приложение и веб-сервис для товароведов «Фианит-ломбарда»

«Фианит-Ломбард»
[2017]
Время160 часов
Дата запуска01.02.2017
Сложностьсредняя

Задачи проекта

 

  1. Разработать мобильное приложение, которое облегчит работу товароведов и сократит затраты на подготовку и хранение фото изделий, сдаваемых в залог.
  2. Разработать веб-сервис для полноценной работы мобильного приложения.

 

Разработать мобильное приложение, которое облегчит работу товароведов и сократит затраты на подготовку и хранение фото изделий, сдаваемых в залог.

 

На первый взгляд задача довольно простая:

  • фотографировать изделия
  • отправлять фотографии в файлохранилище
  • делать отметку в учетной системе 1C о выполнении задачи

 Но дьявол — в мелочах! Подробнее об этом в описании процесса разработки.

 

 

 

Выполненные работы

Приложение на Android?

К приложению предъявлялись следующие основные требования:

  • возможность авторизации/деавторизации пользователя
  • работа в реальном времени (готовность в любой момент принять задачу на фотографирование)
  • возможность добавления любого количества фотографий, их удаление и отправка
  • возможность добавить фотографии к уже выполненной ранее задаче
  • все отснятые фотографии должны быть загружены на ftp и автоматически сделана пометка в 1C о количестве отснятых фотографий по задаче
  • стабильная работа на любых Android-смартфонах от версии 4.1 и выше
  • информирование пользователя о любых ошибках, проблемах или препятствиях, мешающих тому или иному действию, изменениях статусов выполнения задачи и т. п.
  • простой и понятный пользовательский интерфейс, особенно — для не опытного пользователя
  • «защита от дурака» (адекватное реагирование на любые действия пользователя и операционной системы смартфона)
  • соблюдение требований по безопасности к передаваемым данным

Потенциально все эти задачи может выполнять само мобильное приложение:
и файлы на ftp заливать, и с 1C интегрироваться, и имитировать работу в реальном времени посредством периодических обращений к 1C с запросом задачи. Приложение могло бы даже локальную базу данных хранить о статусах той или иной задачи.

Но подобное решение очень сомнительно по целому ряду причин, поэтому для обслуживания приложения и связи его со всеми звеньями цепи нужен веб-сервис.

Веб-сервис + приложение!

Веб-сервис — это как серый кардинал — его никто не видит, но он делает самую сложную работу:

  • отвечает на запросы всех копий мобильного приложения:
    • авторизует
    • проверяет сессию
    • принимает фотографии
    • и другие
  • поддерживает постоянное соединение со всеми копиями мобильного приложения
  • принимает задачи на фотографирование от 1C
  • уведомляет в реальном времени нужную копию мобильного приложения о новой задаче
  • загружает фотографии на ftp
  • устанавливает связь с 1C и делает отметку о результатах выполнения задачи

Также веб-сервис спроектирован в монолитной архитектуре, как набор слабосвязанных асинхронных сервисов. В дальнейшем при необходимости его легко можно будет разбить на несколько отдельных микросервисов, что позволит выдерживать любые нагрузки.

Что значит при необходимости спросите Вы? Разве работа уже не завершена?

Отличный вопрос! Но всегда нужно учитывать дальнейшие варианты развития продукта. В будущем клиент захочет что-то добавить, расширить функционал и, чтобы каждый раз не начинать все с начала и не переписывать все с нуля при любых доработках, нужно заранее планировать архитектуру.

И это все?

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

  • Development — версия для разработчика (приложение и веб-сервис). Это версия приложения на телефоне разработчика, которая работает в связке с веб-сервисом на машине разработчика
  • Staging — версия для тестирования IT-шниками клиента, которые принимают работу. Это версия на телефонах тестировщиков клиента, которая работает в связке с веб-сервисом на сервере клиента, т. е. должна быть публично доступна в сети. Также для этой версии есть отдельная тестовая 1C и отдельный тестовый ftp.
  • Production — рабочая или боевая версия. С этой версией все понятно — приложения установлены на смартфонах товароведов.

И все эти версии приложений и веб-сервисов надо правильно обслуживать — устанавливать и обновлять. Ведь все должно происходить быстро и ошибки, связанные с человеческим фактором должны быть исключены — нельзя, чтобы тестовое приложение связывалось с рабочим веб-сервисом и наоборот, или рабочий веб-сервис загружал файлы на тестовый ftp или получал задачи от тестовой 1C и т. д. Комбинаций ошибок не мало.

И эту проблему мы предусмотрели и решили заранее. 

Вот это да!

Таким образом исходная задача, которая реально отражала лишь 10–15% всех проделанных работ была решена во время и с максимальной заботой о клиенте и его бизнесе с применением самых современных технологий.

Дизайн сайта

Пример дизайна 1: Мобильное приложение и веб-сервис для товароведов «Фианит-ломбарда»
Пример дизайна 2: Мобильное приложение и веб-сервис для товароведов «Фианит-ломбарда»
Пример дизайна 3: Мобильное приложение и веб-сервис для товароведов «Фианит-ломбарда»
Пример дизайна 4: Мобильное приложение и веб-сервис для товароведов «Фианит-ломбарда»
Пример дизайна 5: Мобильное приложение и веб-сервис для товароведов «Фианит-ломбарда»