Научная статья Original article УДК 004
РАЗРАБОТКА МНОГОПОЛЬЗОВАТЕЛЬСКОГО ПРИЛОЖЕНИЯ
ДЛЯ ЗАМЕТОК
DEVELOPMENT OF A MULTI-USER APPLICATION FOR NOTES
Лиманова Наталия Игоревна, доктор технических наук, профессор, Зав. кафедрой «Информационные системы и технологии», Поволжский государственный университет телекоммуникаций и информатики, Россия, г. Самара
Крицкова Елизавета Андреевна, Студент 2 курс, факультет «Информационные системы и технологии», Поволжский государственный университет телекоммуникаций и информатики, Россия, г. Самара Орехва Александр Владимирович, Студент 2 курс, факультет «Информационные системы и технологии», Поволжский государственный университет телекоммуникаций и информатики, Россия, г. Самара
Limanova Natalia Igorevna, Doctor of Technical Sciences, Professor, Head Department of Information Systems and Technologies, Volga State University of Telecommunications and Informatics, Russia, Samara
Kritskova Elizaveta Andreevna, 2nd year student, Faculty of Information Systems and Technologies, Volga State University of Telecommunications and Informatics, Russia, Samara
5767
Orekhva Alexander Vladimirovich, 2nd year student, Faculty of Information Systems and Technologies, Volga State University of Telecommunications and Informatics, Russia, Samara
Аннотация: Данная статья посвящена разработке многопользовательского онлайн приложения для заметок. В наше время проблема планирования дня и составления заметок о каких-либо важных моментах стоит особенно остро. Человек может упустить из виду то, что он хотел сделать или посетить какое-нибудь место. Однако, техника способна поддержать его в этом моменте. Из этого следует цель нашего проекта -разработка приложения для создания и редактирования заметок. В результате проекта была реализована клиент-серверная архитектура, в которую входят разработка базы данных, разработка сервера приложений, проектирование API и создание интерфейса для пользователей.
S u m m a r y: This article is devoted to the development of a multi-user online application for notes. Nowadays, the problem of planning a day and making notes about any important moments is particularly acute. A person may lose sight of what he wanted to do or visit some place. However, the technique is able to support him at this moment. From this follows the goal of our project - the development of an application for creating and editing notes. As a result of the project, a client-server architecture was implemented, which includes database development, application server development, API design and user interface creation.
Ключевые слова: Клиент-серверное приложение, API-сервера, Application server, SQLite, реляционная база данных, интерфейс, пользователь, сервер.
Keywords: Client-server application, API servers, Application server, SQLite, relational database, interface, user, server.
5768
В настоящее время из-за большой нагрузки, люди не могут обходиться без разных записных книжек, помогающих запланировать мероприятие или записать моменты, чтобы не забыть о них. У электронных блокнотов большое преимущество по сравнению с традиционными бумажными. Они доступны на любых устройствах — от мобильных гаджетов до персональных компьютеров, такие приложения всегда под рукой, хорошо подходят для текстовых записей, составления списков дел, записи сиюминутных мыслей и свежих идей. С их помощью можно удобно упорядочивать и структурировать информацию, быстро находить нужные заметки, планировать задачи, создавать напоминания и объединять все записи в одном приложении, определиться с выбором которого поможет наша подборка таких программных решений.
Рассмотрим технологии, используемые в разработке проекта. Была задействована база данных, которую мы проектировали на основе СУБД SQLite, состоящая из 3 сущностей:
Users - содержит следующие сведения:
• Id - уникальный идентификатор сущности
• Username - имя пользователя
• Passhash - хэш-сумма пароля. Таким образом, сам пароль не хранится в базе данных, поэтому повышается уровень безопасности
• Created - время создания заметки
• Updated - время изменения заметки
Tokens - информацию можно охарактеризовать следующим образом:
• Id - уникальный идентификатор сущности
• User_id - уникальный идентификатор пользователя
• Token - случайно сгенерированная последовательность символов. Используется для обращения к серверу
• Created
• Used
5769
Научно-образовательный журнал для студентов и преподавателей «StudNet» №6/2022
Notes - сущность, которая содержит информацию об авторе какого-либо издания:
Id - уникальный идентификатор сущности User_id - уникальный идентификатор пользователя Title - название заметки Text - тело заметки Created - время создания заметки Updated - время изменения заметки На рис.1 изображена структура созданной базы данных
Tables (3)
username pasihash created updated
created
created updated
Рис.1 - структура разработанной базы данных На рис.2 - рис.4 показана структура сущностей.
Структура Данные Ограничении Индексы Триггеры DDL
Инн таблицы: not«
WITHOUT ROWID
_ Первичный Внешний _ Не
Им* Тип данных Уникальность Проверка ...... Сравнение
ключ ключ NULL
1 id INTEGER 2u««srjd INTEGER 3 title TEXT A text TEXT
5 created DATETIME
6 updated DATETIME
NULL NULL NULL NULL NULL NULL
5770
Рис.2 - структура сущности notes
Структур* Данные Ограничения Индексы Триггеры DOL
D С
Имя таблицы: tokens
WITHOUT ROWID
Первичныи Вмешнии „ _ Не _
Имя Тип данных Уникальность Проверка а..... Сравнение
ключ ключ г г NULL
1 id INTEGER
2 user id INTEGER
3 token TEXT
4 created DATETIME
5 used DATETIME
« *
NULL NULL NULL NULL NULL
Рис.3 - структура сущности tokens
Структура Данные Ограничения Индексы Триггеры DOL
■ вое
Имя таблицы: Ufers
WITHOUT ROWID
Первичныи Внешний ,, _ Не _
Имя Тип данных Уникальность Проверка ...... Сравнение
ключ ключ NULL
1 к) INTEGER
2 username TEXT
3 passhash TEXT
4 created DATETIME
5 updated DATETIME
« «
NULL NULL NULL NULL NULL
Рис.4 - структура сущности users Был разработан сервер приложения, который работает по IP адресу по протоколу HTTP. Он соединяет между собой базу данных, разработанную ранее и сам сервер, который работает на протоколе. Так на рис.5 показан работающий сервер приложения, который заносит информацию в созданную базу данных и возвращает вводимую информацию на странице в браузере.
© U7JQAl:S0Û(№HtK/1/edl ИЗОМИЗМЬеО! Й28Л14Я075
Рис.5 - Создание заметки в сервере приложения
5771
Проектирование API позволяет правильно отвечать на те или иные команды, которые задает пользователь. Поэтому эта часть разработки заключается в том, чтобы грамотно и правильно запрограммировать вывод ответов, так, чтобы пользователь и сервер знали, что от них требуют.
Были использованы такие функции, как:
• GET /
Возвращает строку 'Hello, World!'. Это сделано для того, чтобы убедиться, что программа полностью функционирует.
• GET /register
После этой команды выполняется регистрация пользователя.
• GET /login
Данная команда возвращает сгенерированный токен для пользователя.
• GET /notes/{token}
Команда возвращает список, состоящий из note_id заметок.
• GET /notes/{note_id}/{token}
Данная команда возвращает заметку.
• GET /notes/new/{token}
Данная команда создает заметку и возвращает присвоенный ей note_id.
• GET /notes/{note_id}/update/{token}
Данная команда обновляет заметку с идентификатором note_id.
• GET/notes/{note_id}/delete/{token}
Данная команда удаляет заметку с идент
После того как сервер приложения был полностью реализован, для создания приложения заметок остается разработать клиентскую часть, которая будет взаимодействовать с сервером через интерфейс.
Для разработки интерфейса был использован движок, который создает объекты и сцены в 2D и 3D формате. Для скриптов был выбран язык программирования GDScript, лучше интегрированный в движок, имеющий больше примеров, не требующий запуска внешней среды.
5772
Так было создано окно регистрации, в котором находится текстовые поля и кнопки, а также переключатель для регистрации или входа (для тех, кто
Я|П 1л
Рис.6 - Окно регистрации После регистрации происходит переход в другое окно, которое служит для создания и редактирования заметок. В этом окне имеются такие разделения, как место с уже имеющимися заметками и поле для создания и редактирования заметки. Поле уже имеющихся заметок имеет вид: название заметки и кнопка для прочтения этой заметки. Поле для создания и редактирования имеет вид: название заметки, текст заметки и многочисленные кнопки, которые отвечают за определенные функции - добавить, изменить, удалить, очистить. На рис.7 показано окно создания и редактирования
заметок.
1.08 от
МУ МОТЕ5: «е1о*1 ТМе:
[1( М1151С
» фуепу
Яеа<1...
# П1гг»
• Ми$1с
Иеай...
О«* ЕсИих
Те«:
А1«п ЧУнИсег
к-391
АИсИ
АЬг1х
Куво
М83
п»е р« ки Ракеаг
Рис.7 - окно создания и редактирования заметок
5773
В конечном итоге мы получаем продукт, который обладает рядом плюсов и минусов над другими проектами в данной теме. В ходе работы была реализована база данных в СУБД SQLite. Было создано клиент серверное приложение с простым и удобным интерфейсом для пользователя. Пользователь может взаимодействовать со своими заметками: создавать, читать, обновлять и удалять. В ходе тестирования были выявлены ошибки, которые были устранены и произведена модернизация приложения. Данное приложение имеет свои особенности, такие как многопользовательский онлайн режим, если пользователь поделится своими логином и паролем с близким человеком, то они смогут оставлять друг другу послания и напоминалки.
Литература
1. Руководство по приложению SQLite. Официальный сайт [Электронный ресурс]. URL: https ://metanit. com/sql/sqlite
2. Вводное руководство по приложению SQLite: Ожегов Денис, Александр Фёдоров [Электронный ресурс]. URL: https://www.opennet.ru/base/dev/sqlite_guide.txt.html
3. Выбор сервера и его настройка: Сергей Глухов[Электронный ресурс]. URL: https://www.ixbt.com/comm/terminals2.html
4. Язык программирования Python. 2001 — 454: Г. Россум, Ф.Л.Дж. Дрейк, Д.С. Откидач. C [Электронный ресурс]. URL: http://rus -linux.net/MyLDP/BOOKS/python.pdf
5. Программирование на Python. С-Пб.: «Символ». 2002 — 1135C : Марк Лутц.. URL: https ://iro23.ru/sites/default/files/mark_lutc ._programmirovanie_na_python.p df
6. Разработка сетевых приложений. «ПИТЕР». 2003 — 1045C. Стивенс У.Р. UNIX [Электронный ресурс]. URL: https://www.litmir.me/br/?b=225366&p=2
5774
Literature
1. SQLite Application Guide. Official site [Electronic resource]. URL: https ://metanit.com/sql/sqlite
2. An introductory guide to the SQLite application: Ozhegov Denis, Alexander Fedorov [Electronic resource]. URL: https://www.opennet.ru/base/dev/sqlite_guide.txt.html
3. Server selection and configuration: Sergey Glukhov [Electronic resource]. URL: https ://www.ixbt.com/comm/terminals2.html
4. Python programming language. 2001-454: G. Rossum, F.L.J. Drake, D.S. Kickback. C [Electronic resource]. URL: http://rus-linux.net/MyLDP/BOOKS/python.pdf
5. Programming in Python. St. Petersburg: "Symbol". 2002 - 1135C : Mark Lutz. URL:
https ://iro23.ru/sites/default/files/mark_lutc ._programmirovanie_na_python.p df
6. Development of network applications. "PETER". 2003 - 1045C. Stephens W.R. UNIX [Electronic resource]. URL: https://www.litmir.me/br/?b=225366&p=2
© Лиманова Н.И., Крицкова Е.А., Орехва А.В., 2022 Научно-образовательный журнал для студентов и преподавателей «StudNet» №6/2022.
Для цитирования: Лиманова Н.И., Крицкова Е.А., Орехва А.В. РАЗРАБОТКА МНОГОПОЛЬЗОВАТЕЛЬСКОГО ПРИЛОЖЕНИЯ ДЛЯ ЗАМЕТОК// Научно-образовательный журнал для студентов и преподавателей «StudNet» №6/2022.
5775