ВВЕДЕНИЕ 4
1. ТЕОРЕТИЧЕСКИЕ И МЕТОДОЛОГИЧЕСКИЕ ОСНОВЫ РАЗРАБОТКИ СИСТЕМЫ ВЗАИМОДЕЙСТВИЯ ПОЛЬЗОВАТЕЛЕЙ 6
1.1. Постановка задачи 6
1.2. Сравнительный анализ языков для написания внутренней логики приложения 7
1.3. Сравнительный анализ технологий для создания внешнего
представления приложения 10
2. РАЗРАБОТКА И РЕАЛИЗАЦИЯ БАЗЫ ДАННЫХ И
ВНУТРЕННЕЙ ЛОГИКИ ДЛЯ СЕРВИСА ВОПРОСОВ И ОТВЕТОВ 13
2.1. Создание базы данных для системы взаимодействия пользователей 13
2.2. Реализация внутренней логики системы взаимодействия
пользователей (back-end) 17
3. РАЗРАБОТКА И РЕАЛИЗАЦИЯ ВНЕШНЕГО ПРЕДСТАВЛЕНИЯ СЕРВИСА ВОПРОСОВ И ОТВЕТОВ (FRONT -END) .... 22
3.1. Возможности пользователей в системе 23
3.1.1. Доступ к профилю 23
3.1.2. Просмотр вопросов 25
3.1.3. Добавление в систему ответов на вопросы 27
3.1.4. Выбор лучшего ответа 29
3.1.5. Добавление вопросов в систему 30
3.1.6. Удаление вопросов и ответов 31
3.1.7. Доступ к профилям других пользователей 33
3.1.8. Удаление себя из системы 35
3.1.9. Просмотр статистики сайта 36
3.2. Возможности администратора в системе 37
3.2.1. Доступ к профилю 37
3.2.2. Удаление категорий и подкатегорий 38
3.2.3. Удаление вопросов и ответов 39
3.2.4. Добавление категорий в систему 40
3.2.5. Добавление подкатегорий в систему 41
3.2.6. Просмотр статистики сайта 43
ЗАКЛЮЧЕНИЕ 44
СПИСОК ЛИТЕРАТУРЫ 46
Приложение 1 48
Приложение 2 77
С появлением социальных сетей жизнь современного человека сильно изменилась, его социальное взаимодействие с людьми вышло на новый уровень, а именно появилась возможность виртуального общения посредством Интернета. Все больше людей предпочитают взаимодействовать друг с другом во всемирной информационной компьютерной сети.
Таким образом, видим, что создание систем взаимодействия пользователей является актуальной задачей в условиях современного информационного рынка. Главная цель, которая стоит перед создателями данных систем - это обеспечить пользователям возможность общения друг с другом, реализовать защиту их данных, предоставить интерфейс с удобной навигацией для комфортного использования предоставленных системой функций и действий.
В данной дипломной работе была поставлена задача - разработать систему взаимодействия пользователей на языке программирования Java.
Актуальность выбранной темы заключается в том, что в условиях современного информационного рынка интернет-пользователи заинтересованы во взаимодействии друг с другом. Одним из способов организации данного взаимодействия является система вопросов и ответов, в которой пользователи имеют возможность коммуницировать друг с другом.
Объект исследования: анализ информационных технологий при разработке веб-приложений.
Предмет исследования: разработка систем (веб-приложений) вопросов и ответов.
Цель исследования: разработать автоматизированную информационную систему с возможностью регистрации (авторизации) пользователей, в которой возможно задать вопрос на любую выбранную тему и добавить, просмотреть ответы по разным категориям.
Задачи исследования:
1. Обзор современных методов и технологий для создания и разработки внутренней логики веб-приложений.
2. Обзор современных методов и технологий для создания и разработки внешнего представления веб-приложений.
3. Выбор системы управления базами данных, которая предоставит функционал для работы с базой для веб-приложения.
4. Создание системы взаимодействия пользователей с удобным интерфейсом.
Внутренняя логика данной системы была реализована на языке Java в среде разработки IntelliJ IDEA, внешнее представление было создано на языке TypeScript с использованием фреймворка Angular. База данных была создана с помощью языка SQL в системе управления базами данных PostgreSQL.
Данная дипломная работа отличается высокой практической значимостью. В ее рамках была разработана система, позволяющая пользователям задавать вопросы на интересующую их тематику и отвечать на уже заданные вопросы, выбирать лучшие ответы и при желании удалять из системы свои данные.
Настоящая дипломная работа содержит введение, три главы, шесть параграфов, заключение, список используемой литературы и приложения.
В результате написания данной дипломной работы была создана система взаимодействия пользователей на языке Java. База данных для системы была написана на языке SQL в системе управления базами данных PostgreSQL. Интерфейс был создан в Angualr на языке TypeScript.
Основной функциональной особенностью системы является коммуникация пользователей посредством системы вопросов и ответов. Каждое авторизированное в ней лицо имеет возможность просматривать вопросы, заданные другими пользователями, выкладывать ответы к ним и добавлять в систему свои вопросы. После того, как кто-либо из пользователей ответит на вопрос, его автор имеет право выбрать лучший ответ, тем самым вопрос получит решение и станет закрытым к добавлению новых ответов. Пользователи обладают правом удалять из системы свои вопросы и ответы, а также удалять из нее свой профиль, тем самым теряя возможность авторизоваться в системе и закрывая просмотр данных о себе другими пользователям. Удаление пользователей из системы не приводит к удалению из нее его вопросов и ответов. Все новые записи от пользователей записываются и сохраняются в таблицах базы данных, а данные, помеченные на удаление, стираются из таблиц без права на восстановление. При регистрации нового пользователя в системе его информация, а именно логин, имя, почтовый адрес, пароль, захэшированый функцией BCrypt, также заносится в базу.
Пользователи с ролью “администратор” имеют возможность удалять некоторые данные из системы, а именно записи из таблиц базы данных “Категории”, “Подкатегории”, “Вопросы”, “Ответы”. Также для администраторов открыт доступ на добавление новых строк в таблицы “Категории” и “Подкатегории”.
Практическое применение созданной системы взаимодействия пользователей возможно при проведении различных маркетинговых исследований, анализе мнения пользователей о продуктах и услугах, сборе информации в статистических и прочих целях. Данная система предполагает возможность изменения тематики пользовательских вопросов, ее интерфейс характеризуется удобством использования и содержит стандартизированные элементы, характерные для современные веб-приложений.
1. Альфред, В. Ахо Компиляторы. Принципы, технологии и инструментарий / Альфред В. Ахо и др. - М.: Вильямс, 2015. - 689 с.
2. Бауэр К., Кинг Г., Грегори Г. Java Persistence API и Hibernate: ДМК- Пресс, 2019 . - 652 с.
3. Бек, Кент Шаблоны реализации корпоративных приложений; М.: Вильямс, 2008. - 369 с.
4. Берд, Барри Программирование на Java для чайников / Барри Берд.
- М.: Диалектика, 2013. - 384 с.
5. Бердышев С. Н. Искусство оформления сайта; Дашков и Ко - М., 2013. - 148 с.
6. Васильев, А. Н. Самоучитель Java с примерами и программами / А.Н. Васильев. - М.: Наука и техника, 2016. - 368 с.
7. Голицына, О.Л. и др. Базы данных; Форум; Инфра-М, 2013. - 399 с.
8. Гонсалвес, Энтони Изучаем Java EE 7 / Энтони Гонсалвес. - М.: Питер, 2016. - 640 с.
9. Горнаков С. Г. Осваиваем популярные системы управления сайтом; ДМК Пресс - М., 2009. - 336 с.
10. Грофф, Джеймс; Вайнберг, Пол SQL: полное руководство; Киев: BHV, 2005. - 608 с.
11. Гудман, Д. Java Script и DHTML. Сборник рецептов для профессионалов / Д. Гудман. - М.: СПб: Питер, 2004. - 523 с.
12. Гупта, Арун Java EE 7. Основы / Арун Гупта. - М.: Вильямс, 2014.
- 336 с.
13. Дейт, К.Дж. Введение в системы баз данных; К.: Диалектика; Издание 6-е, 2012. - 360 с.
14. Дюваль, Поль М. Непрерывная интеграция. Улучшение качества программного обеспечения и снижение риска; М.: Вильямс, 2008. - 497 с.
15. Костин С. П. Самоучитель создания Web-сайтов; Триумф - Москва, 2009. - 176 с.
16. Льюис, Дирк Самоучитель Java 7 / Дирк Льюис , Петер Мюллер. - М.: БХВ-Петербург, 2013. - 464 с.
17. Наумов, А.Н.; Вендров, А.М.; Иванов, В.К. и др. Системы управления базами данных и знаний; М.: Финансы и статистика, 2010. - 352 с.
18. Редько, В.Н.; Бассараб, И.А. Базы данных и информационные системы; Знание, 2011. - 602 с.
19. Редько, В.Н.; Бассараб, И.А. Базы данных и информационные системы; Знание, 2011. - 602 с.
20. Ригс, Саймон Администрирование PostgreSQL 9. Книга рецептов / Саймон Ригс , Ханну Кросинг. - М.: ДМК Пресс, 2015. - 364 с.
21. Савитч, Уолтер Язык Java. Курс программирования / Уолтер Савитч. - М.: Вильямс, 2015. - 928 с.
22. Сеттер, Р. В. Изучаем Java на примерах и задачах / Р.В. Сеттер. - М.: Наука и техника, 2016. - 240 с.
23. Стоунз, Ричард; Мэттью, Нейл PostgreSQL. Основы; СПб: Символ - Плюс, 2007. - 640 с.
24. Туманов, В.Е. Основы проектирования реляционных баз данных; Бином, 2012. - 420 с.
25. Уоллс, Крейг Spring в действии / Крейг Уоллс. - М.: ДМК Пресс,
2015. - 754 с.
26. Уорден, К. Новые интеллектуальные материалы и конструкции. Свойства и применение; М.: Техносфера, 2012. - 456 с.
27. Фейерштейн, С.; Прибыл, Б. Oracle PL/SQL для профессионалов; СПб: Питер, 2005. - 941 с.
28. Хаббард, Дж. Автоматизированное проектирование баз данных; М.: Мир, 2011. - 453 с.
29. Шаймарданов, Р.Б. Моделирование и автоматизация проектирования структур баз данных; М.: Радио и связь, 2008. - 469 с.
30. Шилдт, Герберт Java 8. Руководство для начинающих / Герберт Шилдт. - М.: Вильямс, 2015. - 720 с.
2. Интернет-ресурсы:
1. www.codecademy.com - интерактивная онлайн-платформа для обучения языкам программирования
2. www.ed.ted.com - отдельный образовательный проект TED.com (официальный сайт TED)
3. www.guides.co - крупнейшая коллекция обучающего контента
4. www.khanacademy.org - бесплатная образовательная сеть с обучающими видеоуроками
5. www.rsdn.org - сайт, посвященный разработке программного обеспечения