Министерство образованиея и науки РФ Федерального государственного автономного образовательного учреждения высшего образования

"Национальный исследовательский технологический университет МИСиС"

Курсовая научно исследовательская работа на тему: разработка приложения онлайн-кассы для мобильных устройств на базе Android

Выполнил:  Дырков А.В.

Руководитель:  Пантелеев С.В.

Актуальность работы

Поправки в «54-ФЗ» от 03.07.2016 вносят ряд правил, предъявляемых к ККТ при осуществлении расчетов на территории Российской Федерации в целях обеспечения интересов граждан и организаций, защиты прав потребителей

Цели курсовой научно-исследовательской работы

  • Анализ предметной области
  • Формирование требований
  • Анализ возможных решений

Retail - Торговля

Торговля - обширнейшая область предпринимательской деятельности и сфера приложения труда

Торговля в розницу

Розничная торговля - это завершающая форма продажи товаров конечному потребителю в небольших объемах через различные пункты розничной торговли.

Торговля в розницу

Розничная торговля включает в себя следующие функции:

  • закупка;
  • транспортировка;
  • хранение;
  • продажа товара.

Поправки в ФЗ-54

С 1 февраля 2017 года контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных

Поправки в ФЗ-54

ЭКЛЗ нужно заменить на фискальный накопитель, подключить кассу к интернету, заключить договор с оператором фискальных данных и отправлять чеки в электронном виде в ФНС через оператора фискальных данных.

Алгоритм взаимодействия с ФНС

Оператор фискальных данных

ОФД - организация, созданная в соответствии с законодательством Российской Федерации, находящаяся на территории Российской Федерации, получившая в соответствии с законодательством Российской Федерации о применении контрольно-кассовой техники разрешение на обработку фискальных данных

Фискальный накопитель

Фискальный накопитель - (криптографическое) средство защиты фискальных данных, является программно-аппаратным средством криптографической защиты фискальных данных (СКЗФД) и предназначен для обеспечения противодействия угрозам безопасности информации (фискальных данных) в составе контрольно-кассовой техники

Фискальный накопитель

Регистрация ККТ

  1. Подача заявления на регистрацию кассы в ИФНС через личный кабинет налогоплательщика онлайн на сайте nalog.ru. И сразу же -получение регистрационного номера ККТ.
  2. самостоятельная фискализация.
  3. получение карточки регистрации ККТ из ФНС.
  4. регистрация кассы в личном кабинете ОФД.

Личный кабинет налогоплательщика

Карточка регистрации ККТ

Основные требования

  • печать корпоративных и фискальных чеков по «ФЗ-52»;
  • работа с системой лояльности;
  • работа с  маркетинговыми акциями;
  • поддержка работы в online и offline режиме;
  • поддержка работы с различными меню;
  • открытие и закрытие рабочих смен;
  • поддержка создания, редактирования и отмены заказов;
  • формирование заказов на доставку, самовывоз, в заведении, бронирование;

Архитектура Клиент-Сервер

Веб приложение

Веб-приложение - клиент-серверное приложение, основная часть которой содержится на удаленном сервере, а пользовательский интерфейс отображается в браузере в виде веб-страниц.

MPA

Многостраничные приложения - клиент-серверное приложение работающее  в рамках браузера. Каждое значительное изменение данных или выгрузка информации обратно на сервер приводит к рендерингу новой страницы в браузере. 

Преимущества MPA

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

Недостатки MPA

  • Разработка интерфейса и серверной части приложений в данном случае объединены очень тесно;
  • разработка МPA довольно сложна, так как она требует использования фреймворков как на клиентской, так и на серверной стороне. Поэтому сроки и издержки разработки намного больше.

SPA

Одностраничные приложения (SPA - Single Page Application) работают в рамках браузера и не требуют перезагрузки страницы или загрузки дополнительных страниц во время использования

Преимущества SPA

  • Отличное быстродействие – за счет загрузки всех ресурсов один раз в течение сессии использования приложения. После совершения действий на странице меняются лишь данные;
  • разработка веб-приложений быстрее и эффективнее. Нет необходимости писать отдельный код для рендера страницы на стороне сервера;
  • SPA оптимизированы для Chrome debugging, разработчики могут отслеживать сетевые действия, изучать элементы страниц и данные, с ними ассоциируемые

Недостатки SPA

  • Долгая первая загрузка;
  • SPA требуют JavaScript в активном режиме в браузерах пользователей. Если клиент вручную отключит использование JavaScript, он не сможет в полной мере воспользоваться возможностями приложением;
  • по сравнению с традиционными приложениями, SPA чуть хуже защищены. Благодаря межсайтовому скриптингу (XSS), злоумышленники имеют возможность внедрять дополнительные скрипты на стороне клиента. Утечки памяти в JavaScript могут привести к падению производительности даже в мощных системах.

