Научная статья 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
5373
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.
5374
В настоящее время из-за большой нагрузки, люди не могут обходиться без разных записных книжек, помогающих запланировать мероприятие или записать моменты, чтобы не забыть о них. У электронных блокнотов большое преимущество по сравнению с традиционными бумажными. Они доступны на любых устройствах — от мобильных гаджетов до персональных компьютеров, такие приложения всегда под рукой, хорошо подходят для текстовых записей, составления списков дел, записи сиюминутных мыслей и свежих идей. С их помощью можно удобно упорядочивать и структурировать информацию, быстро находить нужные заметки, планировать задачи, создавать напоминания и объединять все записи в одном приложении, определиться с выбором которого поможет наша подборка таких программных решений.
Рассмотрим технологии, используемые в разработке проекта. Была задействована база данных, которую мы проектировали на основе СУБД SQLite, состоящая из 3 сущностей:
Users - содержит следующие сведения:
• Id - уникальный идентификатор сущности
• Username - имя пользователя
• Passhash - хэш-сумма пароля. Таким образом, сам пароль не хранится в базе данных, поэтому повышается уровень безопасности
• Created - время создания заметки
• Updated - время изменения заметки
Tokens - информацию можно охарактеризовать следующим образом:
• Id - уникальный идентификатор сущности
• User_id - уникальный идентификатор пользователя
• Token - случайно сгенерированная последовательность символов. Используется для обращения к серверу
• Created
• Used
5375
Notes - сущность, которая содержит информацию об авторе какого-либо издания:
• Id - уникальный идентификатор сущности
• User_id - уникальный идентификатор пользователя
• Title - название заметки
• Text - тело заметки
• Created - время создания заметки
• Updated - время изменения заметки
На рис.1 изображена структура созданной базы данных
▼ Table* (3)
▼
id ^ ■
username ■
pasihash ■
created ■
updated ■
▼ tokens
id ^ ■
user_id ■
< token ■
created ■
used ■
▼ notes
id tt
user_id ■
title ■
text ■
created ■
updated ■
Рис.1 - структура разработанной базы данных На рис.2 - рис.4 показана структура сущностей.
Структура Длины« Огщиг«!»!» Индексы Триггеры 001
■ I в ■ ■ | а о я«* л о
Им« таблицы: not« WITHOUT ROWID
_ Первичный Внешний „ _ Не _
Им* Тип данных Уникальность Проверка ...........Сравнение
ключ ключ NULL
1 id INTEGER » • NULL
2 U'íf.id INTEGER • NULL
III»» fUff * MUU
4 text TEXT • NULL
5 created DATETIME • NULL
6 updated DATETIME • NULL
Рис.2 - структура сущности notes
5376
Рис.3 - структура сущности tokens
Структура Данные Ограничения Индексы Триггеры OOL
Имя таблицы: uier?
Имя Тип данных
1 к) INTEGER
2 usemame TEXT
3 passhash TEXT
4 created DATETIME
5 updated DATETIME
WITHOUT ROW1D
Первичный Внешний
He
Уникальность Проверка ...... Сравнение
ключ ключ NULL
*
NULL NULL NULL NULL NULL
Рис.4 - структура сущности users Был разработан сервер приложения, который работает по IP адресу по протоколу HTTP. Он соединяет между собой базу данных, разработанную ранее и сам сервер, который работает на протоколе. Так на рис.5 показан работающий сервер приложения, который заносит информацию в созданную базу данных и возвращает вводимую информацию на странице в браузере.
$ 117as. l-WiWntfW Ved 14с 1 згакн 1 i ZdtwOI fZZ87d45a07S
Рис.5 - Создание заметки в сервере приложения Проектирование API позволяет правильно отвечать на те или иные команды, которые задает пользователь. Поэтому эта часть разработки
5377
заключается в том, чтобы грамотно и правильно запрограммировать вывод ответов, так, чтобы пользователь и сервер знали, что от них требуют.
Были использованы такие функции, как:
• 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, лучше интегрированный в движок, имеющий больше примеров, не требующий запуска внешней среды.
5378
Так было создано окно регистрации, в котором находится текстовые поля и кнопки, а также переключатель для регистрации или входа (для тех, кто уже находится в базе данных). На рис.6 показано окно регистрации.
Js«m*Tw: Pomidortta
Password: ...........J
Sign In
Registration? or?
Рис.6 - Окно регистрации После регистрации происходит переход в другое окно, которое служит для создания и редактирования заметок. В этом окне имеются такие разделения, как место с уже имеющимися заметками и поле для создания и редактирования заметки. Поле уже имеющихся заметок имеет вид: название заметки и кнопка для прочтения этой заметки. Поле для создания и редактирования имеет вид: название заметки, текст заметки и многочисленные кнопки, которые отвечают за определенные функции - добавить, изменить, удалить, очистить. На рис.7 показано окно создания и редактирования заметок.
5379
ш qwerty
«eid...
« Rims
Heid...
• Music
»t«
Logout
пае:
Music
Aim walker
к-Ml
AvtcH
Ahiln
*y*o
M83
The Fit Rit Pike»
Add New Note Updite Note
Рис.7 - окно создания и редактирования заметок
В конечном итоге мы получаем продукт, который обладает рядом плюсов и минусов над другими проектами в данной теме. В ходе работы была реализована база данных в СУБД 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:
5380
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
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.
5381