Файл: Разработка сайта по обмену книгами BookChange.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 25.04.2023

Просмотров: 145

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Введение

В современном мире взаимодействие большого числа компаний происходит через сеть Интернет. Начиная с 1969 года, мировая сеть - Интернет стремительно развивалась, в наше время превратилась в одно из основных средств, используемых для общения, развлечений, рекламы, торговли и источник разнообразной полезной информации для любой категории пользователей. Количество компаний и пользователей, которые используют преимущества этой технологии, увеличивается чуть ли каждый день. Интернет затрагивает все виды сфер жизни общества – экономическую, политическую, духовную и даже социальную. В связи с глобальным развитием сети Интернет, в программировании все более резко начала выделяться отдельная его отрасль - WEBпрограммирование. Именно поэтому компания “BookChange” решила создать сайт для своего проекта по обмену книгами, так как в последние годы было замечено повышение интереса к обмену книг.

С распространением Интернета чтение книг так же перешло в цифровой вид. Однако, всё ещё остались люди, предпочитающие пользоваться бумажной литературой. И некоторые из них хотели бы поделиться уже прочитанными и более ненужными книгами, либо же напротив, получить какую-то определённую книгу, которую они ещё не читали. Таким образом, можно дать книге «вторую жизнь». И как раз сеть интернет позволит сделать этот процесс проще. Сайт даст возможность в простой форме создать предложение по обмену и осуществить этот самый обмен.

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

В данной курсовой работе будет рассмотрено создание сайта по обмену книгами.

Целью курсовой работы является изучение современных методов создания сайтов и приложений для среды Web. Основными задачами являются:

-изучение создания Web-приложений и сценариев,

-интеграция Web-приложений в статический контент сайта для актуализации отображаемых данных

-изучение протоколов сети Интернет

-изучение правил построения приложений и принципов работы приложений в сети Интернет.


1. Техническое задание и выбор средств реализации

Техническое задание для выполнения в рамках курсовой работы представляет собой создание динамического сайта для обмена книгами.

Сайт компании “BookChange” в первую очередь предоставляет пользователям возможность публиковать предложения об обмене книг. Можно создать как предложение об обмене книги (пользователь, создавший предложение, выступает отправителем книги), так и просьбу об отправке (создатель предложения является получателем книги). Также сайт содержит: библиотеку из книг, в которой можно узнать больше о книге и из которой впоследствии выводится информация для создания предложения об обмене; раздел с информацией об авторах, также содержащий краткий список их произведений; профиль, в котором пользователь может просмотреть свою статистику по обменам и изменить данные учётной записи.

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

Для написания статической части сайта будет использоваться язык разметки HTML версии 5.0, вышедшей в 2014 и являющимся современным стандартом создания веб-сайтов. Дополнительно для придания внешнего вида используются стили, написанные на языке CSS3. Для некотороых интерактивных элементов используются скрипты, написанные на языке Javascript. Для создания веб-приложений и динамического изменения веб-страниц используется язык программирования PHP версии 7.4. Он используется для изменения баз данных отображения актуальной информации из них, изменения содержимого веб-страницы в соответствии с этими данными, обеспечения средств авторизации пользователя. PHP-скрипты, в отличие от Javascript, выполняются на сервере, и пользователь получает уже готовую HTML-страницу, по этому для их выполнения необходим веб-сервер. В качестве сервера используется Apache OpenServer. Для создания и взаимодействия с базами данных используется реляционная система управления базами данных (СУБД) MySQL. Для управления базами данных MySQL используется открытое программное обеспечение MariaDB.


2. Описание модулей серверной части программы и их взаимодействие

Первым этапом разработки было создание макета для всех страниц. Были размечены места для шапки сайта, отдел для основного контента страницы, отдел для бокового меню и подвал сайта. Чёрными границами были выделены границы контейнеров для более понятного расположения элементов на сайте.

Следующим этапом было уже непосредственно создание страниц каждого раздела сайта.

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

Модуль регистрации представляет собой набор из полей для ввода данных, таких как логин пользователя, его электронный адрес и пароль. Для каждого из этих полей установлены определённые проверки, например, не должен повторяться логин, электронный адрес должен соответствовать определённому формату (mail@example.com), пароли в обоих полях должны совпадать. В случае успешной регистрации пользователю будет выдано соответствующее сообщение и предложение вернуться на главную. Позже пользователь может войти под указанными реквизитами.

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

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

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

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


Форма добавления книги содержит список авторов с поиском и поле для ввода своего автора (если его нет в списке), список жанров и поля ввода названия и года написания.

Страница с авторами содержит список авторов с удобными вариантами сортировки.

Модуль страницы автора выводит информацию о нем – дату рождения и биографию.