PWA

Прогрессивное веб приложение  (PWA - Progressive Web App) - технология в веб-разработке, которая добавляет веб приложениям возможности взаимодействия с устройствами. В частности, PWA могут устанавливаются на смартфоны или планшеты пользователей, работают в режиме офлайн благодаря кэшированию контента, доставляют пользователям всплывающие уведомления.

Преимущества PWA

  • отсутствие необходимости установки и обновления дополнительных модулей;
  • единая кодовая база;
  • возможность входа в приложения с главного экрана устройства;
  • быстрая загрузка в независимости от качества сети, с технологией Service Worker;
  • офлайн режим;
  • отображение только актуальных данных;
  • адаптивность и прогрессивность;

Недостатки PWA

  • не все устройства поддерживают функциональность программного обеспечения;
  • неподдерживаемые пользовательские функции вызова, такие как SMS или звонки, отправка SMS / MMS, чтение голосовой почты, получение номера телефона пользователя, телефонные звонки без диалога, доступ к календарю, тревогам, браузеру и т.д.

AMP

Ускоренные мобильные страницы (AMP - Accelerated Mobile Pages) – эта платформа с открытым исходным кодом, позволяющая загружать страницу быстрее чем обычный HTML. Это метод создания веб-страниц для статического контента, что позволяет создавать контент, который быстро загружается на мобильных устройствах.

Преимущества AMP

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

Преимущества AMP

  • Не разрешено использование JavaScript за исключением библиотеки AMP;
  • изображения загружаются с функцией «ленивой погрузки», означающей, что они будут загружаться только их появлении в поле зрения пользователя;
  • необходима упрощенная версия каскадных таблиц;
  • нельзя отследить поведение пользователей на странице;
  • не подходит для онлайн магазинов;
  • невозможно повысить рейтинг в поисковой системах.

Мобильное приложение

Мобильное приложение - это компонент, устанавливаемый на мобильное устройство под конкретную мобильную платформу (Android, iOS,  Windows Mobile), подключающийся к мобильному серверу и управляющий пользовательским интерфейсом и бизнес-логикой устройства.

Нативное приложение

Нативное приложение - это специально разработанное приложение под конкретную мобильную платформу (iOS, Android, Windows Phone). Такое приложение разрабатывается на языке высокого уровня и компилируется в нативный код выполняемый в ОС, обеспечивающий максимальную производительность.

Преимущества нативного приложения

  • Работают максимально быстро, обладают высокой функциональностью;
  • работоспособны и без подключения к сети;
  • распространяются только через официальные магазины;
  • органично выглядят на телефоне, так как разрабатываются для определенной операционной системы;
  • используют все функции программного обеспечения гаджета: гироскоп, ик-порт, компас, датчик освещенности/ приближения, микрофон, камеру, диктофон, геолокацию, адресную книгу и прочие;

Недостатки нативного приложения

  • Стоимость и сроки разработки такого приложения намного выше, чем у гибридов;
  • разработчику необходимо уметь программировать на соответствующем платформе языке;
  • для каждой платформы – свой код;
  • любые изменения, даже незначительные, косметические, нуждаются в выпуске обновления.

Гибридное мобильное приложение

Гибридное приложение - приложение, «упакованное» в нативную оболочку. Такое приложение, как и нативное, устанавливается из онлайн-магазина и имеет доступ к тем же возможностям мобильного устройства, но разрабатывается с  помощью веб технологий, таких как: HTML5, CSS и JavaScript.

Преимущества гибридных приложений

  • Обладают многими функциями нативного приложения и являются универсальными для многих платформ;
  • запускается не из браузера, есть возможность независимого обновления;
  • как и нативные приложения, распространяется через магазины.

Недостатки гибридных приложений

  • Необходимо соответствовать требованиям магазинов приложений;
  • слабая оптимизация производительности;
  • разработчик должен знать особенности и различия разных API.

Техническое обоснование

Архитектура мобильного приложения удовлетворяет большинству требований, но только при использовании гибридной методологии возможно разработать приложения с общей кодовой базой, в сравнительно небольшие сроки и с наименьшими затратами.

Средства реализации

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

Система хранения данных

Firebase Storage - система хранения данных разработанная корпорацией Google, которая позволяет производить локальное кэширование ресурсов на устройстве для использования в автономном режиме и обслуживания ресурсов, когда пользователь возвращается в сеть, при этом локальные данные автоматически синхронизируются.

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

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

Средство разработки интерфейса приложения

ReactNative - это фреймворк, позволяющая разрабатывать приложения под Android и IOS на языке JavaScript. Его работа заключается в использовании компонентов оболочек над нативными компонентами операционной системы, под которую будет собрано приложение

Взаимодействие между программными модулями

Заключение

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

КНИР

By AndreyDyrkov