Министерство образованиея и науки РФ Федерального государственного автономного образовательного учреждения высшего образования
"Национальный исследовательский технологический университет МИСиС"
Курсовая научно исследовательская работа на тему: разработка приложения онлайн-кассы для мобильных устройств на базе Android
Выполнил: Дырков А.В.

Руководитель: Пантелеев С.В.
Актуальность работы

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

- Анализ предметной области
- Формирование требований
- Анализ возможных решений
Retail - Торговля

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

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

Розничная торговля включает в себя следующие функции:
- закупка;
- транспортировка;
- хранение;
- продажа товара.
Поправки в ФЗ-54

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

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


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

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

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


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

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


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


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

- печать корпоративных и фискальных чеков по «ФЗ-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
КНИР
КНИР
- 284