ПО SandyApp позволяет любому пользователю без знаний языков программирования создать мобильное приложение (PWA) или сайт для ресторана или кафе через графический интерфейс с использованием браузера. Программа является собственностью ООО "Матомба" ИНН 5043077977 ОГРН 1225000087597 КПП 504301001
Термины и определения
APACHE - Свободный веб-сервер, который является кроссплатформенным ПО, поддерживает операционные системы Linux, BSD, Mac OS, Microsoft Windows, Novell NetWare, BeOS.
CENTOS - Дистрибутив Linux, основанный на коммерческом Red Hat Enterprise Linux компании Red Hat и совместимый с ним.
ETHERNET - Семейство технологий пакетной передачи данных для компьютерных сетей.
GOOGLE CHROME Браузер, разрабатываемый компанией Google на основе свободного браузера Chromium и движка Blink.
GUI - Разновидность пользовательского интерфейса, в котором элементы интерфейса (меню, кнопки, значки, списки и т. п.), представленные пользователю на дисплее, исполнены в виде графических изображений.
HTTPS HyperText Transfer Protocol Secure — расширение протокола HTTP для поддержки шифрования в целях повышения безопасности.
IPTABLES - Утилита командной строки, является стандартным интерфейсом управления работой межсетевого экрана netfilter для ядер Linux.
MICROSOFT EDGE - Браузер от компании Microsoft, впервые выпущенный в 2015 году.
MICROSOFT WINDOWS - Семейство коммерческих операционных систем корпорации Microsoft, ориентированных на управление с помощью графического интерфейса.
MOZILLA FIREFOX - Свободный браузер на движке Quantum, разработкой и распространением которого занимается Mozilla Corporation.
MYSQL - Cвободная реляционная система управления базами данных.
NGINX - Веб-сервер и почтовый прокси-сервер, работающий на Unix- подобных операционных системах.
OPERA - Веб-браузер и пакет прикладных программ для работы в Интернете, выпускаемый компанией Opera Software.
PHP - Cкриптовый язык общего назначения, интенсивно применяемый для разработки веб-приложений
TCP/IP Transmission Control Protocol/ Internet Protocol – сетевые протоколы передачи данных
Visual Studio Code - текстовый редактор для написания кода с открытым программным кодом
БД - База данных
ВЕБ-САЙТ - Ресурс, который состоит из одной или нескольких веб-страниц с гипертекстовым, текстовым, медийным (картинки, видео, аудио) и другими типами содержания, доступного по одному из протоколов веб-семейства.
СУБД - Система управления базами данных
Введение
При разработке конструктора мобильных приложений (далее КМП) учитывались состав, структура и способы организации информации и интерфейса в КМП. Они обеспечивают необходимый уровень удобства при работе с конструктором и минимум усилий для получения нужного результата в виде готового приложения.
По протоколу HTTPS предусмотрен информационный обмен между:
– серверной частью и клиентскими приложениями;
– между серверной частью и внешними сервисами.
Посредством локальной сети типа Ethernet (или аналогичной по пропускной способности) обеспечивается информационное взаимодействие между физическими серверами Системы (сервером БД и серверами приложений) 100/1000 и передача данных по протоколу TCP/IP. Средства классификации и кодирования информации в части информационного обеспечения выполняют систематизацию и нормализацию входной и выходной информации, а также форматов обмена данными; согласовывают непротиворечивость и однозначность применяемых показателей, терминов; контролируют правильность вводимой информации (форматно-логический контроль); выполняют нормализацию запросов пользователей к информации и используют структурированный код для представления информации.
Реляционные базы данных MySQL используют в КМП для обеспечения реализации встроенных механизмов построения индексов и контроля целостности данных. При этом допускается размещение отдельных параметров конфигурации системы, не подлежащих модификации в ходе ее нормального функционирования и обслуживания, во внешних конфигурационных файлах. Базы данных содержат информацию в нормализованной форме. Для повышения производительности системы допускается использование дополнительных ненормализованных структур данных. Прикладное программное обеспечение состоит из нижеперечисленных составляющих:
– закупаемое прикладное программное обеспечение, необходимое для решения поставленных задач;
– специализированное программное обеспечение, разрабатываемое с помощью инструментальных средств.
Прикладное программное обеспечение комплекса обеспечивает выполнение требований к функциям системы, поддержку необходимой архитектуры, а также совместимость программных продуктов в части используемых технических средств, общесистемного программного обеспечения в пределах требований к техническому обеспечению, а также их информационную совместимость в пределах требований к информационному обмену. Функционирование технического обеспечения происходит на 32-х и 64-х разрядных платформах.
СТРУКТУРА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Программное обеспечение КМП состоит из прикладного и системного программных обеспечений. Согласно договору (соглашению) № ПО-3 от 14 января 2023 г. на выполнение научно-исследовательских и опытно-конструкторских работ (НИОКР) по теме: «Разработка конструктора мобильных приложений для ресторанов и кафе» было разработано прикладное программное обеспечение, которое состоит из следующих подсистем и модулей:
1. Модуль «Регистрации/Авторизации пользователя» – регистрация пользователя в КМП должна производиться в автоматическом режиме после указания номера телефона и ввода проверочного кода или авторизации через учетную запись ВКонтакте, с автоматической переадресацией в личный кабинет.
2. Подсистема личного кабинета администратора – управление учетными записями пользователей, создание проектов приложений и редактирование уже существующих проектов со следующими возможностями:
– должен выполнять задачу по управлению учетными данными зарегистрированных пользователей.
– Модуль контентного наполнения - предназначен для добавления и изменения информации о товарах и услугах клиента.
– Модуль управления заказами - для приема клиентом заказов от пользователей созданных приложений;
– Модуль визуального создания приложения - визуальное изменение внешнего вида готового приложения и настройка его основных параметров;
– Модуль онлайн оплаты - для продления тарифного плана клиента;
– Модуль команды - для добавления новых сотрудников и ограничения им области видимости внутри системы личного кабинета;
– Модуль интеграций - для подключения созданных приложения к сторонним системам через RestApi
3. Подсистема вывода созданного приложения предназначена для обработки введенных пользователем данных и настроек и вывода их в визуальное представление в браузер или на мобильное устройство клиента в формате PWA приложения
– Модуль регистрации пользователей в приложениях клиента через учетную запись ВКонтакте или путем ввода мобильного телефона;
– Модуль визуального представления для отображения указанной клиентом информации о товарах и услугах в необходимом виде;
– Модуль "Акции и скидки" для возможности пользователей применять промокоды на скидку при оплате услуг клиента в созданном приложении;
– Модуль личного кабинета для отображения истории заказов пользователей и изменения учетных данных;
– Модуль интернет эквайринга для возможности подключения банков для приема онлайн платежей в созданном приложении
– Модуль системы лояльности для построения системы накопления и списания бонусных баллов за оплаченные заказы;
Выделение прикладного программного обеспечения в перечисленные подсистемы и модули обусловлено требованиями договора (соглашения) № ПО-3 от 14 января 2023 г. на выполнение научно-исследовательских и опытно-конструкторских работ (НИОКР) по теме: «Разработка конструктора мобильных приложений для ресторанов и кафе». Взаимосвязь вышеперечисленных подсистем и модулей обеспечивается путем использования единой реляционной СУБД MySQL, с которой взаимодействует каждая подсистема.
ФУНКЦИИ ЧАСТЕЙ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
В состав системного программного обеспечения входят:
- операционная система веб-серверов и базы данных;
– созданный на PHP движок для взаимодействия между модулями системы и базами данных;
- система управления базами данных MySQL;
- клиентское программное обеспечение, установленное на рабочие места пользователей.
Функции системного программного обеспечения КМП перечислены ниже:
1. Работа с атрибутивными данными обеспечивают функции управления данными КМП с учетом их отбора, обновления и преобразования для производства стандартных и рабочих отчетов. Данные функции состоят из обработки пользовательских запросов, выполнения статистических вычислений, логических операций, поддержания информационной безопасности, стандартных форм запросов и представления их результатов.
2. Выделение необходимых структур внешней памяти непосредственно для объектов, входящих в БД, и для служебных целей, в том числе, для ускорения доступа к данным обеспечивают функции хранения данных. Кроме этого, данные функции предназначены для управления буферами оперативной памяти, управления транзакциями, журнализации и репликации данных.
3. Развертывание и конфигурирование элементов КМП.
4. Для информации, которая кэшируется, предусматривается автоматическое определение и управление объемом оперативной памяти.
5. Для манипулирования данными предусматривается использование языков базы данных.
6. Для восстановления данных после программных и аппаратных сбоев предусматривается учет изменений в БД и создание резервной копии backup базы данных. Прикладное программное обеспечение КМП должно обеспечивать выполнение следующих функций:
– обеспечение работы механизма оплаты;
– регистрацию и авторизацию пользователей;
– создание и редактирование команды и совместный доступ к личному кабинету;
– управление учетными записями пользователей;
– контентное наполнение и настройка приложений;
– визуальное представление созданных через визуальный редактор приложений;
– правильный расчет системы лояльности;
– контроль введенных промокодов и акций;
– обеспечение взаимодействия со сторонними сервисами по протоколу RestApi
МЕТОДЫ И СРЕДСТВА РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Используемые методы программирования Применение метода объектно-ориентированного программирования во время разработки прикладного программного обеспечения является наиболее целесообразным, что обусловлено следующими факторами:
1. Возможность использования классов. Преимущества данного фактора: наиболее критичные данные от несанкционированного доступа защищает инкапсуляция информации; конструирование из полезных компонент, обладающих простыми инструментами, позволяют проводить классы, это дает возможность абстрагироваться от деталей реализации; наглядность и удобство программного сопровождения улучшает локализация кода и данных; сущность, которую образуют вместе данные и операции, не «ломается» по всей программе, в отличии от случаев применения процедурного программирования.
2. Работа существующей системы с новыми компонентами возможна благодаря возможности создавать так называемые расширяемые системы (extensible systems). Это означает, что данную систему можно заставить работать с новыми компонентами, при этом не требуется внесение в нее каких-либо изменений. Компоненты могут быть добавлены на этапе выполнения.
3. Каркас, который был реализован независимыми от приложения частями предметной области, в дальнейшем может быть расширен добавлением частей, которые будут специфичными для выбранного приложения.
4. Применение компонент многоразового использования позволяет сократить время на разработку программного обеспечения.
5. Работа программ без изучения вида объектов, обработка разнородных структур данных, при этом новые виды могут быть добавлены в любой момент.
Используемые средства разработки программного обеспечения При разработке программного обеспечения были применены:
– программное средство Visual Studio Code для удобного написания кода
– phpMyAdmin для управления базами данных;
- VueJS для создания внешнего интерфейса приложения;
– скриптовый язык программирования PHP – для создания прикладного программного обеспечения;
– реляционная СУБД MySQL – для хранения данных;
– браузеры Google Chrome версии не ниже 76, Mozilla Firefox версии не ниже 68, Opera версия не ниже 63, Microsoft Edge версии не ниже 41 – для корректной работы пользователей с КМП
– механизмы защиты от большинства известных атак на веб-приложения (модуль «Проактивная защита») – при настройке системного программного обеспечения.
ОПЕРАЦИОННАЯ СИСТЕМА
Операционная система Debian версии 12 применяется для работы веб-серверов и серверов баз данных КМП. Это обуславливается тем, что Debian является дистрибутивом GNU/Linux. Данный дистрибутив основан на свободных исходных текстах дистрибутива Red Hat Enterprise Linux, последний является коммерческим продуктом компании Red Hat. Выпуск обновлений безопасности каждой версии происходит каждые 10 лет, в связи с чем, КМП, работает на 32-х и 64-ти битной архитектуре и отличается повышенной стабильностью. Обновления операционной системы выпускаются с периодичностью до полугода, а сама система – через каждые 2 года. Это обеспечивает безопасную, масштабируемую, легко обслуживаемую, надежную, предсказуемую работы среду Linux. Подробное описание выбранной версии размещено на сайте www.centos.org. Факторы, влияющие на выбор операционной системы CentOS:
1. Модуль yum (Yellow dog Updater, Modified) упрощает поиск необходимых файлов, программ, пакетов обновлений.
2. CentOS в течение последних лет набирает популярность при его использовании на машинах, в связи с чем баги сразу отслеживаются и быстро устраняются. Это обеспечивает высокий уровень безопасности.
3. Из-за растущей популярности сообщество пользователей постоянно растет, это дает возможность получить консультацию из независимых источников.
4. CentOS обладает высокими скоростными характеристиками.
5. Удобная графическая оболочка представляет собой удобный инструмент для выполнения необходимых действий, что дает возможность использовать GUIЮ, при этом некоторые задачи не требуют глубокого знания команд linux.
6. Сервера на основе Linux-подобных систем считаются наиболее безотказными.
7. Настройки под нужды определенного проекта помогает выполнить опция создания собственного Live CD. Допускается установка на рабочее место пользователя операционной системы Microsoft Windows 7 / 8.1 / 10, при этом операционная система Windows версии не ниже 7 является оптимальным решением.
СРЕДСТВА, РАСШИРЯЮЩИЕ ВОЗМОЖНОСТИ ОПЕРАЦИОННОЙ СИСТЕМЫ
Ниже перечислены средства, расширяющие возможности операционной системы web-серверов, операционной системы сервера базы данных и операционной системы рабочего места пользователей.
- PTables в качестве брандмауэра для управления работой межсетевого экрана в качестве брандмауэра для управления работой межсетевого экрана
- Nginx в качестве веб-сервера для распределения нагрузки, кэширования и акселерации ответов системы на запросы пользователей, доступа к статическим данным
- Apache в качестве веб-сервера для выполнения программной логики системы
- PHP в качестве интерпретатора программной логики (нужны библиотеки php_curl, php_gd2, php_mbstring, список дополнительных модулей будет уточнен при развертывании системы) с применением акселератора PHP APC
- SVN Client в качестве инструмента обновления исходных кодов из репозитория
- phpMyAdmin php-приложение для управления БД MySQL (должно быть подключено к серверу БД)
- MySQL - в качестве СУБД
- Microsoft Edge, Mozilla Firefox, Safari, Google Chrome, Opera - интернет-браузеры
- iPad или iPhone - формы для приложений
- NOD32, Avast, Kaspersky Anti-Virus (либо другой с совместимыми функциями) - антивирус
- Outpost Firewall Pro, Comodo Firewall (либо другой с совместимыми функциями) - фаервол