Мобильное приложение информационной системы общественного контроля
Снижение сроков принятия решений контрольно-надзорными органами, обеспечение их публичной подотчетности. Разработка архитектуры мобильного приложения для информирования гражданами уполномоченных государственных органов. Требования к мобильному приложению.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 07.08.2018 |
Размер файла | 2,0 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.Allbest.ru/
Размещено на http://www.Allbest.ru/
Федеральное агентство связи
Федеральное государственное бюджетное образовательное учреждение высшего образования
Поволжский государственный университет телекоммуникаций и информатики
Факультет информационных систем и технологий
Направление (специальность): Информатика и вычислительная техника
Кафедра информатики и вычислительной техники
Выпускная квалификационная работа (бакалаврская работа)
Тема:
Мобильное приложение информационной системы общественного контроля
Разработал С.В. Беляев
студент группы ПО-32
Руководитель ст. преп.
Е.С. Карташевская
Самара 2017
ЗАДАНИЕ
по подготовке выпускной квалификационной работы
Студента Беляева Сергея Владимировича
Тема ВКР «Мобильное приложение информационной системы общественного контроля»
Утверждена приказом по университету от 3.04.2017 №74-2
Исходные данные и постановка задачи
1) Изучение теоретического материала для разработки мобильного приложения
2) Проектирование архитектуры приложения
3) Разработка приложения
Перечень подлежащих разработке в ВКР вопросов или краткое содержание ВКР
1) Изучить теоретический материал
2) Разработать архитектуру мобильного приложения
3) Реализовать приложение, согласно архитектуре
4) Произвести тестирование приложения
Перечень графического материала
Презентационный материал
Дата выдачи задания «» 2017 г.
Кафедра Информатики и вычислительной техники
Утверждаю зав. кафедрой д.т.н., проф. Н.Ф. Бахарева
Руководитель ст. преп. Е.С. Карташевская
Задание принял к исполнению ПО-32 С.В. Беляев
Введение
С аварийным состоянием дорог, недостаточным качеством жилищных коммуникаций сталкивается практически каждый человек. Чтобы хоть как-то исправить ситуацию приходиться стучаться во все инстанции, стоять в очередях в кабинеты и разбираться в бюрократических тонкостях тех или иных муниципальных служб.
Актуальность работы заключается в автоматизации процессов общественного контроля.
Предметом является разработка мобильного приложения информационной системы общественного контроля.
Объектом является процесс разработки мобильного приложения.
Целью является разработка приложения для простого и своевременного информирования гражданами уполномоченных государственных органов; повышение прозрачности работы контрольно-надзорных органов, обеспечения их публичной подотчетности; снижение сроков принятия решений и проведения мероприятий, направленных на ликвидацию нарушений в различных сферах деятельности.
Задачами является изучение теоретического материала, разработка архитектуры мобильного приложения, анализ разработанного материала.
Методология разработки - изучение и анализ источников из интернета.
Работа состоит из введения, трех глав и заключения.
В первой главе рассматриваются готовые решения, ставится задача и требования к мобильному приложению.
Во второй главе рассматривается API серверной части системы контроля
В третьей главе рассматривается готовое приложение
В заключение подводятся итоги, рассматривается достижение поставленных перед работой целей и задач, а также формируется вывод.
1. Описание мобильного приложения системы общественного контроля
1.1 Понятие общественного контроля
Общественный контроль [1]: это осуществляемый гражданами, институтами гражданского общества - средствами массовой информации, политическими партиями, общественными объединениями, профсоюзами комплекс различных мер по наблюдению и проверке деятельности органов государственной власти и органов местного самоуправления, в целях принуждения власти к обеспечению соблюдению закона, ответственному и, как следствие, компетентному исполнению своих обязанностей.
Мировой опыт учит, что общественный контроль выгоден как обществу, так и государственной власти. Действительно, он заставляет государство быть ответственным - обеспечивать работу закона, уважать и защищать права и свободы человека, а, следовательно, эффективно действовать на общее благо. Общественный контроль выгоден и самому государству, так как стимулирует его все время совершенствоваться.
Во-первых, он выступает как воздействующая сила, побуждающая государственных служащих устоять от бесчисленных соблазнов и искушений, которые всегда стоят перед ними в силу природы власти. Благодаря давлению общественного контроля чиновники корректирует свои действия, становясь ответственными и, как следствие, компетентными.
Во-вторых, гражданский контроль выступает как обратная связь общества с властью, помогает гражданам вести честный и открытый диалог с властью о целях и приоритетах развития страны. С помощью обратной связи с обществом власть способна не только слышать, но и поддерживать требования граждан по проведению в стране необходимых реформ.
В-третьих, мотивируя государство работать эффективно, общественный контроль обеспечивает тем самым доверие к нему и поддержку граждан. Опираясь на поддержку общества, компетентная власть берет за основу конструктивные предложения граждан и проводит в стране необходимые реформы.
Все это способствует созданию и развитию конкурентоспособной экономики, росту жизненного уровня народа, формированию сильного гражданского общества, укреплению национальной безопасности, повышению качества человеческого капитала. В конечном итоге, страна становится сильной, эффективной и процветающей, что и отражает ее национальные интересы.
В данный момент множество сфер и отраслей переходит на электронные системы документо- и делопроизводства. Для упрощения процесса приёма-подачи заявлений гражданами, активно принимающими участие в осуществлении общественного контроля, было решено автоматизировать данный процесс
В рамках данной работы заявлением называется текст с приложенными к нему фото- и/или видео-материалами. Заявления описывают проблемы и нарушения, подлежащие рассмотрению контролирующими органами в той или иной сфере деятельности. Заявления формируются пользователями системы.
1.2 Обзор готовых решений
Самой распространённой мобильной платформой (более 80% от проданных устройств [2]) на данный момент является Android.
Самой большой системой распространения и дистрибьюции ПО для платформы Android является Google Play.Market. В результате поиска в Play.Market и анализе готовых решений было выбрано приложение «Наш Санкт-Петербург.
Самая важная составляющая проекта - это пользовательские сообщения.
Открыв приложение “Наш Санкт-Петербург” можно ознакомиться с тем, какие действия можно выполнить в приложении (рис 1.1).
Рис. 1.1 - Главный экран приложения «Наш Санкт-Петербург»
При клике на «Все сообщения» мы можем увидеть список опубликованных сообщений всех пользователей с кратким описанием проблемы, фото, статусом заявки (рис. 1.2).
Рис. 1.2 - Экран «Все сообщения»
При клике на любое сообщение из списка открывается окно детальной информации по данному сообщению (рис 1.3), в верхней части экрана под тулбаром можно изменить тип просмотра на один из 3 имеющихся.
Рис. 1.3 - Экран детальной информации
Также можно попробовать создать заявку (рис. 1.4), заполнив поле с описанием проблемы и прикрепив фотографию
Рис. 1.4 - Экран создания сообщения
Таким образом приложение “Наш Санкт-Петербург” отлично справляется с задачей подачи и обработки заявок, но также имеет ряд недостатков:
· Территориальную ограниченность (не может быть использовано повсеместно, только в одном городе)
· Сложную систему категорий сообщений
Также в процессе использования было выявленно, что данное приложение имеет низкий User Experience [3], пользоваться приложением не удобно.
В связи с этим было принято решение создать и отладить систему, включающую в себя веб-портал (подробности реализации портала в ВКР рассмотрены не будут) и мобильное приложение, для формирования заявлений (сообщений, обращений) с последующим отслеживанием пользователем изменения процессинговых стадий заявления (новое, на рассмотрении, в работе, завершено, отклонено и т.д.);
2. Разработка мобильного приложения
2.1 Подбор платформы, материала
Платформа Android является хорошо поддерживаемой и документируемой системой с открытым исходным кодом. Множество новых компонентов, внедряемых в последних версиях SDK, доступны и могут быть использованы на более ранних версия платформы, за счёт пакета совместимости Android Support Repository [4].
Несмотря на вышеизложенное, некоторые компоненты Android Support Repository могут требовать более высокой версии SDK. Андроид, также как и язык Java, на котором в основном и ведётся разработка под Андроид, является обратно совместимым, т.е. приложения написанные для более ранних версий AndroidSDK также будут работать и для устройств с более свежей версией прошивки.
Выбор минимально поддерживаемой версии SDK для проекта определяет количество (процент) устройств, на которых приложение сможет работать. В AndroidStudio (при создании проекта) и на сайте Android Developers можно посмотреть какой процент поддерживаемых устройств вы покроете, выбрав ту или иную версию API[5]. Данные о количестве смартфонов и версии API Согласно Android-guidelines [6] хорошей практикой является поддержка 90% устройств и более.
Было принято решение выбрать минимально поддерживаемой версией [7] для конечных устройств Android 4.0 (ICE_CREAM_SANDWICH, SDKv14), что обеспечивает совместимость с существующими на рынке устройствами в 99% случаев [7].
Таким образом, приложение возможно запустить практически на любом устройстве на платформе Android. Ограничения по типу устройства (планшет/смартфон) отсутствуют.
2.2 Определение сущностей приложения
Для начала нужно дать определение сущностям, используемым в рамках приложения.
Главной сущностью приложения являются пользовательские обращения. Обращение содержит:
· Текст обращения
· Подтверждающие приложения (фото/видео материал)
Заявки (обращения, сообщения) создаются пользователями, затем обрабатываются исполнительными органами
Профиль (аккаунт) - пара логин/пароль, бывают 2-х видов пользователь/инспектор. Пользователи могут зарегистрироваться сами, инспекторов может зарегистрировать только пользователь с правом регистрации инспектора(н-р Нач. управления регионального органа)
Регион - сущность для определения местоположения заявителя(пользователя), также используется в рейтинге регионов(статистика, аналитика). Регионы содержат в себе список населенных пунктов.
Населенный пункт - то же что и регион, более мелкая структурная единица
Контент приложения - заявки, статистика по заявкам. Дополнительной функцией являются новости.
2.3 Серверная часть
В рамках ВКР будут рассмотрены только API серверной части, подробности реализации логики серверной части рассмотрены не будут.
Клиент-серверное взаимодействие [8] [9] реализовано путём вызова методов сервера из приложения-клиента.
Необходимые данные будут передаваться в формате JSON[10] посредством HTTP-запросов к серверу
Запросы могут быть как авторизованными(для большинства экранов), так и неавторизованными(для экранов авторизации/регистрации).
Приложение строится на основе запросов к API.
2.4 Описание API, примеры запросов
Общее описание
Все пути указаны относительно базового пути сервера.
Формат всех ответов:
{
statusCode: INT,// Статус ответа. Содержит код ошибки.
// 0 - успешное выполнение.
statusMessage: STRING,// Содержит дополнительное сообщение
ошибки.
response: OBJECT// Объект ответа.
}
Ниже в описании методов приведены примеры содержимого поля response.
Идентификатор сессии передается в заголовке Auth-token.
Стоит отличать {} и null - первое это объект без полей, второе это ничто.
В методах для работы с датами используется UnixTimestamp [11] представление дат, а именно количество миллисекунд с 1 января 1970 года (LONG). Пример: 946684800000 (1 января 2000г.)
Таблица 2.1
Общий список кодов ошибок
Code |
Message |
Описание |
|
100 |
имя поля |
Отсутствует обязательное поле. |
|
101 |
LOGIN_EMPTY |
Отсутствует логин. |
|
102 |
PASSWORD_EMPTY |
Отсутствует поле пароля. |
|
103 |
EMAIL_EMPTY |
Отсутствует поле почты. |
|
104 |
FIRST_NAME_EMPTY |
Отсутствует имя пользователя. |
|
105 |
LAST_NAME_EMPTY |
Отсутствует фамилия пользователя. |
|
111 |
Company name not be null |
Отсутствует название компании |
|
112 |
Company orgn not be null |
Отсутствует регистрационный номер компании. |
|
121 |
Application id not be null |
Отсутствует id сообщения. |
|
122 |
Source system code no be null |
Отсутствует код системы. |
|
123 |
Description not be null |
Отсутствует описание. |
|
124 |
Category not be null |
Отсутствует категория сообщения.. |
|
131 |
Place not be null |
Отсутствует местоположение.. |
|
132 |
Place.FederalDistrict not be null |
Отсутствует Федеральный округ.. |
|
133 |
Place.Subject not be null |
Отсутствует субъект федерации. |
|
141 |
Comment id not be null |
Отсутствует id комментария. |
|
142 |
File id not be null |
Отсутствует id файла вложения. |
|
151 |
Header messages not be null |
Отсутствует заголовок обращения. (Обратная связь) |
|
152 |
Messages not be null |
Отсутствует текст обращения. (Обратная связь) |
|
153 |
Username not be null |
Отсутствует имя пользователя (Обратная связь) |
|
200 |
имя поля |
Невалидное значение. |
|
201 |
INVALID_LOGIN |
Невалидное значение поля “логин”. |
|
202 |
INVALID_PASSWORD |
Невалидное значение поля “пароль”. |
|
203 |
INVALID_EMAIL |
Невалидное значение поля email. |
|
204 |
INVALID_PHONE_NUMBER |
Невалидное значение телефонного номера. |
|
205 |
INVALID_FIRST_NAME |
Невалидное значение поля имени. |
|
206 |
INVALID_LAST_NAME |
Невалидное значение поля фамилии. |
|
207 |
INVALID_MIDDLE_NAME |
Невалидное значение поля отчества. |
|
211 |
Invalid source system code. |
Невалидное значение кода платформы. |
|
212 |
Exceeded description size |
Превышен допустимый размер описания. |
|
213 |
Exceeded title size |
Превышен допустимый размер заголовка. |
|
221 |
Exceeded header messages size |
Превышен допустимый размер заголовка. (Обратная связь) |
|
222 |
Exceeded username messages size |
Превышен допустимый размер имени пользователя. (Обратная связь) |
|
231 |
Invalid file! |
Невалидный файл. (Загрузка файлов) |
|
232 |
Invalid file extension! |
Невалидное расширение файла. (Загрузка файлов). |
|
233 |
Photo is too large! |
Превышен допустимый размер фото. (Загрузка файлов). |
|
234 |
Video is too large! |
Превышен допустимый размер видео. (Загрузка файлов). |
|
235 |
File type is not image! |
Файл не является изображением. (Выгрузка изображения с изменение размера) |
|
300 |
NO_SUCH_USER |
Ошибка авторизации. |
|
301 |
Access Denied! |
Доступ запрещен. |
|
311 |
Login is already exists |
Такой логин уже используется. |
|
312 |
Phone number is already exists |
Такой номер телефона уже используется. |
|
313 |
Email is already exists |
Такой email уже используется. |
|
321 |
Category not exist in database. |
Категория отсутствует в БД. |
|
322 |
Application no status a draft |
Сообщение не является черновиком. (Удаление) |
|
323 |
Original application not exist in database. |
Первичная заявка отсутствует в БД. |
|
324 |
Attachments must be one or more |
Должно быть не менее 1 вложения. |
|
331 |
Federal District not exist in database. |
Федеральный округ отсутствует в БД. |
|
332 |
Subject RF not exist in database. |
Субъект РФ отсутствует в БД, |
|
333 |
Subject RF not exist in this Federal District. |
Субъект РФ не связан с Федеральным округом. |
|
400 |
INVALID_JSON |
Не валидный JSON |
|
401 |
Session not found! |
Пользовательская сессия не найдена. |
|
402 |
User not found! |
Пользователь не найден. |
|
403 |
Individual not found! |
Расширение пользователя не найдено. (Скорее всего ошибка в БД). |
|
404 |
Зарезервирована за стандартной ошибкой “Страница не найдена”. |
||
405 |
News not found! |
Новость не найдена. |
|
406 |
File not found! |
Файл не найден |
|
407 |
No active tasks found! |
Нет активных задач. |
|
408 |
Application identifier not found! |
Id сообщения не найден. |
|
409 |
Application number not found! |
Номер сообщения не найден. |
|
420 |
Code not found! |
Код не найден. (Активация профиля) |
|
421 |
User with this token not found or already activated! |
Токен активации не найден (возможно, пользователь уже активен). |
|
422 |
User with this email token not found or token obsolete! |
Токен активации email не найден. (Возможно, почта уже активна). |
|
423 |
Email not found. |
Почтовый адрес не найден. |
|
424 |
User is already verified |
Пользователь уже подтвержден. |
|
425 |
Reset token not found or already used |
Токен восстановления не найдет |
|
500 |
Внутренняя ошибка сервера. |
||
501 |
Ошибка при выполнении метода. |
||
502 |
Error in database. |
Невалидные данные в БД. (Скорее всего устаревшие данные). |
|
503 |
Range param error! |
Ошибка byte-range support'a |
Появление следующих ошибок возможно во всех методах API:400, 500, 501, 502
Аутентификация
Аутентификация пользователя
Метод: POST/security/signin
Модель запроса:
{
login: STRING,// логин
password: STRING,// пароль
longLife: BOOLEAN// длинную ли сессию создавать
}
Модель ответа: Сессия
Пример ответа:
{
"sessionId": "f65c511b-5805-6f5f-b79e-8346fcccc391",
“active”: false
}
Коды ошибок: 100, 300
Закрытие сессии
Запрос на завершение активной пользовательской сессии.
Метод: GET/security/signout
Header:
Auth-Token: STRING(Обязательное поле)
Сессия определяется по id (Auth-token)
В случае успеха ответ не содержит дополнительных объектов.
Коды ошибок: 300
Проверка сессии
Запрос на проверку активности сессии.
Метод:
POST/security/check
Header:
Auth-Token: STRING (обязательное поле)
Модель ответа:
{
"active": BOOLEAN // активна ли сессия
}
Восстановление пароля
Запрос на восстановление пароля пользователя.
Метод:
POST/security/recoverPassword
Модель запроса:
{
email: STRING // почта на которую нужно выслать новый пароль.
}
На указанную почту приходит сообщение с ссылкой на восстановление пароля.
При переходе по ссылке откроется окно с полем для ввода нового пароля.
Если пользователь уже сменил пароль или снова отправил запрос на восстановление пароля, то данный токен будет недействителен.
Коды ошибок: 100, 200, 423
Восстановление пароля (сохранение)
Метод сохранения нового пароля.
После заполнения формы смены пароля необходимо вызвать этот метод.
Метод: POST/security/changePassword
Модель запроса:
{
newPassword: STRING,// новый пароль
resetToken: STRING// токен в ссылке на страницу с вводом нового
пароля
}
Модель ответа:Сессия
Коды ошибок: 425
Методы работы с обращениями
Получение категорий
Все обращения категоризированны, получить список доступных категорий можно при помощи следующего метода.
Метод: GET/api/application_category
Модель ответа:
{
categories:// список категорий
[
{
id: STRING,// idкатегории
name: STRING// наименование категории
},
]
}
Пример ответа:
"categories":[
{
"id": "aca48aff-4008-f27c-84e6-6d10ba771dc2",
"name": "Несанкционированный сброс твердых бытовых отходов"
},
{
"id": "23c6aead-1d10-f348-b9bf-ec74a2868560",
"name": "Нарушение покрытия дорожного полотна"
}
]
Создание обращения
Добавление нового сообщения о проблеме или нарушении.
Методы:
POST/api/application - создание сообщений.
POST/api/application/createAndSend - создание и отправка сообщения на
модерацию.
Header:
Auth-Token: STRING(Обязательное поле)
Модель запроса:
{
title: STRING,// заголовок
description: STRING,// текст сообщения
originalApplicationId: UUID,// В случае связанных заявок
categoryId: UUID,// idкатегории
sourceSystem: {// платформа
code: STRING// код платформы
},
place: {// место
address: STRING,// адрес
latitude: NUMBER(10,7),// широта
longitude: NUMBER(10,7),// долгота
federalSubjectId: UUID,// федеральный округ
subjectId: UUID,// федеральный субъект
municipalityName: UUID// муниципалитет
},
attachmentIds: [STRING,.. STRING]// вложения
}
Поле “code” принимает следующие значения: “MOBILE” / ”WEB” / ”CORE”
latitude, longitude - числа с дробной частью и точкой в качестве разделителя
regionId - существующий идентификатор региона
Модель ответа: Заявка
Коды ошибок: 100, 200, 301, 321 323, 331, 332, 333
Получение обращения
Методы получения данных одного конкретного сообщения (загрузки) по номеру или по id этого сообщения.
Методы:
GET/api/application?id=####-###-###-#####// загрузка по id
GET/api/application/number/{number}// загрузка по номеру
id: UUID // id заявки
number: INT// номер сообщения.
Header:
Auth-Token: STRING
Модель ответа:Заявка
Коды ошибок:301
Отправка обращения
Отправляет сообщение на модерацию.
Метод:
POST/api/application/send
Header:
Auth-Token: STRING
Модель запроса:
{
id: UUID//id заявки
}
Модель ответа: Заявка
Коды ошибок:100
Выполнение действий над обращением
Выполнение бизнес-процессов.
Метод:
POST/api/application/action
Модель запроса:
{
id: UUID, // id заявки
action: String,// действие
comment: Комментарий// объект комментария
}
Пример запроса:
{
id: “15aa3a0b-1f33-4b0d-84a0-a26484d40967“,
action: “Подтвердить”,
comment: {
content: “Всё верно изложено”,
"attachments":[
{"id":"6b2a518e-ff2e-a34e-bc36-1b71c1319436"},
....]
}
}
Модель ответа:
{
successful: true/false
}
Коды ошибок:100, 341, 407
Добавить обращение в избранное
Добавление сообщения в список избранных и исключение его из этого списка.
Методы:
POST/api/application/favorite -добавить в избранное.
POST/api/application/unfavorite - исключить из избранного.
Модель запроса:
{
id: UUID//id заявки
}
Модель ответа:
{
favorite: BOOLEAN
}
true - сообщение успешно добавлено в избранное (или уже находится в избранном).
false - сообщение успешно удалено из избранного.
Коды ошибок: 100, 401, 402, 403
Присоединится к обращению
Методы:
POST /application/like// Присоединится
POST /application/unlike // Отсоединится
Модель запроса:
{
id: UUID//id заявки
}
Модель ответа:
{
like: true/false // При отсоединении приходит false
likesCount: INTEGER// кол-во голосов
}
Список обращений (поиск)
Метод:POST /application/find
Модель запроса:
{
limit: INTEGER,// кол-во записей (max: 1000)
offset: INTEGER,// с какой записи искать
mine: BOOLEAN,// только собственные (обязательна авторизация)
applicationId: UUID,// id обращения
applicationNumber: STRING,// уникальный номер обращения (или часть
номера)
federalSubjectId: UUID,// ф. округ
subjectId: UUID,// субъект РФ
municipalityId: UUID,// муниципалитет
categoryId: UUID,// idкатегории
createdFrom: LONG,// начало временного интервала создания
обращения
createdTill: LONG,// конец временного интервала создания обращения
orderby: STRING,// критерий сортировки
groupId: STRING,// inbox - поиск обращений со статусами 20 и 100 и др.
likes: INTEGER,// количество лайков у сообщения
square: {// прямоугольник координат
topLat: DOUBLE,
leftLong: DOUBLE,
bottomLat: DOUBLE,
rightLong: DOUBLE
}
}
Модель ответа:
{
total: INTEGER,// общее кол-во найденных обращений
applications: [Заявка]// список найденных обращений
}
Таблица 2.2
Критерии сортировки
Code |
Message |
|
по умолчанию |
По умолчанию обращения сортируются по дате изменения. |
|
category_and_createTs |
Сортировка по двум параметрам.Первый:Сначала идут “требующие редактирования”, затем “требующие подтверждения”, затем черновики, отправленные, опубликованные, на рассмотрении, в работе, запланированные, отклонённые.Второй: внутри первой сортировки обращения сортируются по дате создания. |
|
category_and_updateTs |
Сортировка по двум параметрам.Первый:Сначала идут “требующие редактирования”, затем “требующие подтверждения”, затем черновики, отправленные, опубликованные, на рассмотрении, в работе, запланированные, отклонённые.Второй: внутри первой сортировки обращения сортируются по дате изменения. |
Таблица 2.3
Коды ошибок
Code |
Message |
Описание |
|
100 |
имя поля |
пустое обязательное поле |
|
200 |
имя поля |
невалидное значение |
Выгрузка сообщения в xml [12]
Метод:
POST /application/export
Модель запроса:
{
limit: INTEGER,//кол-возаписей (max: 1000)
offset: INTEGER,//с какой записи искать
mine: BOOLEAN,//только собственные (обязательна авторизация)
applicationId: UUID,//id обращения
applicationNumber: STRING,//уникальный номер обращения (или часть
номера)
federalSubjectId: UUID,//ф. округ
subjectId: UUID,//субъект РФ
municipalityId: UUID,// муниципалитет
categoryId: UUID,// id категории
createdFrom: LONG,// начало временного интервала создания
обращения
createdTill: LONG,// конец временного интервала создания обращения
orderby: STRING, // критерий сортировки
groupId: STRING// inbox - поиск обращений со статусами 20 и 100 и др.
square: {// прямоугольник координат
topLat: DOUBLE,
leftLong: DOUBLE,
bottomLat: DOUBLE,
rightLong: DOUBLE
}
}
Критерии сортировки: см. табл. 2.2
Модель ответа:
В случае успеха отдается файл в формате xml[9].
Удаление обращения
Метод:
DELETE /application/{id}
Пример запроса: /application?id=e67777a2-86ea-1a19-8a4f-4b52b6d65f40
Модель ответа:
В случае успеха ответ не содержит дополнительных объектов
Пользователь должен быть авторизован.
Удаляется обращение только в статусе черновик.
Добавление комментария
Метод: POST /application/{applicationId}/comment
Модель запроса:
Комментарий
Модель ответа:
В случае успеха ответ не содержит дополнительных объектов
Коды ошибок: см. табл. 2.3
Методы работы с профилем
Регистрация и редактирование профиля
Осуществляет регистрацию нового пользователя и изменение данных профиля уже существующего пользователя.
Методы:
POST/api/profile- регистрация
PUT/api/profile - редактирование
Модель запроса:
{
login: STRING,// логин заявителя
email: STRING,// адрес ел. почты заявителя
phoneNumber: STRING,// телефонный номер заявителя
firstName: STRING,// имя
lastName: STRING,// фамилия
middleName: STRING,// отчество
registrationAddress: STRING,// адрес регистрации заявителя
registrationPostcode: STRING,// почтовый индекс
actualAddress: STRING,// адрес проживания
actualPostcode: STRING,// актуальный почтовый индекс
password: STRING,// пароль
inspector: BOOLEAN,// флаг инспектора
redirectUrl: STRING, // ссылка, на которую будет переброшен
пользователь после подтверждения email
company: {// компания в которой состоит заявитель
name: STRING,// название компании
ogrn: STRING,// основной гос. регистрационный номер
position: STRING,// должность
},
notifications: {// уведомления
email: BOOLEAN,// по эл. почте
sms:BOOLEAN// по смс
},
displayPattern: {// отображение (другим пользователям?):
firstName: BOOLEAN,// имени
lastName: BOOLEAN,// фамилии
middleName: BOOLEAN,// отчества
companyName: BOOLEAN// название компании
}
}
Поле password обязательно только при регистрации, при изменении профиля password необходимо указывать только в случае смены пароля.
Для физ.лиц поле company не передаётся (company: null), для юр. лиц поле company необходимо заполнять полностью.
Валидация: email:
(?:[a-z0-9!#$%&'+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&'+/=?^_`{|}~-
]+)|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\[\x01-
\x09\x0b\x0c\x0e-\x7f])")@(?:(?:a-z0-9?.)+a-z0-9?|[(?:(?:25[0-5]|2[0-4][0-
9]|[01]?[0-9][0-9]?).){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-
z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\[\x01-
\x09\x0b\x0c\x0e-\x7f])+)])
email будет сохранен в нижнем регистре
phoneNumber:
(8|+7)-?(?\d{3})?-?\d{1}-?\d{1}-?\d{1}-?\d{1}-?\d{1}-?\d{1}-?\d{1}
но в базе телефон будет сохранен в виде: +71234567890
postcode:
\d{3}\s?\d{3}
в базе индекс будет сохранен в виде 123456
login / password:
^*[A-Za-z0-9]*
Модель ответа:
В случае успеха ответ не содержит дополнительных объектов
Коды ошибок:100, 101, 102, 103, 104, 105, (111, 112), 200, 201, 202, 203, 204, 205, 206, 207, 311, 312, 313
Проверка на занятость полей
Производит проверку на возможность использования уникальных значений для заполнения полей профиля.
Метод:
POST/security/check_availability
Модель запроса:
{
login: STRING,
email: STRING,
phoneNumber: STRING
}
Модель ответа:
{
loginExists: BOOLEAN,
emailExists: BOOLEAN,
phoneNumberExists: BOOLEAN,
}
true - поле с таким значением уже существует в базе данных.
Коды ошибок:200
Получение профиля
Получение персональных данных профиля, указанных при
авторизации.
Метод:
GET/api/profile
Header:
Auth-Token: STRING (Обязательное поле)
Модель ответа: Профиль (без пароля).
Пример ответа:
{
login: “tester”,
email: “tester@test.te”,
phoneNumber: “+71234567890”,
taxNumber: null,
firstName: “Иван”,
lastName: “Иванов”,
middleName: “Иванович”,
registrationAddress: null,
registrationPostcode: null,
actualAddress: null,
actualPostcode: null,
inspector: false,
company: {
name: “Иванов и ко”,
ogrn: “1234567890123”,
position: “Исполнительный директор”,
},
notifications: {
email: true,
sms:false
},
displayPattern: {
firstName: true,
lastName: false,
middleName: false,
companyName: false
}
}
Важно! При регистрации профиля пользователь создается неактивированным. На телефонный номер высылается сообщение с кодом подтверждения регистрации, который нужно ввести, чтобы активировать профиль. При активации пользователя ему добавляется роль (Заявитель или Инспектор) в зависимости от настроек.
Коды ошибок: 401, 402, 403
Подтверждение профиля
Повторная отправка сообщения с кодом подтверждения профиля*
Повторная отправка кода активации профиля (и одновременно подтверждения телефона) на указанный телефонный номер.
Метод:
POST/api/sms/resending
При повторной отправке генерируется новый код, а старый - становится недействительным.
Профиль автоматически определяется по номеру телефона.
Модель запроса:
{
phoneNumber: STRING
}
Пример объекта запроса:
{
"phoneNumber":"8-666-66-66”
}
Модель ответа:
В случае успеха ответ не содержит дополнительных объектов
Коды ошибок: 403, 424
Блокировка профиля
Блокирует профиль пользователя.
Метод:
DELETE/api/profile
Пользователь определяется по токену сессии.
Пользователь должен иметь пользовательскуюсессию.
При отправке запроса блокируется профиль пользователя, повторный вход в систему будет невозможен.
Header:
Auth-Token: STRING
В случае успеха ответ не содержит дополнительных объектов
Коды ошибок: 401, 402
Методы справочных данных
Получение регионов (округов, субъектов, образований)
Метод: GET /nsi/region/federalDistrict?include_subjects=true/false
Модель ответа:
{
Federal Districts: [
id: UUID,// id федерального округа
title: STRING,// наимнование федерального округа
subjects: [// список субъектов РФ, которые входят в этот округ
id: UUID,// id субъекта РФ
title: STRING// наименование субъекта рф
]
]
}
если include_subjects = true, то округ возвращается с субъектами
Метод:
GET /nsi/region/subject?federal_district_id=DISTRICT_ID
Модель ответа:
{
subjects: [// список субъектов РФ, которые входят в этот округ
id: UUID,// id субъекта РФ
title: STRING// наименование субъекта рф
]
}
Методы:
GET /nsi/region/municipality
GET /nsi/region/subject?subject_id=SUBJECT_ID
Модель ответа:
{
municipalities: [// списокмуниципалитетов
id: UUID,// idмуниципалитета
title: STRING// наименование муниципалитета
]
}
Получение новостей
Метод: GET /news?offset&limit
offset - кол-во пропускаемых записей
limit - ограничение по кол-ву новостей
Модель ответа:
{
total: LONG,//общее кол-во новостей в системе
offset: LONG,//кол-во пропущенных новостей
limit: LONG,//ограничение по кол-ву новостей
page: [Новость]//вернётся вариант новостей для preview
}
Пояснения к процессу работы со списком новостей:
Полеtotal показывает общее кол-во новостей? limit кол-во новостей на 1 страницу. Для получения конкретной страницы нужно высылать параметр
offset = № страницы * limit.
Кол-во страниц можно высчитать: total / limit.
Получение новости
Метод:GET /news/{id}
Модель ответа:Новость
Коды ошибок:404
Получение списка показателей для рейтинга
Метод:GET /rating/indicators
Модельответа:
[
{
id: String,// idиндикатора, например, «PUBLISHED»
caption: STRING// описание индикатора
},
…
]
Методы рейтингов и статистики
Получение рейтинга регионов
Получение статистики по статусам
Метод:
GET /application/stats/statuses?mine=true/false
Модель ответа:
{
statuses: [// список объектов статистики по статусам
{
code: “0”,// код статуса
title: “Черновик”,// наименование статуса
count: 10// кол-во обращений по статусам
}
],
favorites: LONG,
total: LONG
}
Список статусов:
*Всего (TOTAL)
Выводит общее количество сообщений со статусами в соответствии с приходящими фильтрами.
*Избранное (FAVORITE)
Сообщения фильтруются по проставленному пользователем признаку
*Черновик (“0”)
Сообщения фильтруются по статусу «Черновик», который присваивается при сохранении сообщения без отправки
*Отправлено (“5”)
Сообщения фильтруются по статусу «Отправлено», который присваивается при отправке сообщений на модерацию
*Отказано в публикации (“20”)
Сообщения фильтруются по статусу «Отказано в публикации», который присваивается, при отклонении сообщения модератором
*Опубликовано (“10”)
Сообщения фильтруются по статусу «Опубликовано», который присваивается при успешном прохождении модерации
*На рассмотрении (“40”)
Сообщения фильтруются по статусу «На рассмотрении», который присваивается при назначении модератором сообщения тероргану, но терорган еще не отклонил и не принял в работу
*В работе (“30”)
Сообщения фильтруются по статусу «В работе», который присваивается при принятии терорганом сообщения в работу или при передаче модератором сообщения в Субъект РФ, также статус «В работе» сохраняется при назначении инспектора терорганом
*Запланировано (“50”)
Сообщения фильтруются по статусу «Запланировано», который присваивается при принятии решения терорганом о невозможности исполнения сообщения в срок 30 дней
*Отправлено повторно ()
Сообщения фильтруются по статусу «Отправлено повторно», который присваивается при повторной отправки сообщения после отклонения пользователем принятого решения
*Завершено (“100”)
Сообщения фильтруются по статусу «Завершено», который присваивается при отправке итогового ответа модератором или Терорганом
Получение статистики по группировкам статусов
Метод: GET /application/stats/groups
Модель ответа:
{
groupByStatuses: [
{
"code": "favorite",
"title": "Избранные",
"count": 10
},
{
"code": "inbox",
"title": "Входящие",
"count": 25
},...
]
“total”: 35 - сумма по группам
}
Получение статистики для индикаторов на устройствах
Метод: GET /application/stats/indicators/periodic_counters
Модель ответа:
{
totalCount: LONG,
weekCount: LONG,
dayCount: LONG
}
Метод возвращает число опубликованных обращений по трём периодам: всё время, неделя, день.
Методы работы с файлами
Отправка файла
Метод: POST /attachment
Модель запроса: Multipart
Модель ответа: Файл вложения
Таблица 2.4
Коды ошибок
Code |
Message |
Описание |
|
303 |
Невалидное содержимое |
||
304 |
Недопустимый формат файла |
||
306 |
Превышен допустимый размер файла |
Получение вложения
Метод: GET /attachment/{id}
Модель ответа:Файл вложения
Коды ошибок:404
Обратная связь
Отправляет письмо на почту обратной связи.
Метод: POST/security/feedback
Модель запроса:
{
userName: STRING// имя отправителя
email: STRING// почта для обратной связи
headerMessages: STRING// заголовок письма
messages: STRING// текст письма
}
Пример объекта запроса:
{
"userName": "Иванов Иван",
"headerMessages": "Вылет при быстром переходе между экранами",
"email": "defaultEmail@test.com",
"messages": "При быстром переходе между экранами приложение
крашится"
}
Модель ответа: В случае успеха ответ не содержит дополнительных объектов.
Коды ошибок:100, 200
Объекты ответов
В этом блоке описаны основные классы объектов ответов, используемые в системе.
Профиль
{
login: STRING,// логин заявителя
email: STRING,// адрес ел. почты заявителя
phoneNumber: STRING,// телефонный номер заявителя
firstName: STRING,// имя
lastName: STRING,// фамилия
middleName: STRING,// отчество
displayName: STRING,// полное ФИО (зависит от флагов отображения)
actualAddress: STRING,// адреспроживания
actualPostcode: STRING,// актуальныйпочтовыйиндекс
password: STRING,// пароль
inspector: BOOLEAN,// флагинспектора
redirectUrl: STRING,// url для перехода
company: {// компания в которой состоит заявитель
name: STRING,// названиекомпании
ogrn: STRING,// основнойгос. регистрационныйномер
position: STRING,// должность
},
notifications: {// уведомления
email: BOOLEAN,// по эл. почте
sms:BOOLEAN // по смс
},
displayPattern: {// отображение (другим пользователям?):
firstName: BOOLEAN,// имени
lastName: BOOLEAN,// фамилии
middleName: BOOLEAN,// отчества
companyName: BOOLEAN// названия компании
},
emailConfirm: BOOLEAN,// флаг подтверждения эл.почты
phoneConfirm: BOOLEAN// флаг подтверждения телефона
}
Обращение
{
id: UUID,// id обращения
number: STRING,// уникальный номер обращения
categoryId: UUID,// id категории обращения
categoryName: STRING,// название категории
status: STRING,// общий статус обращения
title: STRING,// заголовок обращения
description: STRING,// тело обращения
receivedTs: DATETIME,// дата принятия обращения
updateTs: DATETIME,// дата последнего обновления заявки
(комментария)
author: STRING, // ФИО название компании автора согласно
настройкам
originalApplication: STRING,// родительскоеобращение
processStage: STRING,// текущаястадияпроцесса
favorite: BOOLEAN, // флаг того, что обращение добавлено в
«избранное»
dueDate: LONG,// срок завершения текущей стадии.
controlDate: LONG,// срок завершения обработки заявки.
processStatus: {// статус процесса обращения.
id: UUID,// id статуса
code: STRING,// код статуса
name: STRING// наименование статуса
}
sourceSystem: {// платформа, с которой было отправлено обращение
code: STRING*// код платформы («MOBILE» для мобильных
платформ)
}
actions: {// возможные действия над обращением
[
name: STRING,// наименование действия
code: STRING// рабочий код действия
],
},
place: {// местоположение проблемы
address: STRING,// адрес
latitude: NUMBER(10,7),// широта
longitude: NUMBER(10,7),// долгота
federalDistrictId: UUID,// id федерального округа
federalDistrictName: STRING,// наименование федерального округа
subjectId: UUID,// id федерального субъекта
subjectName: STRING,// наименование федерального субъекта
municipalityName: STRING,// наименованиемуниципалитета
},
attachments: [Файлвложения,..],// файлывложений
comments: [Комментарий,..]// комментарии
}
*sourceSystem.code может принимать значения: “MOBILE” / ”WEB” /
“CORE”
Комментарий
{
id: UUID,// id комментария
authorId: STRING,// id автора
authorName: STRING,// имя автора
created: LONG,// дата создания
content: STRING,// текст комментария
resolution: BOOLEAN,// флаг - является ли комментарий итоговым
решением
roleCode: STRING,// код роли комментатора
attachments: [Файл вложения,..]// вложения комментария
}
Файл вложения
{
id: UUID,// id файла
fileSize: LONG,// размерфайла
extension: STRING,// расширениефайла
url: STRING// ссылка для скачивания
}
Регион
{
id: UUID,// idрегиона
title: STRING,// Наименованиерегиона
}
Новость
{
id: UUID,// id новости
date: DATETIME,// дата создания
title: STRING,// заголовок
description: STRING,// текст новости
attachments: [Файл вложения,... ],// файлы-вложения новости
logo: STRING,// ссылка на один из файлов вложений
source: STRING,// источник новости
proof: STRING// ссылка на новость в источнике
}
Сессия
{
sessionId: STRING,// id сессии
}
мобильный приложение публичный информирование
3. Готовое приложение
3.1Экраны авторизации, регистрации и восстановления пароля
Экраны регистрации
Начальный экран регистрации
Экран должен содержать два элемента Физическое лицо и Юридическое лицо, при выборе того или другого открывается соответствующий экран регистрации.
Экран регистрации физического лица
На экране должны быть поля:
1. Логин*
Не должен содержать кириллицу (только латиница) и пробелов, миндлина 6, максдлина 50. Справа иконка в виде знака вопроса, при нажатии на которую всплывает информационное окно с заголовком: «Заполнение поля Логин» и с текстом: «Логин не должен содержать кириллицу (только латиница), спецсимволов ($, #, &,) и пробелов, минимальная длина 6, максимальная длина 50» и кнопкой Ок, при нажатии на которую окно исчезает
2. Пароль*
Не должен содержать кириллицу (только латиница) и пробелов, мин длина 6, максдлина 20. Справа иконка в виде знака вопроса, при нажатии на которую всплывает информационное окно с заголовком: «Заполнение поля Пароль» и с текстом: «Пароль не должен содержать кириллицу (только латиница) и пробелов, минимальная длина 6, максимальная длина 20» и кнопкой Ок, при нажатии на которую окно исчезает
3. Повтор пароля*
Должен совпадать с введенным в поле Пароль, максдлина 20 символов. Справа иконка в виде знака вопроса, при нажатии на которуювсплывает информационное окно с заголовком: «Заполнение поля Повтор пароля» и текстом: «Должен совпадать с введенным в поле Пароль, максимальная длина 20» и кнопкой Ок, при нажатии на которую окно исчезает
4. Фамилия*
Только на кириллице, не более 50 символов. Первая буква должна быть заглавной. Справа иконка в виде знака вопроса, при нажатии на которую всплывает информационное окно с заголовком: «Заполнение поля Фамилия» и с текстом: «Только на кириллице, не более 50 символов. Первая буква должна быть заглавной» и кнопкой Ок, при нажатии на которую окно исчезает
5. Имя*
Только на кириллице, не более 50 символов. Первая буква должна быть заглавной. Справа иконка в виде знака вопроса, при нажатии на которую всплывает информационное окно с заголовком: «Заполнение поля Имя» и с текстом: «Только на кириллице, не более 50 символов. Первая буква должна быть заглавной» и кнопкой Ок, при нажатии на которую окно исчезает
6. Отчество
Только на кириллице, не более 50 символов. Первая буква должна быть заглавной. Справа иконка в виде знака вопроса, при нажатии на которую всплывает информационное окно с заголовком: «Заполнение поля Отчество» и с текстом: «Только на кириллице, не более 50 символов. Первая буква должна быть заглавной» и кнопкой Ок, при нажатии на которую окно исчезает
7. Контактный телефон*
Должна быть маска +7(___)___-____ где при клике номер должен писаться только в местах, где находится символ _
8. Электронная почта*
Должна быть проверка формат e-mail @___.___, не должен содержать кириллицу (только латиница) и пробелов, максимальная общая длина не более 50 символов
9. Пометка о том, что поля, отмеченные * являются обязательными
10. Я согласен(на) получать уведомления о ходе рассмотрения сообщения по e-mail
Ответ пользователя должен быть выполнен в виде Переключателя
11. Принимаю условия регистрации*
Ответ пользователя должен быть выполнен в виде Переключателя, «условия регистрации» должны быть ссылкой на раздел условия регистрации на портале. По умолчанию выключен
12. Как к Вам обращаться?*
13. В виде Переключателя должны быть представлены Фамилия, Имя, Отчество
14. Можно выбрать только Фамилию, только Имя, Фамилию и Имя, Имя и Отчество, но нельзя выбрать только Отчество или Фамилию и Отчество
15. Кнопка «Далее»
При нажатии на кнопку должен происходить переход к информационному экрану регистрации. Если есть ошибки в заполнении или не все обязательные поля заполнены, то при нажатии должны подсвечиваться ошибки или не...
Подобные документы
Обзор мобильной операционной системы ios: Архитектура ОС iOS; уровень библиотек; среды разработки приложения (Xcode, Xamarin). Доступ к информации колледжа "Угреша". Требования к мобильному приложению. Подготовка среды разработки. Тестирование приложения.
дипломная работа [5,6 M], добавлен 10.07.2014Анализ российского рынка мобильных приложений. Мобильное приложение как новый канал коммуникации с целевой аудиторией. Этапы создания мобильного приложения. План продвижения мобильного приложения в сети Интернет. Бесплатные инструменты продвижения.
дипломная работа [1,6 M], добавлен 23.06.2016Анализ организационной структуры автоматизируемого подразделения, функции каждого сотрудника и принципы документооборота. Разработка структуры и алгоритмов информационной системы принятия решений. Описание архитектуры приложения и его основные функции.
дипломная работа [273,4 K], добавлен 10.07.2017Разработка и формализация эффективного подхода к оценке качества каналов трафика мобильного приложения. Преимущества работы с социальными сетями. Тестирование возможных типов каналов по привлечению установок приложения. Расчёт средней стоимости лидов.
дипломная работа [2,6 M], добавлен 09.02.2017Общая характеристика и структурная схема приложения, требования к нему и функциональные особенности, сферы практического применения. Обоснование выбора языка программирования. Описание интерфейса и инструкция пользователя. Проведение листинга программы.
дипломная работа [1,0 M], добавлен 10.07.2017Выбор и обоснование аппаратного обеспечения. Типы архитектуры веб-приложений. Шаблоны проектирования архитектуры приложения. Разработка инфологической модели базы данных. Подготовка к разработке приложения. Рассмотрение причин возникновения паттернов.
дипломная работа [3,0 M], добавлен 27.11.2022Общая характеристика и анализ требований к разрабатываемому приложению, функциональные особенности и сферы практического применения. Проектирование базы данных и выбор системы управления ею. Тестирование приложения и выбор языка программирования.
дипломная работа [791,8 K], добавлен 10.07.2017Постановка задач и требований к проектируемому интернет-приложению. Обоснование выбора системы управления базы данных и языков программирования. Разработка архитектуры заданного интернет-приложения, технико-экономическое обоснование его эффективности.
дипломная работа [461,3 K], добавлен 24.02.2013Разработка приложения "Калькулятор" для подсчитывания количества символов или букв в арабском тексте. Проектирование программной системы, определение функциональных требований к приложению. Алгоритм разработки модульной структуры мобильного приложения.
презентация [853,9 K], добавлен 08.04.2019Мобильное приложение и его предназначение для организации информационного обмена между мобильными сотрудниками компании (водитель эвакуатора, мастер техпомощи) и CRM системой. Синхронизация данных о заказах. Пользовательский интерфейс приложения.
дипломная работа [594,5 K], добавлен 12.08.2017Современное состояние рынка мобильных приложений. Основные подходы к разработке мобильных приложений. Обоснование выбора целевой группы потребителей приложения. Этапы проектирования и разработки мобильного приложения для операционной системы Android.
курсовая работа [987,1 K], добавлен 27.06.2019Создание, изучение и разработка приложение на Android. Среда разработки приложения DelphiXE5. Установка и настройка среды программирования. Этапы разработки приложения. Инструменты для упрощения конструирования графического интерфейса пользователя.
курсовая работа [1,6 M], добавлен 19.04.2017Разработка системы синхронизации уведомлений (клиентское приложение для смартфонов под управлением операционной системы Android версии 4.0.0 и выше). Разработка сервера, работающего под управлением Windows. Расчет себестоимости создания системы.
дипломная работа [706,7 K], добавлен 17.07.2016Выбор и обоснование архитектуры приложения, требования к его функциональности, описание возможностей и сфера практического применения. Технологические средства разработки и отладки. Проектирование и разработка программы, ее тестирование и листинг.
дипломная работа [2,2 M], добавлен 13.07.2015Область применения и требования создаваемого Web-приложения. Требования к техническому и программному обеспечению. Разработка структуры Web-приложения и выбор средств программной реализации. Программная реализация Web-приложения. Структура базы данных.
дипломная работа [1,4 M], добавлен 03.06.2014Разработка базы данных для информационной системы "Библиотека". Системный анализ, инфологическое, даталогическое и физическое проектирование. Программирование бизнес-логики, разработка клиентского приложения. Создание web-приложения, web-доступ.
курсовая работа [3,3 M], добавлен 15.09.2014Спецификация требований к разрабатываемому приложению. Разработка структурной схемы интерфейса. Описание алгоритма шифрования DES. Разработка программного кода приложения "DES". Проведение исследования основных шагов для генерации ключей и шифрования.
курсовая работа [398,4 K], добавлен 13.12.2022Обзор существующих объектных архитектур. Архитектура программного обеспечения. Создание веб-сервиса "Библиотека", предоставляющего механизмы работы с данными на стороне клиентского приложения. WEB-сервис и трехуровневая архитектура в основе приложения.
лабораторная работа [1,5 M], добавлен 16.06.2013Характеристика объекта автоматизации. Создание многоуровневой архитектуры приложения, отладка метода безошибочной идентификации пользователей системы. Разработка нестандартного метода преобразования объектов базы данных в объекты классов приложения.
курсовая работа [395,4 K], добавлен 28.04.2015Технические средства обеспечения функционирования информационной системы. Проектирование базы данных информационной системы. Разработка веб-приложения – справочно-информационной системы для предприятия. Организация записи информации в базу данных.
дипломная работа [4,4 M], добавлен 16.05.2022