Файл: Разработка WEB-ресурса по обмену книгами «BookTrade.org».pdf

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

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

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

Добавлен: 25.04.2023

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

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

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

Введение

Цель данной работы – разработка веб-ресурса, направленного на реализацию обмена книг, BookTrade.org с возможностью последующей доработки и реализации как полноценного проекта для размещения в сети Интернет. Разрабатываемый ресурс направлен как на возможность обмена бумажными книгами между пользователями, так и на поиск нового литературного опыта. Таким образом, разделы сайта и их реализация должны отвечать обеим поставленным задачам в полной мере и предоставлять функционал для выполнения этих задач. Основными разделами ресурса выбраны “Home page” (домашняя страница), “What to read?” (что почитать), “Quotes” (цитаты), “Users’ reviews” (пользовательские рецензии), “Trade offers” (предложения обмена) и “Literature news” (новости литературы). Таким образом, все разделы сайта должны быть направлены на выполнение информационной, коммуникативной и развлекательной целей и имеют соответствующий функционал.

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

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

1. Техническое задание

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


В частности, основные разделы сайта имеют следующие функции:

  • Home page – знакомство новых пользователей с веб-ресурсом, а также с последними нововведениями на портале.
  • What to read? – раздел, предназначенный для того, чтобы пользователь мог получить случайную книгу из базы данных и, возможно, заинтересоваться как новым литературным опытом.
  • Quotes – раздел со случайной цитатой из базы данных, направленный на то, чтобы заинтересовать пользователя в, возможно, новом для него произведении.
  • Users’ reviews – обзоры пользователей на книги, где пользователь также может подобрать для себя нечто новое.
  • Trade offers – предложения пользователей об обмене с краткой информацией о предложении, а также возможностью сразу написать личное сообщение автору объявления.
  • Literature news – новости литературы, добавляемые администраторами и модераторами.

Активность, доступная пользователям зависит от того, к какой категории он относится и какие соответственно права имеет. Так пользователи делятся на четыре категории:

  • Неавторизованные. Имеют право просматривать все доступные на панели навигации разделы сайта, а также просматривать профили зарегистрированных пользователей.
  • Авторизованные, забаненные (имеющие нулевые права). Имеют право просматривать все доступные разделы сайта, просматривать профили зарегистрированных пользователей и редактировать свой персональную информацию и просматривать личные сообщения.
  • Авторизованные, не забаненные. Имеют право просматривать все доступные разделы сайта, просматривать профили зарегистрированных пользователей, редактировать свой персональную информацию, просматривать и отправлять личные сообщения, добавлять книги в предложения об обмене, желаемое, прочитанное (формировать персональную библиотеку), добавлять обзоры на книги.
  • Администраторы. Имеют право просматривать все доступные разделы сайта, просматривать профили зарегистрированных пользователей, редактировать свой персональную информацию, просматривать и отправлять личные сообщения, добавлять книги в предложения об обмене, желаемое, прочитанное (формировать персональную библиотеку), добавлять обзоры на книги, добавлять и редактировать книги в общей библиотеке ресурса, добавлять и редактировать цитаты, добавлять новости литературы и портала. Также административная функция проявляется в том, что администратор может удалить предложение об обмене пользователя, отредактировать добавленный пользователем обзор, а также лишить пользователя прав или восстановить права обычного пользователя.

При регистрации пользователь в обязательном порядке указывает логин, электронную почту и пароль; данная информация заносится в таблицу users, используемую для аутентификации пользователя; при регистрации пользователь автоматически получает обычные права, что также заносится в эту таблицу. При желании также указывает такие данные как полное имя, возраст, место жительства и информацию о себе; данная информация хранится в другой таблице – user_info, и используется уже непосредственно при работе с сайтом. При аутентификации пользователя в сессию заносятся логин и права из таблицы users, а также обновляется дата и время последней аутентификации и ставится отметка об онлайне в таблице user_info. При выходе из портала (log out) также обновляется отметка о последней активности и ставится отметка о том, что пользователь оффлайн. Весь контент, добавляемый пользователями, хранится в базе данных на сервере, сортируемый по специфике по разным таблицам. Используемая для менеджмента базы данных СУБД – MySQL. Для реализации всей статичной части сайта используется связка HTML+CSS, для реализации серверной – PHP. Используемый серверный движок – Apache.

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

Для разработки веб-ресурса была выбрана среда разработки MS Visual Code с установленными плагинами на подсветку синтаксиса для HTML, CSS и PHP. Также перед разработкой была разработана модель, отражающая логистику, функциональную связь модулей разрабатываемого веб-ресурса. Она продемонстрирована на рисунке 1. Подробное описание модулей, их основных компонентов, назначения и входных-выходных данных предоставлено в таблице 1. Описание вспомогательных компонентов предоставлено в таблице 2.

Рисунок 1

Таблица 1

Модуль

Компонент

Назначение компонента

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

Аутентификация

register.php

Добавление нового пользователя в систему

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

Users (Username, Email, Password), user_info (Full name, Age, Location, User information).

Аутентификация, авторизация

login.php

Аутентификация и авторизация пользователя

Входные данные: users (Username, Password). Выходные данные: user_info (Rights, Active, Last online).

Общий модуль

index.php

Домашняя страница, ознакомление пользователя с ресурсом

Входные данные: данные сессии (Username, Rights). Выходные данные: модуль новостей портала site_news (title, text, date), для неавторизованных пользователей справка о портале.

Общий модуль

