Skip to content

Commit

Permalink
Course work (#32)
Browse files Browse the repository at this point in the history
  • Loading branch information
ValeryVerkhoturov authored Feb 28, 2024
1 parent 5192aab commit 046ad6e
Show file tree
Hide file tree
Showing 9 changed files with 195 additions and 9 deletions.
Binary file modified course-work/article/article1.pdf
Binary file not shown.
6 changes: 3 additions & 3 deletions course-work/article/article1.tex
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@
\begin{thebibliography}{99\kern\bibindent}
\bibitem{bib:m24_losts_article} МОСКВА 24 Что теряют москвичи // www.m24.ru: Новости Москвы, репортажи и интервью об основных событиях города URL: \url{https://www.m24.ru/news/gorod/28112019/98853} (дата обращения: 01.09.2023).

\bibitem{bib:usinsk_losts_article} Усинск Онлайн Какие вещи чаще всего теряют россияне // usinsk.online URL: \url{https://usinsk.online/news/kakie-veshhi-chashhe-vsego-teryayut-rossiyane/#:~:text=Чаще%20всего%20россияне%20теряют%3A%20кошельки,1%20процент)%2C%20пишет%20РГ.} (дата обращения: 01.09.2023).
\bibitem{bib:usinsk_losts_article} Усинск Онлайн Какие вещи чаще всего теряют россияне // usinsk.online (дата обращения: 01.09.2023).

\bibitem{bib:about1} Bataineh, Emad, Bilal Bataineh, and Shama Al Kindi. "Design, development and usability evaluation of an online web-based lost and found system." International Journal of Digital Information and Wireless Communications 5.2 (2015): 75-82. % https://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&doi=c757d2b9e8b8ba4235342217fab983e2f89f6bd0

Expand All @@ -156,9 +156,9 @@

\bibitem{bib:pona} Потерял Нашел // pona1.ru: бюро находок Пона.рф. Удобный поиск по объявлениям, большая база потерянных вещей и животных URL: \url{https://pona1.ru/sochi} (дата обращения: 01.09.2023).

\bibitem{bib:investopedia_rfid} Investopedia // investopedia.com: Radio Frequency Identification (RFID): What It Is, How It Works URL: \url{https://www.investopedia.com/terms/r/radio-frequency-identification-rfid.asp#:~:text=Radio%20Frequency%20Identification%20(RFID)%20is,checked%20out%20of%20a%20library.} (дата обращения: 01.09.2023).
\bibitem{bib:investopedia_rfid} Investopedia // investopedia.com: Radio Frequency Identification (RFID): What It Is, How It Works (дата обращения: 01.09.2023).

\bibitem{bib:investopedia_rfid} Investopedia // investopedia.com: Radio Frequency Identification (RFID): What It Is, How It Works URL: \url{https://www.investopedia.com/terms/r/radio-frequency-identification-rfid.asp#:~:text=Radio%20Frequency%20Identification%20(RFID)%20is,checked%20out%20of%20a%20library.} (дата обращения: 01.09.2023).
\bibitem{bib:investopedia_rfid} Investopedia // investopedia.com: Radio Frequency Identification (RFID): What It Is, How It Works (дата обращения: 01.09.2023).

\bibitem{bib:airtag} AirTag // apple.com: магазин Apple URL: \url{https://www.apple.com/airtag/} (дата обращения: 01.09.2023).
\end{thebibliography}
Expand Down
194 changes: 190 additions & 4 deletions course-work/course-work-2.tex
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ \subsubsection{Функциональные требования}
\item Приложение должно иметь систему уведомлений, которая будет информировать пользователей о новых найденных вещах, соответствующих их критериям поиска.
\end{itemize}

ER-диаграмма представлена на рис.~\ref{fig:erd}.
В соответствии с требованиями была составлена ER-диаграмма, которая представлена на рис.~\ref{fig:erd}. Пользователь регистрируется посредством OAuth, при этом заполняются таблицы Account и User. Пользователь заполняет свои социальные сети UserSocialNetwork. Пользователь заполняет форму с потерянной или найденной вещью в LostAndFoundItem, и привязывает к карточки вещи соц. сети, по которой с ним можно связаться.

\begin{figure}[htb]
\centering
Expand All @@ -37,34 +37,220 @@ \subsubsection{Нефункциональные требования}

\begin{itemize}
\item Приложение должно обеспечивать быстрый поиск и отображение результатов, а также быстрое добавление информации о утерянных вещах.
\item Все данные пользователей должны быть защищены. Пароли должны храниться в зашифрованном виде.
\item Все данные пользователей должны быть защищены.
\item Приложение должно быть доступно для использования 24/7.
\item Интерфейс приложения должен быть интуитивно понятным и удобным для пользователей разного уровня компьютерной грамотности.
\item Приложение должно быть совместимо с основными операционными системами (iOS, Android) и браузерами (Chrome, Firefox, Safari, Edge).
\item Приложение должно быть способно обслуживать большое количество пользователей одновременно без снижения производительности.
\item Приложение должно быть тщательно протестировано на наличие ошибок и уязвимостей перед запуском.
\end{itemize}

Клиентское приложение работает в вебе, использует кросс-платформенные технологии (JS, HTML, CSS). Защита пользователя возложено на независимый сервер авторизации.

\subsection{Проектирование модулей автоматизации процессов}

Проектирование модулей автоматизации процессов включает в себя разработку структуры и функционала модулей, которые будут автоматизировать ключевые процессы приложения для поиска и возврата утерянных вещей. В данном случае, ключевыми процессами являются: регистрация и авторизация пользователей, добавление и поиск утерянных вещей, связь между пользователями и система уведомлений.

\subsubsection{Модуль регистрации и авторизации пользователей}

Этот модуль предназначен для создания и поддержки учетных записей пользователей. Он должен включать функции регистрации, авторизации и восстановления пароля. Для обеспечения безопасности, пароли должны храниться в зашифрованном виде.
Этот модуль предназначен для создания и поддержки учетных записей пользователей. Он должен включать функции регистрации, авторизации через сервер посредника (сервер авторизации РТУ МИРЭА).


\begin{figure}[htb]
\centering
\includegraphics[width=.9\textwidth]{images/registation-diagram.png}
\parskip=6pt
\caption{Диаграмма последовательностей авторизации}
\label{fig:authDiagram}
\end{figure}

\begin{comment}
@startuml
actor User as user
participant "Client\n(Application)" as client
participant "Authorization\nServer" as auth
participant "Resource\nServer" as resource

user -> client: Запрос на вход с использованием OAuth
client -> auth: Перенаправление пользователя на страницу авторизации
auth -> user: Показывает страницу авторизации
user -> auth: Авторизация клиента
auth -> client: Перенаправление обратно с\nкодом авторизации
client -> auth: Запрос токена доступа\nиспользуя код авторизации
auth -> client: Ответ с токеном доступа
client -> resource: Запрос ресурса с токеном доступа
resource -> client: Ответ с запрашиваемым ресурсом
@enduml
\end{comment}


\subsubsection{Модуль бесконечных лент объявлений потерянных, найденных вещей}

Модуль бесконечных лент объявлений представляет собой ключевой элемент приложения для поиска и возврата утерянных вещей. Он предназначен для отображения объявлений о потерянных и найденных вещах в формате бесконечной ленты, обеспечивая пользователю удобный и непрерывный доступ к информации.

\subsubsection{Модуль добавления и поиска утерянных вещей}
\begin{figure}[htb]
\centering
\includegraphics[width=.9\textwidth]{images/feed-diagram.png}
\parskip=6pt
\caption{Диаграмма классов бесконечной ленты}
\label{fig:feedDiagram}
\end{figure}

\begin{comment}
@startuml
class Feed {
+List<Post> posts
+int currentPage
+boolean endOf
+loadMorePosts(): void
}

class Post {
-int id
-String content
-Date createdAt
+User author
+getSummary(): String
+getFullPost(): String
}

class User {
-int id
-String username
-String profilePictureURL
+getProfile(): String
}

Feed "1" --> "*" Post : содержит >
Post "1" --> "1" User : написал >

note right of Feed
Feed - Класс, управляющий лентой новостей.
posts - список постов в ленте.
currentPage - текущая страница ленты.
endOfFeed - признак достижения конца ленты.
loadMorePosts() - метод для подгрузки новых постов.
end note

note right of Post
Post - Класс, представляющий отдельный пост.
id - уникальный идентификатор поста.
content - содержимое поста.
createdAt - время создания поста.
author - автор поста.
getSummary() - возвращает краткое содержание поста.
getFullPost() - возвращает полное содержание поста.
end note

note right of User
User - Класс, представляющий пользователя.
id - уникальный идентификатор пользователя.
username - имя пользователя.
profilePictureURL - изображения профиля пользователя.
getProfile() - возвращает профиль пользователя.
end note
@enduml
\end{comment}

\subsubsection{Модуль добавления и поиска вещей}

Этот модуль отвечает за добавление информации о утерянных вещах в базу данных и поиск по этой базе. Он должен предоставлять пользователю возможность добавлять описание, фотографии и место утери вещи, а также осуществлять поиск по различным критериям.

\begin{figure}[htb]
\centering
\includegraphics[width=.9\textwidth]{images/seach-diagram.png}
\parskip=6pt
\caption{Диаграмма последовательностей добавления и поиска вещей}
\label{fig:searchDiagram}
\end{figure}

\begin{comment}
@startuml
actor Пользователь as User
participant "Фронтенд\nИнтерфейс" as Frontend
participant "Бэкенд\nСервис" as Backend
database БазаДанных as Database

== Добавление поста ==
User -> Frontend : Добавляет новый пост
Frontend -> Backend : Зрос на добавление поста
Backend -> Database : Сохранить пост
Database --> Backend : Пост сохранен
Backend --> Frontend : Пост добавлен успешно
Frontend --> User : Подтверждение добавления поста

== Поиск постов ==
User -> Frontend : Запрос на поиск постов
Frontend -> Backend : Запрос на поиск постов по ключевым словам
Backend -> Database : Поиск постов в базе данных
Database --> Backend : Результаты поиска
Backend --> Frontend : Посты найдены
Frontend --> User : Отображение найденных постов
@enduml
\end{comment}

\subsubsection{Модуль генерации описания объявлений}

Модуль генерации описания объявлений является важным компонентом приложения для поиска и возврата утерянных вещей. Он предназначен для автоматического создания описаний объявлений на основе введенных пользователем данных, что облегчает процесс создания объявлений и повышает их качество.

\begin{figure}[htb]
\centering
\includegraphics[width=.95\textwidth]{images/generating-diagram.png}
\parskip=6pt
\caption{Диаграмма классов генеарации описания вещей}
\label{fig:generatingDiagram}
\end{figure}

\begin{comment}
@startuml
class "Пользователь" as User {
}

class "Система Генерации" {
-ChatGPTApi chatGPT
+generatePostDescription(input: String): String
}

class "ChatGPTApi" {
+generateText(prompt: String): String
}

class "Post" {
-String description
+setDescription(desc: String): void
+getDescription(): String
}

User --> "Система Генерации" : Вводит данные
"Система Генерации" --> ChatGPTApi : Запрашивает генерацию
ChatGPTApi --> "Система Генерации" : Возвращает описание
"Система Генерации" --> Post : Устанавливает описание

note right of User
Пользователь - инициирует процесс
генерации описания поста.
end note

note right of "Система Генерации"
Система Генерации - основной класс,
управляющий процессом генерации
текста с использованием API ChatGPT.
end note

note right of ChatGPTApi
ChatGPTApi - класс, инкапсулирующий
взаимодействие с внешним API сервисом
ChatGPT для генерации текста.
end note

note right of Post
Post - класс, представляющий пост,
в который добавляется
сгенерированное описание.
end note
@enduml
\end{comment}

\subsection*{Вывод по разделу}

Проектирование модулей автоматизации процессов является важным этапом в разработке приложения для поиска и возврата утерянных вещей. Каждый из модулей, включая модуль регистрации и авторизации пользователей, модуль бесконечных лент объявлений, модуль добавления и поиска утерянных вещей и модуль генерации описания объявлений, играет свою уникальную роль в обеспечении функциональности и эффективности приложения.
Expand Down
Binary file modified course-work/course-work.pdf
Binary file not shown.
4 changes: 2 additions & 2 deletions course-work/course-work.tex
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

% \includepdf[pages=-]{titlepage.pdf}

%\begin{comment}
\begin{comment}
\begin{titlepage}
\pagestyle{empty}
\setlength\parindent{0pt}
Expand Down Expand Up @@ -40,7 +40,7 @@
\vfill Москва~--- \the\year{}~г.
\end{center}
\end{titlepage}
%\end{comment}
\end{comment}

\addtocounter{page}{2}

Expand Down
Binary file added course-work/images/feed-diagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added course-work/images/generating-diagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added course-work/images/registation-diagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added course-work/images/seach-diagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 046ad6e

Please sign in to comment.