Следующий модуль – книги на обмен. На странице выводятся текущие доступные обмены и ссылка на форму добавления обмена. У каждого обмена имеется кнопка «Запросить». Информация каждого обмена состоит из названия книги со ссылкой на информацию о книге, описание состояния книги, имя пользователя отправителя и город нахождения книги, издатель книги и год издательства.

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

При нажатии кнопки «Запросить» открывается форма ввода адреса для отправки.

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

Модуль профиля предоставляет некоторую информацию о пользователе, возможность редактирования профиля (если пользователь является владельцем профиля или администратором) и личную статистику.

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

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

Ниже приведена схема взаимосвязи модулей.

Рисунок 1. Схема взаимодействия модулей.

Далее представлена таблица входных и выходных данных модулей.

Таблица 1.

Входные и выходные данные модулей

Название модуля

Входные данные

Выходные данные

Главная страница

Описание, основные ссылки

Переход к основным разделам сайта

Продолжение таблицы 1.

Название модуля

Входные данные

Выходные данные

Шапка сайта

Ссылки на разделы сайта

Навигация по основным разделам

Регистрация

Данные пользователя: логин, пароль, электронный адрес

Проверка на уникальность и правильность введённых данных, создание учётной записи пользователя в базе данных

Авторизация

Логин, пароль пользователя

Проверка данных на соответствие авторизация пользователя создание сессии

Библиотека

Данные из базы данных

Список книг

Страница книги

Данные из базы данных

Информация о книге

Форма добавления книги

Введённые пользователем данные, данные из базы данных

Создание новой записи в таблице базы данных

Список авторов

Данные из базы данных

Список авторов

Страница автора

Данные из базы данных

Данные автора

Страница книг на обмен

Данные из базы данных

Список книг, доступных для обмена

Форма добавления обмена

Введённые пользователем данные, данные из базы данных

Создание записи в базе данных о новом обмене

Форма отклика на обмен

Введённые пользователем данные

Новый ответ на обмен, изменение статуса обмена

Страница желаний пользователей

Данные из базы данных

Список книг, которых пользователи хотят получить

Форма добавления желания

Данные из базы данных, введённые пользователем данные

Создание записи в базе данных о новом желании

Форма отклика на желание

Данные из базы данных

Адрес для отправки книги, новый ответ на желание, обновление статуса желания

Боковое меню

Данные из базы данных, данные для авторизации пользователя

Доступ к личным разделам сайта, данные из базы данных

Профиль

Данные из базы данных

Отображение информации о пользователе

Изменение профиля

Данные из базы данных, введённые пользователем данные

Изменение данных учётной записи пользователя

Сообщения

Данные из базы данных

Вывод статусов обменов

Изменение статуса

Действие пользователя, данные из базы данных

Изменение статуса обмена, изменение статуса сообещний


3. Описание структуры базы данных и ее функций

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

Ниже приведён рисунок ER-диаграммы базы данных:

Рисунок 2. ER-диаграмма

Далее будут приведены содержания таблиц базы данных.

В таблице 2 описано содержание таблицы базы данных с книгами.

Таблица 2

Таблица “books”

Название столбца

Тип данных

Назначение

Действия со столбцом

Book_id

Int(8)

Идентификатор книги. Первичный ключ.

AUTO_INCREMENT при добавлении записи.

Book_name

Varchar(50)

Содержит название книги.

Отображение на странице, добавление введённых данных.

author

Int(5)

Содержит ссылку на таблицу с авторами. Внешний ключ.

Отображение на странице данных по внешнему ключу.

Year_orig

Int(4)

Содержит дату написания книги.

Отображение на странице, добавление введённых данных.

Продолжение таблицы 2

Название столбца

Тип данных

Назначение

Действия со столбцом

genre

Int(5)

Содержит ссылку на жанр. Внешний ключ.

Отображение на странице данных по внешнему ключу.

annotation

Varchar(10000)

Содержит аннотацию к книге. Может быть NULL.

Отображение на странице.

visits

Bigint(20)

Содержит счётчик посещений.

Отображение на странице, увеличение при открытии страницы.

В таблице 3 описано содержание таблицы базы данных с авторами.

Таблица 3

Таблица “id_authors”

Название столбца

Тип данных

Назначение

Действия со столбцом

Author_id

Int(5)

Идентификатор автора. Первичный ключ.

AUTO_INCREMENT при добавлении записи.

author

Varchar(50)

Имя и фамилия автора.

Отображение на странице, добавление введенных данных со страницы.

A_birth

date

Дата рождения автора. Может быть NULL.

Отображение на странице.

A_death

Date

Дата смерти автора. Может быть NULL.

Отображение на странице.

biography

Varchar(5000)

Биография автора. Может быть NULL.

Отображение на странице.