Мобильное приложение для оказания юридической помощи

Основная цель дипломной работы— это создание системы, которая бы позволяла для пользователя получить актуальную информацию по любому вопросу, найдя ее в библиотеке решений или задав свой собственный, легкую для понимания
Author image
Timur
Тип
Дипломная работа
Дата загрузки
05.10.2022
Объем файла
1116 Кб
Количество страниц
29
Уникальность
Неизвестно
Стоимость работы:
2400 руб.
3000 руб.
Заказать написание работы может стоить дешевле

ВВЕДЕНИЕ

Существует множество приемных и центров оказания юридической помощи. Зачастую такая информация может быть сложна для понимания у населения или труднодоступна для получения. Поиск необходимой помощи может затянуться в огромном объеме разных ресурсов, а цены могут оказаться неподъемно велики. Такой формат кажется устаревшим и в век цифровизации нуждается в переосмыслении. Исходя из минусов, изложенных выше, стало понятно, что необходимо создать современное решение интерактивной юридической помощи для населения. Основная цель проекта — это создание системы, которая бы позволяла для пользователя получить актуальную информацию по любому вопросу, найдя ее в библиотеке решений или задав свой собственный, легкую для понимания. Информация должна быть проста и интерактивна, ведь алгоритм решения намного проще для понимания, чем огромный объемный и неструктурированный текст, поэтому помощь должна быть представлена в виде простых шагов. Так же система должна включать площадку для юристов с возможностью получить вопросы со стоимостью от пользователей по своей специализации, получать отзывы, увеличивать свою компетенцию и доход. Рассмотрим классическую ситуацию взаимодействия с системой: пользователь находит сферу вопроса, вопрос и получает пошаговое решение на свой вопрос с расписанными шагами, в случае если пользователь не смог разобраться самостоятельно, есть возможность получить помощь у юристов, задав свой вопрос и желаемую цену. Далее пользователь может просмотреть свою заявку и ожидать ответов от юристов. Юрист же может просмотреть заявки, найти ему подходящую и согласиться с условиями заявки. 

СОДЕРЖАНИЕ

ПЕРЕЧЕНЬ ОСНОВНЫХ ОБОЗНАЧЕНИЙ И СКОРАЩЕНИЙ 9

ВВЕДЕНИЕ 10

1. ПРОЕКТИРОВАНИЕ АРХИТЕКРУРЫ ПРИЛОЖЕНИЯ 13

1.1. ОПИСАНИЕ АРХИТЕКТУРНЫХ ЦЕЛЕЙ 13

1.2. АРХИТЕКТУРНЫЕ ПРИНЦИПЫ 14

1.3. АДАПТАЦИЯ АРХИТЕКТУРНЫХ ПРИНЦИПОВ 15

1.3.1 DATA СЛОЙ 16

1.3.2 DOMAIN СЛОЙ 17

1.3.3 PRESENTATION СЛОЙ 17

1.4. ПРЕЗЕНТАЦИОННЫЙ ПАТТЕРН 17

1.5. РАЗДЕЛЕНИЕ НА МОДУЛИ 20

2. ВЫБОР ИНСТРУМЕНТОВ ДЛЯ РЕАЛИЗАЦИИ ПРОЕКТА 23

2.1. РАЗДЕЛЕНИЕ НА МОДУЛИ 23

2.2. ВЫБОР ЯЗЫКА ПРОГРАММИРОВАНИЯ 23

2.3. ВЫБОР ФРЕЙМОРКА ДЛЯ АСИНХРОННОЙ РАБОТЫ С ДАННЫМИ 26

2.4. ВЫБОР ФРЕЙМВОРКА ДЛЯ СОЗДАНИЯ ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА 27

2.5. ВЫБОР DEPENDENCY INJECTION ФРЕЙМОРКА 29

3. РЕАЛИЗАЦИЯ ПРОЕКТА 32

3.1. ИСПОЛЬЗОВАНИЕ БАЗОВЫХ КОМПОНЕНТОВ ПРИЛОЖЕНИЯ ANDROID 32

3.2. ПРИМЕНЕНИЕ ВОЗМОЖНОСТЕЙ ЯЗЫКА 33

3.3. ОПИСАНИЕ ФУНКЦИОНАЛА ПРИЛОЖЕНИЯ 36

4. ОБЕСПЕЧЕНИЕ КАЧЕСТВА РАЗРАБОТКИ, ПРОДУКЦИИ, ПРОГРАММНОГО ПРОДУКТА 48

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 53

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Чистый код. Создание, анализ и рефакторинг / Р. Мартин // Питер, 2010

2. Google. Develop Android apps with Kotlin. [Электронный ресурс]. URL: https://developer.android.com/kotlin (дата обращения 22.05.2022)

3. Котлин в действии / С. Исакова // ДМК Пресс, 2017

4. Kotlin for Android. [Электронный ресурс]. URL: https://kotlinlang.org/docs/android-overview.html (дата обращения 22.05.2022)

5. Dependency Injection with Hilt. [Электронный ресурс]. URL: https://developer.android.com/training/dependency-injection/hilt-android (дата обращения 24.05.2022)

6. Getting started with Android Jetpack. [Электронный ресурс]. URL: https://developer.android.com/jetpack/getting-started (дата обращения 24.05.2022)

7. Compose and other libraries. [Электронный ресурс]. URL: https://developer.android.com/jetpack/compose/libraries (дата обращения 27.05.2022)

8. Compose. Jetpack Compose. [Электронный ресурс]. URL: https://habr.com/ru/company/epam_systems/blog/522152/ (дата обращения 27.05.2022)

9. Еще раз про многомодульность Android-приложений. [Электоронный ресурс]. URL: https://habr.com/ru/company/kaspersky/blog/520766/ (дата обращения 27.05.2022)

10. Заблуждения Clean Architecture. [Электронный ресурс]. URL: https://habr.com/ru/company/mobileup/blog/335382/ (дата обращения 29.05.2022)

11. Clean Architecture с Koltin. [Электронный ресурс]. URL: https://medium.com/nuances-of-programming/clean-architecture-с-kotlin-5228794b71db (дата обращения 30.05.2022)

12. Android MVI with Jetpack Compose. [Электронный ресурс]. URL: https://medium.com/swlh/android-mvi-with-jetpack-compose-b0890f5156ac (дата обращения 30.05.2022)

Из листинга 3.3. следует, что состояние пользовательского интерфейса может быть представлено только 3 состояниями — это успех, который содержит данные для отображения, ошибка, которая содержит текст ошибки и загрузка. Соответственно, пользовательский интерфейс обязан реализовывать свою логику только для этих трех состояний, код получается не нагромождённым лишними конструкциями и более безопасным.  Этот же подход был реализован и для получения данных от источников. Данные могут быть в двух состояния: успех, ошибка. Обернув наши данные в данный утилитарный класс в месте получения информации, мы становимся обязаны реализовать поведение для успеха и ошибки. Это позволяет сделать наше приложение устойчивым от ошибок источников данных, например серверной части приложения, а также сделать приложения с правильным поведением для пользователя, в случае ошибки пользователь будет уведомлен и знать, что случилось в работе нашего приложения.