Аннотации
This commit is contained in:
@@ -1,9 +1,13 @@
|
|||||||
#heading(numbering: none, outlined: true)[Список условных обозначений и сокращений]
|
#import "common.typ": pz-front-heading, pz-table
|
||||||
|
|
||||||
#import "common.typ": pz-table
|
#pz-front-heading[Обозначения и сокращения]
|
||||||
|
|
||||||
|
#set par(first-line-indent: 1.25cm, justify: true)
|
||||||
|
|
||||||
|
В настоящем документе применяются следующие обозначения и сокращения:
|
||||||
|
|
||||||
#pz-table(
|
#pz-table(
|
||||||
[Условные обозначения и сокращения],
|
[],
|
||||||
2,
|
2,
|
||||||
table.header([Обозначение], [Расшифровка]),
|
table.header([Обозначение], [Расшифровка]),
|
||||||
[API], [Application Programming Interface — программный интерфейс приложения],
|
[API], [Application Programming Interface — программный интерфейс приложения],
|
||||||
|
|||||||
@@ -1,9 +1,26 @@
|
|||||||
#heading(numbering: none, outlined: true)[Abstract]
|
#import "common.typ": pz-biblio-strip-en, pz-front-heading
|
||||||
|
|
||||||
#v(0.5em)
|
#pagebreak(weak: true)
|
||||||
|
|
||||||
The thesis describes the Wallenc mobile application — a client wallet for storing data on untrusted backends without a dedicated application server. Data is encrypted on the device before upload; decryption is performed only when the user enters a valid key. The work includes analysis of analogues, requirements, architecture and UI design, Kotlin implementation for Android, testing, and a brief economic assessment.
|
#pz-biblio-strip-en(
|
||||||
|
udk: "004.738.5",
|
||||||
|
author: "Pytkov Roman Evgenievich",
|
||||||
|
title: "Development of the Wallenc mobile application — a universal wallet for secure storage of data on untrusted backends without a dedicated application server",
|
||||||
|
year: 2026,
|
||||||
|
)
|
||||||
|
|
||||||
The application uses MVVM and Clean Architecture. Main features are local and remote vault management, client-side AES encryption, Room metadata storage, and Yandex OAuth integration.
|
#pz-front-heading(page-break: false)[Annotation]
|
||||||
|
|
||||||
Keywords: mobile application, client-side encryption, Android, vault, OAuth, Room.
|
#{
|
||||||
|
set par(first-line-indent: 0pt, justify: true)
|
||||||
|
|
||||||
|
[The thesis describes the Wallenc mobile application — a client wallet for storing data on untrusted backends without a dedicated application server. Data is encrypted on the device before upload; decryption is performed only when the user enters a valid key. The work includes analysis of analogues, requirements, architecture and UI design, Kotlin implementation for Android, testing, and a brief economic assessment.]
|
||||||
|
|
||||||
|
parbreak()
|
||||||
|
|
||||||
|
[The application uses MVVM and Clean Architecture. Main features are local and remote vault management, client-side AES encryption, Room metadata storage, and Yandex OAuth integration.]
|
||||||
|
|
||||||
|
parbreak()
|
||||||
|
|
||||||
|
[Keywords: mobile application, client-side encryption, Android, vault, OAuth, Room.]
|
||||||
|
}
|
||||||
|
|||||||
20
Report/includes/abstract-ru.typ
Normal file
20
Report/includes/abstract-ru.typ
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
#import "common.typ": pz-biblio-strip-ru, pz-front-heading
|
||||||
|
|
||||||
|
#pz-biblio-strip-ru(
|
||||||
|
udk: "004.738.5",
|
||||||
|
author: "Пытков Роман Евгеньевич",
|
||||||
|
title: "Разработка мобильного приложения Wallenc — универсального кошелька для безопасного хранения данных на небезопасных хранилищах без собственного сервера",
|
||||||
|
year: 2026,
|
||||||
|
)
|
||||||
|
|
||||||
|
#pz-front-heading(page-break: false)[Аннотация]
|
||||||
|
|
||||||
|
#{
|
||||||
|
set par(first-line-indent: 1.25cm, justify: true)
|
||||||
|
|
||||||
|
[Пояснительная записка посвящена разработке мобильного приложения Wallenc — клиентского кошелька для безопасного хранения данных на недоверенных хранилищах без собственного сервера приложения. Описаны анализ предметной области и аналогов, формирование требований, проектирование архитектуры и пользовательского интерфейса, программная реализация на Kotlin (Android, Jetpack Compose, Room, Hilt), тестирование и краткая экономическая оценка.]
|
||||||
|
|
||||||
|
parbreak()
|
||||||
|
|
||||||
|
[Реализованы управление локальными и удалёнными vault, клиентское AES-шифрование, OAuth Яндекс, служебное хранение метаданных в Room; спроектирован контур синхронизации без передачи ключей провайдеру. Исходный код размещён в приватном репозитории Gitea ЮФУ. Полный листинг исходных файлов — приложение А; программная документация — приложение Б.]
|
||||||
|
}
|
||||||
5
Report/includes/blank-front-matter.typ
Normal file
5
Report/includes/blank-front-matter.typ
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
// Заглушки под титул, ТЗ и резерв (3 стр.); удалить перед склейкой с внешним PDF.
|
||||||
|
#for _ in range(3) {
|
||||||
|
pagebreak(weak: true)
|
||||||
|
page(header: none, footer: none)[]
|
||||||
|
}
|
||||||
@@ -5,6 +5,105 @@
|
|||||||
|
|
||||||
#let pz-appendix-title(body) = heading(level: 1)[#body]
|
#let pz-appendix-title(body) = heading(level: 1)[#body]
|
||||||
|
|
||||||
|
#let pz-sig-line(label) = box(
|
||||||
|
width: 5.5cm,
|
||||||
|
stroke: (bottom: 0.5pt),
|
||||||
|
inset: (bottom: 3pt),
|
||||||
|
)[#label]
|
||||||
|
|
||||||
|
// Без heading(level: 1): в gost перед ним всегда pagebreak (add-pagebreaks).
|
||||||
|
#let pz-front-heading(body, page-break: true) = {
|
||||||
|
if page-break {
|
||||||
|
pagebreak(weak: true)
|
||||||
|
}
|
||||||
|
align(center)[
|
||||||
|
#text(weight: "bold")[#upper(body)]
|
||||||
|
]
|
||||||
|
v(0.75em)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Бланк аннотации: 2×2 без рамок; левый столбец — отступ, текст во 2-м (2 ячейки).
|
||||||
|
#let pz-dept-mop = "кафедра МОП ЭВМ"
|
||||||
|
#let pz-dept-sait = "кафедра системного анализа и телекоммуникаций"
|
||||||
|
|
||||||
|
#let pz-biblio-strip(head, tail) = {
|
||||||
|
table(
|
||||||
|
columns: (0.82fr, 1fr),
|
||||||
|
stroke: none,
|
||||||
|
inset: (x: 0pt, y: 5pt),
|
||||||
|
align: (left, left),
|
||||||
|
[], head,
|
||||||
|
[], tail,
|
||||||
|
)
|
||||||
|
v(0.65em)
|
||||||
|
}
|
||||||
|
|
||||||
|
#let pz-biblio-strip-ru(
|
||||||
|
udk: "",
|
||||||
|
author: "",
|
||||||
|
title: "",
|
||||||
|
direction: "09.03.04",
|
||||||
|
institute: "Южный федеральный университет",
|
||||||
|
faculty: "ИКТИБ",
|
||||||
|
department: pz-dept-mop,
|
||||||
|
year: 2026,
|
||||||
|
) = {
|
||||||
|
let pages = context counter(page).final().first()
|
||||||
|
pz-biblio-strip(
|
||||||
|
[
|
||||||
|
УДК #udk
|
||||||
|
#linebreak()
|
||||||
|
#upper(author)
|
||||||
|
#linebreak()
|
||||||
|
#quote[#title]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
Квалификационная работа на степень
|
||||||
|
#linebreak()
|
||||||
|
«БАКАЛАВР» по направлению #direction
|
||||||
|
#linebreak()
|
||||||
|
#institute,
|
||||||
|
#linebreak()
|
||||||
|
#faculty, #department — #year#sym.space.nobreak г.,
|
||||||
|
#linebreak()
|
||||||
|
#pages#sym.space.nobreak с.
|
||||||
|
],
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
#let pz-biblio-strip-en(
|
||||||
|
udk: "",
|
||||||
|
author: "",
|
||||||
|
title: "",
|
||||||
|
direction: "09.03.04",
|
||||||
|
institute: "Southern Federal University",
|
||||||
|
faculty: "ICTIS",
|
||||||
|
department: "the Department of Mathematical Support and Application of Computers (MOP EVM)",
|
||||||
|
year: 2026,
|
||||||
|
) = {
|
||||||
|
let pages = context counter(page).final().first()
|
||||||
|
pz-biblio-strip(
|
||||||
|
[
|
||||||
|
UDC #udk
|
||||||
|
#linebreak()
|
||||||
|
#upper(author)
|
||||||
|
#linebreak()
|
||||||
|
#quote[#title]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
Qualification work for the degree of
|
||||||
|
#linebreak()
|
||||||
|
BACHELOR in the direction of #direction
|
||||||
|
#linebreak()
|
||||||
|
#institute,
|
||||||
|
#linebreak()
|
||||||
|
#faculty, #department — #year,
|
||||||
|
#linebreak()
|
||||||
|
#pages#sym.space.nobreak p.
|
||||||
|
],
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
#let pz-column-count(columns) = if type(columns) == int {
|
#let pz-column-count(columns) = if type(columns) == int {
|
||||||
columns
|
columns
|
||||||
} else if type(columns) == array {
|
} else if type(columns) == array {
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
*Методы исследования*: анализ нормативной и технической документации, сравнительный анализ программных аналогов, объектно-ориентированное проектирование (UML, BPMN, DFD), прототипирование пользовательского интерфейса, программная реализация и тестирование @gost7322017 @kotlin-docs.
|
*Методы исследования*: анализ нормативной и технической документации, сравнительный анализ программных аналогов, объектно-ориентированное проектирование (UML, BPMN, DFD), прототипирование пользовательского интерфейса, программная реализация и тестирование @gost7322017 @kotlin-docs.
|
||||||
|
|
||||||
*Практическая база.* Работа выполнена в рамках производственной практики в ООО НМФ «Нейротех» (09.02.2026–06.05.2026) по направлению 09.03.04 «Программная инженерия». Научный руководитель — Беликов А. Н.; руководитель от организации — Алексеев Д. М.
|
*Практическая база.* Работа выполнена в рамках производственной практики в ООО НМФ «Нейротех» (09.02.2026–06.05.2026) по направлению 09.03.04 «Программная инженерия» на кафедре математического обеспечения и применения ЭВМ (МОП ЭВМ). Научный руководитель — Беликов А. Н. (кафедра системного анализа и телекоммуникаций, САИТ); руководитель от организации — Алексеев Д. М.
|
||||||
|
|
||||||
*Научная новизна* заключается в сочетании универсальной модели vault, клиентского шифрования и адаптерного доступа к разным типам хранилищ без собственного сервера приложения, с проектным контуром синхронизации зашифрованных данных без передачи ключей провайдеру.
|
*Научная новизна* заключается в сочетании универсальной модели vault, клиентского шифрования и адаптерного доступа к разным типам хранилищ без собственного сервера приложения, с проектным контуром синхронизации зашифрованных данных без передачи ключей провайдеру.
|
||||||
|
|
||||||
|
|||||||
136
Report/includes/technical-assignment.typ
Normal file
136
Report/includes/technical-assignment.typ
Normal file
@@ -0,0 +1,136 @@
|
|||||||
|
#import "common.typ": pz-sig-line
|
||||||
|
|
||||||
|
#pagebreak(weak: true)
|
||||||
|
|
||||||
|
// Строка ТЗ с линией на всю ширину (как бланк ВКР).
|
||||||
|
#let tz-row(body) = {
|
||||||
|
v(0.35em)
|
||||||
|
table(
|
||||||
|
columns: 1,
|
||||||
|
stroke: none,
|
||||||
|
inset: (x: 0pt, top: 1pt, bottom: 6pt),
|
||||||
|
align: left,
|
||||||
|
table.hline(stroke: 0.5pt + black),
|
||||||
|
[#body],
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
#let tz-row-split(left, right) = {
|
||||||
|
v(0.35em)
|
||||||
|
table(
|
||||||
|
columns: (1fr, auto),
|
||||||
|
stroke: none,
|
||||||
|
inset: (x: 0pt, top: 1pt, bottom: 6pt),
|
||||||
|
table.hline(stroke: 0.5pt + black),
|
||||||
|
[#left],
|
||||||
|
align(end)[#right],
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
#align(center)[
|
||||||
|
#set par(first-line-indent: 0pt, justify: false, leading: 1.15em)
|
||||||
|
#text(weight: "bold")[ТЕХНИЧЕСКОЕ ЗАДАНИЕ]
|
||||||
|
#text(weight: "bold")[НА ВЫПУСКНУЮ КВАЛИФИКАЦИОННУЮ РАБОТУ]
|
||||||
|
#v(0.5em)
|
||||||
|
БАКАЛАВРА по образовательной программе\
|
||||||
|
#quote[Методы и средства разработки программного обеспечения]\
|
||||||
|
направления 09.03.04 Программная инженерия
|
||||||
|
#v(0.35em)
|
||||||
|
студенту группы КТбо4-9\
|
||||||
|
Пыткову Роману Евгеньевичу
|
||||||
|
]
|
||||||
|
|
||||||
|
#v(0.5em)
|
||||||
|
#set par(first-line-indent: 0pt, justify: true, leading: 0.95em)
|
||||||
|
|
||||||
|
#tz-row[
|
||||||
|
1. Тема выпускной квалификационной работы: #quote[Разработка мобильного приложения Wallenc — универсального кошелька для безопасного хранения данных на небезопасных хранилищах без собственного сервера] утверждена приказом по ВУЗу № 2191-к от 17.02.2026 г.
|
||||||
|
]
|
||||||
|
|
||||||
|
#tz-row[2. Требования и исходные данные к работе:]
|
||||||
|
|
||||||
|
#tz-row[2.1 Среда разработки: Android Studio, Gradle, Git.]
|
||||||
|
|
||||||
|
#tz-row[2.2 ОС разработки: GNU/Linux / Windows 11.]
|
||||||
|
|
||||||
|
#tz-row[2.3 Язык программирования: Kotlin; целевая платформа — Android (API 26+).]
|
||||||
|
|
||||||
|
#tz-row[2.4 Стек: Jetpack Compose, Coroutines/Flow, Hilt, Room, JUnit.]
|
||||||
|
|
||||||
|
#tz-row[3. Перечень подлежащих разработке вопросов (содержание работы):]
|
||||||
|
|
||||||
|
#tz-row[3.1 Введение]
|
||||||
|
|
||||||
|
#tz-row[3.2 Анализ требований и предметной области]
|
||||||
|
|
||||||
|
#tz-row[3.3 Проектирование архитектуры системы и пользовательского интерфейса]
|
||||||
|
|
||||||
|
#tz-row[3.4 Программная реализация]
|
||||||
|
|
||||||
|
#tz-row[3.5 Тестирование программного обеспечения]
|
||||||
|
|
||||||
|
#tz-row[3.6 Технико-экономическое обоснование разработки]
|
||||||
|
|
||||||
|
#tz-row[3.7 Заключение]
|
||||||
|
|
||||||
|
#tz-row[3.8 Список использованных источников]
|
||||||
|
|
||||||
|
#tz-row[3.9 Приложение А — листинги исходного кода]
|
||||||
|
|
||||||
|
#tz-row[3.10 Приложение Б — программная документация]
|
||||||
|
|
||||||
|
#tz-row[3.11 Приложение В — скриншоты пользовательского интерфейса]
|
||||||
|
|
||||||
|
#tz-row[4. Перечень графического материала:]
|
||||||
|
|
||||||
|
#tz-row-split(
|
||||||
|
[4.1 Контекстная диаграмма и диаграммы требований],
|
||||||
|
[— 4 пл.],
|
||||||
|
)
|
||||||
|
#tz-row-split(
|
||||||
|
[4.2 Архитектура, DFD, UML, схема Room],
|
||||||
|
[— 6 пл.],
|
||||||
|
)
|
||||||
|
#tz-row-split(
|
||||||
|
[4.3 Пользовательские сценарии и экраны UI],
|
||||||
|
[— 12 пл.],
|
||||||
|
)
|
||||||
|
#tz-row-split(
|
||||||
|
[4.4 Диаграммы реализации и зависимостей модулей],
|
||||||
|
[— 4 пл.],
|
||||||
|
)
|
||||||
|
#tz-row-split(
|
||||||
|
[4.5 Материалы тестирования],
|
||||||
|
[— 6 пл.],
|
||||||
|
)
|
||||||
|
|
||||||
|
#tz-row[
|
||||||
|
5. Консультанты по выпускной квалификационной работе (с указанием разделов): не предусмотрены.
|
||||||
|
]
|
||||||
|
|
||||||
|
#tz-row[6. Срок сдачи законченной ВКР руководителю: «06» 05 2026 г.]
|
||||||
|
|
||||||
|
#tz-row[7. Дата выдачи задания: «09» 02 2026 г.]
|
||||||
|
|
||||||
|
#v(1.25em)
|
||||||
|
|
||||||
|
#align(left)[
|
||||||
|
#set par(first-line-indent: 0pt, justify: false, leading: 1.1em)
|
||||||
|
Руководитель образовательной программы\
|
||||||
|
заведующий кафедрой математического обеспечения и применения ЭВМ\
|
||||||
|
#v(0.5em)
|
||||||
|
#pz-sig-line[Беликов А. Н.]\
|
||||||
|
(подпись, дата)\
|
||||||
|
#v(0.75em)
|
||||||
|
Руководитель ВКР:\
|
||||||
|
старший преподаватель кафедры системного анализа и телекоммуникаций\
|
||||||
|
#v(0.5em)
|
||||||
|
#pz-sig-line[Беликов А. Н.]\
|
||||||
|
(подпись, дата)\
|
||||||
|
#v(0.75em)
|
||||||
|
Исполнитель:\
|
||||||
|
студент группы КТбо4-9\
|
||||||
|
#v(0.5em)
|
||||||
|
#pz-sig-line[Пытков Р. Е.]\
|
||||||
|
(подпись, дата)
|
||||||
|
]
|
||||||
120
Report/includes/title-page.typ
Normal file
120
Report/includes/title-page.typ
Normal file
@@ -0,0 +1,120 @@
|
|||||||
|
#import "common.typ": pz-sig-line
|
||||||
|
|
||||||
|
#let pz-title-page(
|
||||||
|
ministry: [],
|
||||||
|
university-full: [],
|
||||||
|
university-short: [],
|
||||||
|
institute: [],
|
||||||
|
department: [],
|
||||||
|
topic: [],
|
||||||
|
program: [],
|
||||||
|
direction: [],
|
||||||
|
student-name: [],
|
||||||
|
student-position: [],
|
||||||
|
supervisor-name: [],
|
||||||
|
supervisor-position: [],
|
||||||
|
norm-name: [],
|
||||||
|
norm-position: [],
|
||||||
|
dept-head-name: [],
|
||||||
|
dept-head-position: [],
|
||||||
|
city: [],
|
||||||
|
year: [],
|
||||||
|
) = {
|
||||||
|
set par(first-line-indent: 0pt, justify: false)
|
||||||
|
set align(center)
|
||||||
|
|
||||||
|
ministry
|
||||||
|
v(0.35em)
|
||||||
|
university-full
|
||||||
|
v(0.25em)
|
||||||
|
university-short
|
||||||
|
v(1.25em)
|
||||||
|
|
||||||
|
align(left)[
|
||||||
|
#set par(first-line-indent: 0pt)
|
||||||
|
#institute\
|
||||||
|
#department
|
||||||
|
]
|
||||||
|
|
||||||
|
v(0.75em)
|
||||||
|
|
||||||
|
grid(
|
||||||
|
columns: (1fr, 1fr),
|
||||||
|
gutter: 12pt,
|
||||||
|
align: (left, left),
|
||||||
|
[],
|
||||||
|
[
|
||||||
|
К защите допустить:\
|
||||||
|
#dept-head-position\
|
||||||
|
#v(0.6em)
|
||||||
|
#pz-sig-line(dept-head-name)\
|
||||||
|
#box(width: 5.5cm)[#year г.]
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
|
v(1.25em)
|
||||||
|
|
||||||
|
text(weight: "bold")[ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА]
|
||||||
|
|
||||||
|
v(0.75em)
|
||||||
|
|
||||||
|
[по образовательной программе\
|
||||||
|
#quote[#program]\
|
||||||
|
направления #direction Программная инженерия]
|
||||||
|
|
||||||
|
v(0.75em)
|
||||||
|
|
||||||
|
[на тему:]
|
||||||
|
|
||||||
|
v(0.35em)
|
||||||
|
|
||||||
|
text(weight: "bold")[#quote[#topic]]
|
||||||
|
|
||||||
|
v(1.25em)
|
||||||
|
|
||||||
|
align(left)[
|
||||||
|
#set par(first-line-indent: 0pt)
|
||||||
|
Руководитель ВКР:\
|
||||||
|
#supervisor-position\
|
||||||
|
#v(0.6em)
|
||||||
|
#pz-sig-line(supervisor-name)\
|
||||||
|
(подпись, дата)\
|
||||||
|
#v(0.75em)
|
||||||
|
Нормоконтроль:\
|
||||||
|
#norm-position\
|
||||||
|
#v(0.6em)
|
||||||
|
#pz-sig-line(norm-name)\
|
||||||
|
(подпись, дата)\
|
||||||
|
#v(0.75em)
|
||||||
|
Выполнил:\
|
||||||
|
#student-position\
|
||||||
|
#v(0.6em)
|
||||||
|
#pz-sig-line(student-name)\
|
||||||
|
(подпись, дата)
|
||||||
|
]
|
||||||
|
|
||||||
|
v(1fr)
|
||||||
|
|
||||||
|
[#city #year]
|
||||||
|
}
|
||||||
|
|
||||||
|
#pz-title-page(
|
||||||
|
ministry: [Министерство науки и высшего образования Российской Федерации],
|
||||||
|
university-full: [Федеральное государственное автономное образовательное учреждение высшего образования «Южный федеральный университет»],
|
||||||
|
university-short: [(ЮЖНЫЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ)],
|
||||||
|
institute: [Институт компьютерных технологий и информационной безопасности],
|
||||||
|
department: [Кафедра математического обеспечения и применения ЭВМ (МОП ЭВМ)],
|
||||||
|
topic: [Разработка мобильного приложения Wallenc — универсального кошелька для безопасного хранения данных на небезопасных хранилищах без собственного сервера],
|
||||||
|
program: [Методы и средства разработки программного обеспечения],
|
||||||
|
direction: [09.03.04],
|
||||||
|
student-name: [Пытков Р. Е.],
|
||||||
|
student-position: [студент группы КТбо4-9],
|
||||||
|
supervisor-name: [Беликов А. Н.],
|
||||||
|
supervisor-position: [старший преподаватель кафедры системного анализа и телекоммуникаций],
|
||||||
|
norm-name: [Беликов А. Н.],
|
||||||
|
norm-position: [старший преподаватель кафедры системного анализа и телекоммуникаций],
|
||||||
|
dept-head-name: [Беликов А. Н.],
|
||||||
|
dept-head-position: [Зав. кафедрой системного анализа и телекоммуникаций],
|
||||||
|
city: [Таганрог],
|
||||||
|
year: [2026],
|
||||||
|
)
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
#import "@preview/modern-g7-32:0.2.0": abstract, appendixes, enum-numbering, gost
|
#import "@preview/modern-g7-32:0.2.0": appendixes, enum-numbering, gost
|
||||||
|
|
||||||
#set enum(numbering: enum-numbering)
|
#set enum(numbering: enum-numbering)
|
||||||
#set heading(numbering: "1.1.1.1")
|
#set heading(numbering: "1.1.1.1")
|
||||||
@@ -24,27 +24,22 @@
|
|||||||
performers: (
|
performers: (
|
||||||
(name: "Пытков Р. Е.", position: "студент гр. КТбо4-9"),
|
(name: "Пытков Р. Е.", position: "студент гр. КТбо4-9"),
|
||||||
),
|
),
|
||||||
|
hide-title: true,
|
||||||
)
|
)
|
||||||
|
|
||||||
#set text(font: "Times New Roman")
|
#set text(font: "Times New Roman")
|
||||||
|
|
||||||
#import "includes/common.typ": pz-appendix-title, pz-fig
|
#import "includes/common.typ": pz-appendix-title, pz-fig
|
||||||
|
|
||||||
#abstract(
|
#include "includes/blank-front-matter.typ"
|
||||||
"мобильное приложение",
|
#include "includes/abstract-ru.typ"
|
||||||
"клиентское шифрование",
|
|
||||||
"Android",
|
|
||||||
"vault",
|
|
||||||
"zero-knowledge",
|
|
||||||
"синхронизация",
|
|
||||||
)[
|
|
||||||
Пояснительная записка посвящена разработке мобильного приложения Wallenc — клиентского кошелька для безопасного хранения данных на недоверенных хранилищах без собственного сервера приложения. Описаны анализ предметной области и аналогов, формирование требований, проектирование архитектуры и пользовательского интерфейса, программная реализация на Kotlin (Android, Jetpack Compose, Room, Hilt), тестирование и краткая экономическая оценка. Реализованы управление локальными и удалёнными vault, клиентское AES-шифрование, OAuth Яндекс, служебное хранение метаданных в Room; спроектирован контур синхронизации без передачи ключей провайдеру. Исходный код размещён в приватном репозитории Gitea ЮФУ. Полный листинг исходных файлов — приложение А; программная документация — приложение Б.
|
|
||||||
]
|
|
||||||
|
|
||||||
#include "includes/abstract-en.typ"
|
#include "includes/abstract-en.typ"
|
||||||
|
|
||||||
|
#set outline(indent: 1.25cm / 2)
|
||||||
#outline()
|
#outline()
|
||||||
|
|
||||||
|
#include "includes/abbreviations.typ"
|
||||||
|
|
||||||
#include "includes/intro.typ"
|
#include "includes/intro.typ"
|
||||||
#include "includes/ch01.typ"
|
#include "includes/ch01.typ"
|
||||||
#include "includes/ch02.typ"
|
#include "includes/ch02.typ"
|
||||||
@@ -53,7 +48,6 @@
|
|||||||
#include "includes/ch05.typ"
|
#include "includes/ch05.typ"
|
||||||
#include "includes/ch06.typ"
|
#include "includes/ch06.typ"
|
||||||
#include "includes/conclusion.typ"
|
#include "includes/conclusion.typ"
|
||||||
#include "includes/abbreviations.typ"
|
|
||||||
|
|
||||||
// Заголовок списка источников задаётся в gost (bibliography.title).
|
// Заголовок списка источников задаётся в gost (bibliography.title).
|
||||||
#bibliography("references.bib")
|
#bibliography("references.bib")
|
||||||
|
|||||||
Reference in New Issue
Block a user