goread.php

Случайная книга

Выходные данные: случайная книга из библиотеки books (bookname, author, genre).

Общий модуль

quote.php

Случайная цитата

Выходные данные: случайная цитата из цитатника quotes (bookname, quote_text) и справка по книге из библиотеки books (author, genre).

Общий модуль

reviews.php

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

Входные данные: данные сессии (Username, Rights). Выходные данные: пользовательские обзоры reviews (bookname, author, username, review, rating).

Общий модуль, обзоры

addreview.php

Добавление обзора

Входные данные: данные сессии (username, rights), добавление обзора reviews (bookname, author, username, review, rating).

Общий модуль, обзоры

editreview.php

Редактирование обзора

Входные данные: данные сессии (username, rights), редактирование обзора reviews (bookname, author, username, review, rating). Выходные данные: информация о старом обзоре reviews (bookname, author, review, rating).


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

Общий модуль

news.php

Новости литературы

Входные данные: данные сессии user_info (Username, Rights). Выходные данные: новости lit_news (title, small_text, date).

Общий модуль, новости

litnews.php

Развернутая новость из раздела с новостями литературы

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

Users (Username, Email, Password). Выходные данные: новость lit_news (title, text, date).

Общий модуль, новости

editnews.php

Редактирование новости

Входные данные: users (Username, Password), новый текст lit_news (title, small_text, text). Выходные данные: старый текст lit_news (title, small_text, text).

Модуль пользователя

user.php

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

Входные данные: данные сессии (Username, Rights). Выходные данные:user_info (id, username, fullname, age, location, userinfo), w_trade (bookname, author, trade_info, date), w_read (bookname, author), readed (bookname, author), reviews (bookname, author, review, rating).

Модуль пользователя

useredit.php

Редактировать пользовательскую информацию

Входные данные: данные сессии (Username, Rights), вводимые данные userinfo (fullname, age, location, userinfo). Выходные данные: старые данные user_info (id, username, fullname, age, location, userinfo).

Модуль пользователя

addbook.php

Добавить книгу в один из пользовательских разделов

Входные данные: данные сессии (Username, Rights), w_trade (bookname, author, trade_info, date), w_read (bookname, author), readed (bookname, author).

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

Модуль пользователя, личные сообщения

messages.php

Личные сообщения пользователя

Входные данные: данные сессии (Username, Rights). Выходные данные: список сообщений messages (data, u_from, u_to, flag).

Модуль пользователя, личные сообщения

read_mes.php

Развернуть личное сообщение

Входные данные: данные сессии (Username, Rights). Выходные данные: сообщение messages (data, u_from, u_to, message).

Модуль пользователя, личные сообщения

pm.php

Отправить сообщение

Входные данные: данные сессии (Username, Rights), сообщение messages (data, u_from, u_to, message).

Модуль администратора

adminpanel.php

Панель администратора с функциями бана, разбана, добавления книг и цитат в библиотеки и их редактирования

Входные данные: данные сессии (Username, Rights). Выходные данные: user_info (username, rights), books (book_id, bookname, author, genre), site_news (title, text, username), lit_news (title, small_text, text, username), quotes (bookname, quote_text).

Модуль администратора, библиотека

library.php

Справка по библиотеке для администратора

Входные данные: данные сессии (Username, Rights). Выходные данные: books (book_id, bookname, author, genre).


Таблица 2

Модуль

Компонент

Назначение компонента

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

Включено во всех модулях

connect.php

Включение переменных, содержащих данные для коннекта с СУБД и выбора конкретной БД на сервере, также устанавливается кодировка

Включено во всех общих модулях

header.php

«Шапка» для авторизованного пользователя

Входные данные: данные сессии (Username). Выходные данные: (Username), форма log out, ссылка на модуль личных сообщений, для администратора – ссылка на панель администратора.

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

Включено во всех общих модулях

aheader.php

«Шапка» для неавторизованного пользователя

Кнопки входа (log in) и регистрации (register).

Включено во всех модулях

footer.php

«подвал»

Текст копирайта.

Включено во всех общих модулях для авторизованного пользователя

logout.php

Кнопка окончания сессии

Входные данные: данные сессии (Username), обновление активности пользователя и даты последней активности user_info (active, date).

Модуль пользователя, перенаправление

delete.php

Удаление объявление об обмене

Входные данные: данные сессии (Username, Rights), удаляемая позиция w_trade (item_id).

Модуль пользователя, перенаправление

deletew.php

Удаление желаемой книги

Входные данные: данные сессии (Username), удаляемая позиция w_read (w_id).

Для передачи данных на сервер для работы с базой данных во всех модулях использовался метод POST. Для реализации динамически генерируемых страниц пользователей и страниц, содержащих личные сообщения, а также страниц, содержащих конкретную новость, использован метод GET. При этом если адрес к странице пользователя имеет следующий вид: «booktrade.org/user.php», то пользователь попадает на свою страницу. Также метод GET используется для реализации удаления записей с использованием отдельных модулей и обязательной проверкой прав пользователя; таким образом, запись может удалить исключительно либо пользователь, разместивший ее, либо администратор. Во всех модулях используются сессии, обязательно содержащие идентификационный номер, логин и права пользователя; данное решение было принято для реализации проверок подлинности пользователя во всех разделах, доступ к добавлению, редактированию, удалению и просмотру контента которых ограничен правами пользователей. При переходе на страницу logout.php все данные о сессии стираются и пользователь перенаправляется на стартовую страницу.