Skip to content

Commit

Permalink
docs: refactor (#23)
Browse files Browse the repository at this point in the history
  • Loading branch information
ValeryVerkhoturov authored Oct 25, 2023
1 parent 7299bab commit 3740fe7
Show file tree
Hide file tree
Showing 12 changed files with 666 additions and 352 deletions.
130 changes: 130 additions & 0 deletions course-work/appendix-prisma-db.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
\section{Схема базы данных}

\begin{lstlisting}[label=lst:factorial]
model Account {
id String @id @default(cuid())
userId String
type String
provider String
providerAccountId String
refresh_token String?
access_token String?
expires_at Int?
token_type String?
scope String?
id_token String?
session_state String?
user User @relation(fields: [userId], references: [id], onDelete: Cascade)

@@unique([provider, providerAccountId])
}

model Session {
id String @id @default(cuid())
sessionToken String @unique
userId String
expires DateTime
user User @relation(fields: [userId], references: [id], onDelete: Cascade)

@@index([userId], type: Hash)
}

model User {
id String @id @default(cuid())
name String?
nickname String @unique
socialNetworks UserSocialNetwork[]
email String? @unique
emailVerified DateTime?
userInfo String? @db.VarChar(280)
role Role @default(USER)
image String?
isBlocked Boolean @default(false)
blockReason String?
accounts Account[]
sessions Session[]
lostAndFoundItems LostAndFoundItem[]

@@index([id], type: Hash)
@@index([nickname], type: Hash)
}

model VerificationToken {
identifier String
token String @unique
expires DateTime

@@unique([identifier, token])
}

model UserSocialNetwork {
id String @id @default(cuid())
socialNetwork SocialNetwork
link String
userId String
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
lostAndFoundItemSocialNetworks LostAndFoundItemSocialNetworks[]

@@unique([userId, socialNetwork])
@@index([socialNetwork, userId])
}

enum Role {
USER
MODERATOR
ADMIN
}

model LostAndFoundItem {
id String @id @default(cuid())
name String @db.VarChar(100)
description String @default("") @db.VarChar(512)
campus Campus
reason PostItemReason
status LostAndFoundItemStatus @default(ACTIVE)
images String[]
userId String
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
socialNetworks LostAndFoundItemSocialNetworks[]
created DateTime @default(now())
expires DateTime @default(dbgenerated("NOW() + interval '1 week'"))

@@index([id], type: Hash)
}

enum LostAndFoundItemStatus {
ACTIVE
EXPIRED
BLOCKED
}

model LostAndFoundItemSocialNetworks {
id String @id @default(cuid())
lostAndFoundItemId String
lostAndFoundItem LostAndFoundItem @relation(fields: [lostAndFoundItemId], references: [id], onDelete: Cascade)
userSocialNetworkId String
userSocialNetwork UserSocialNetwork @relation(fields: [userSocialNetworkId], references: [id], onDelete: Cascade)

@@unique([lostAndFoundItemId, userSocialNetworkId])
}

enum PostItemReason {
LOST
FOUND
}

enum Campus {
V78
S20
V86
MP1
SG22
SHP23
U7
}

enum SocialNetwork {
TELEGRAM
VK
}
\end{lstlisting}
10 changes: 10 additions & 0 deletions course-work/course-work-0.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
\supersection{Введение}
\label{sec:introduction}

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

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

В разделе~\ref{sec:analytics} будет проведен анализ существующих систем поиска утерянных вещей и выделены их преимущества и недостатки. В разделе~\ref{sec:special} будут определены требования к разрабатываемой системе, рассмотрены методы и технологии, которые можно использовать для реализации системы. Раздел~\ref{sec:technology} будет посвящена описанию процесса разработки и тестирования системы. В разделе~\ref{sec:economy} будет приведен план разработки и расчет сметы затрат.

Таким образом, разработка системы для поиска утерянных вещей позволит создать удобный инструмент для поиска потерянных вещей, что приведет к уменьшению количества потерянных вещей и улучшению качества жизни людей.
82 changes: 82 additions & 0 deletions course-work/course-work-1.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
\section{Аналитический раздел}
\label{sec:analytics}

\subsection{Статистика потерянных и найденных вещей}

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

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

Статистика, взятая с сайта столнаходок.рф~\cite{bib:stol_nahodok}, утверждает, что только 20~\% пользователей их сайта смогли установить и вернуть вещи. Также на рисунках \ref{fig:chart2023} и \ref{fig:chart2022} представлена гистограмма количества созданных объявлений за 2022 и 2023 года.

\begin{figure}[htb]
\centering
\includegraphics[width=.6\textwidth]{images/chart2023}
\parskip=6pt
\caption{Востребованность системы столнаходок.рф в 2023 году}
\label{fig:chart2023}
\end{figure}

\begin{figure}[htb]
\centering
\includegraphics[width=.6\textwidth]{images/chart2022}
\parskip=6pt
\caption{Востребованность системы столнаходок.рф в 2022 году}
\label{fig:chart2022}
\end{figure}

\subsection{Типы существующих решений для поиска и возврата утерянных вещей}

Существует несколько типов существующих решений для поиска и возврата утерянных вещей. Ниже приведены некоторые из них:
\begin{enumerate}
\item Веб-сайты и мобильные приложения: <<Бюро находок>>. Эти сервисы предоставляют платформу, где люди могут регистрировать утерянные вещи и искать их владельцев. Пользователям предлагается создать объявления о найденных или потерянных вещах и связаться друг с другом, чтобы вернуть вещи. Некоторые сервисы предлагают добавить фотографии или описание вещей, чтобы облегчить поиск.

\item Технология RFID (Radio Frequency Identification) позволяет прикреплять RFID-метки к ценным объектам и отслеживать их местоположение с помощью специальных считывателей. Это возможно благодаря использованию радиоволн, которые позволяют быстро определять местоположение потерянных вещей с помощью дополнительного программного обеспечения.

\item GPS-трекеры --- это устройства с встроенным GPS-модулем. Они могут быть прикреплены практически к любому объекту, после чего его местоположение определяется через смартфон или компьютер по сети Интернет. При использовании приложения на смартфоне пользователь может получать уведомления о передвижении объекта и быстро определять его текущее местоположение.

\item Автоматизированные системы поиска утерянных предметов: Некоторые организации, например, аэропорты и железнодорожные станции, используют системы обнаружения утерянных предметов. В этих системах используются технологии, такие как видеонаблюдение, детекторы движения и распознавание образов для отслеживания и возвращения потерянных предметов их владельцам.
\end{enumerate}

Каждый из этих типов решений имеет свои преимущества и недостатки. Некоторые из них могут быть более подходящими для конкретных ситуаций, например, GPS-трекеры могут быть полезными при поиске утерянных вещей на открытой местности, в то время как RFID-метки могут быть более подходящими для использования внутри помещений. Веб-сайты и приложения <<Бюро находок>> предоставляют более универсальное решение, которое может быть использовано в различных ситуациях.

\subsection{Анализ существующих систем для поиска и возврата утерянных вещей}

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

<<столнаходок.рф>>~\cite{bib:stol_nahodok} --- это один из наиболее популярных веб-сервисов, предоставляющих возможность объявлять о потерянных и найденных предметах. Сервис имеет простой и интуитивно понятный интерфейс, позволяющий пользователям быстро разместить информацию о потерянных вещах и связаться с владельцами найденных предметов. Однако, отсутствие системы уведомлений и неудобное сопоставление объявлений ограничивают его функциональность.

<<Find My Stuff>>~\cite{bib:find_my_stuff} --- это мобильное приложение, разработанное для операционных систем iOS и Android. Оно предлагает функцию отслеживания утерянных предметов через GPS-модуль смартфона. Пользователи могут отмечать свои вещи на карте и получать уведомления, когда они находятся рядом с утерянным предметом. Однако, ограничение использования только наличием смартфона с GPS-модулем и низкая точность определения местоположения представляют существенные ограничения данного приложения.

<<Lost Property Office>>~\cite{bib:parliament_lost_and_found} --- это веб-сервис, предоставляемый государственными организациями и органами правопорядка. Сервис позволяет пользователям сообщать о потерянных и найденных предметах, а также предоставляет информацию о процедуре возврата утерянных вещей. Однако, ограниченный доступ к сервису и неудобный процесс регистрации и подачи заявки являются значительными недостатками данного сервиса.

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

Ниже приведена сравнительная таблица~\ref{tab:analogs_comparison} основных характеристик и функций приведенных выше аналогов:
\begin{table}[htb]
\caption{Сравнительная таблица аналогов}
\centering

\tolerance=1
\emergencystretch=10pt
\hyphenpenalty=1
\exhyphenpenalty=1
\small
\begin{tabular}{ |p{2cm}|p{3cm}|p{2cm}|p{2cm}|p{3cm}|p{2cm}| }
\hline
Сервис~/ Приложение & Интерфейс и удобство использования & Опове\-ще\-ния & Точность определения местоположения & Регистрация и подача заявки & Доступ\-ность \\ \hline

стол\-на\-ходок.рф & Простой и интуитивно понятный интерфейс & Отсут\-ству\-ют & Не\-оп\-ре\-де\-ле\-но & Простой процесс регистрации & Широкий доступ \\ \hline

Find My Stuff & Простой и интуитивно понятный интерфейс & Опо\-ве\-ще\-ния через уведомления & Низкая точность & Простой процесс регистрации & Доступен только на смартфонах с GPS \\ \hline

Lost Property Office & Неудобный процесс регистрации и подачи заявки & Отсут\-ству\-ют & Не\-оп\-ре\-де\-ле\-но & Неудобный процесс регистрации и подачи заявки & Огра\-ни\-чен\-ный доступ \\ \hline
\end{tabular}
\label{tab:analogs_comparison}
\end{table}

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

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

Веб-сервисы и приложения <<Бюро находок>> представляют собой одно из самых популярных и широко используемых решений в данной области. Они предоставляют платформу, на которой пользователи могут зарегистрировать утерянные вещи и связаться с их владельцами. Это позволяет упростить процесс поиска и возврата утерянных вещей, обеспечивая удобный и интуитивно понятный интерфейс для пользователей.\label{key}
Loading

0 comments on commit 3740fe7

Please sign in to comment.