ИИТ БГУИР
Факультет повышения квалификации и переподготовки
Кафедра МПСС
Пояснительная записка к курсовому проекту
по дисциплине: «Средства визуального программирования
приложений»
на тему: «Веб приложение: доска объявлений»
Выполнил слушатель гр. 40324-23 Перес А.П. |
|
Руководитель: к.т.н., доцент Боброва Н.Л. Оценка: __________________ __________________ (подпись) __________________(дата) |
Минск
2016
Оглавление
Введение. 4
1. Описание предметной области и определение требований к системе с точки зрения предметной области 5
1.1. Описание предметной области. 5
1.2. Определение требований к системе с точки зрения предметной области. 6
2. Постановка задачи и обзор методов её решения. 7
2.1 Постановка задачи для проектирования онлайн доски объявлений. 7
2.2 Обзор методов решения поставленных задач. 9
2.2.1 Архитектура web приложений. 9
2.2.2 Многоуровневые модели в архитектуре клиент-сервер. 15
2.2.3 Составляющие веб-программирования. 22
3. Модели представления системы и их описание. 25
3.1 Модель бизнес актеров и их функциональных обязанностей (бизнес функций). 25
3.2 Модель вариантов использования. 27
4. Информационная модель системы и её описание (с доказательством приведения ее к 3-ей нормальной форме) 28
5. Описание алгоритмов реализующих бизнес-логику проектируемой системы.. 31
5.1 Алгоритм регистрации пользователя. 31
5.2 Алгоритм входа в систему. 33
5.3 Алгоритм фильтрации данных. 35
6. Руководство пользователя. 36
6.1 Введение. 36
6.1.1 Область применения. 36
6.1.2 Краткое описание возможностей. 36
6.1.3 Уровень подготовки пользователя. 36
6.1.4 Условия, при соблюдении которых обеспечивается применения web приложения в соответствии с назначением.. 36
6.2 ПОДГОТОВКА К РАБОТЕ. 37
6.2.1 Регистрация. 37
6.2.2 Вход в систему. 38
6.3 Описание операций. 39
6.3.1 Фильтрация данных. 39
7. Результаты тестирования разработанной системы и оценка выполнения задач. 40
7.1 Тестирование регистрации. 40
7.2 Тестирование входа в систему. 43
7.3 Тестирование фильтрации данных. 45
Заключение. 47
Список использованных источников. 48
Приложение. 49
Введение
Все более популярными становятся сервисы для подачи частных объявлений о продаже и покупке поддержанных товаров. Цены в магазинах растут, зарплаты падают, поэтому зачастую рациональнее купить бывший в употреблении товар, нежели новый.
Веб приложение «Доска объявлений» позволит размещать частные объявления о продаже, покупке, обмене и различного рода услугах.
Основная задача приложения заключается в предоставлении пользователю интерфейса, для возможности быстрой и удобной регистрации на сайте и подаче объявления, гибкого поиска требуемых объявлений с возможностью фильтрации и сортировки полученной информации.
Так же осуществить систему поиска по тегам. Т.е. при подаче объявлений к нему прикрепляются теги, по которым будет осуществляться поиск. Теги приводятся в соответствие системой с помощью словаря синонимов. Приложение при необходимости переопределить тег, введенный пользователем.
На главное странице будет отображаться облако тегов. Приложение анализирует частоту поиска по определенным тегам и наиболее часто запрашиваемые поместит в это облако, и в зависимости от коэффициента частоты поиска по тегу будет в большой или меньшей степени выделять его шрифтом среди других. Т.е. пользователю будет наглядно видно, какие запросы наиболее актуальны.
1. Описание предметной области и определение требований к системе с точки зрения предметной области
1.1. Описание предметной области
В ходе работы рассматриваются с одной стороны частные или физические лица, которые нуждаются в подаче объявления о продаже, покупке, обмене или услуге. Со второй стороны частные или физические лица, которые нуждаются в поиске объявлений на тему продажи, покупки, обмена или услуге.
Приложение непосредственно взаимодействует с пользователями и их объявлениями. Пользователи подразделяются на зарегистрированных и не зарегистрированных. Объявления характеризуются типом, категорией и регионом.
Для поиска требуемых объявлений используется система поиска по тегам. Которая несет в себе не только поисковый характер, но и статистический.
Схема 1. Сущности предметной области
1.2. Определение требований к системе с точки зрения предметной области
Требования к приложению, со стороны пользователя, осуществляющий поиск необходимого объявления:
- Фильтр объявлений
o По категории
o По типу
o По региону
o По дате подачи
o По цене
o По выбранным тэгам
- Сортировка объявлений
o По цене
o По дате
Крайне важно, что бы поиск осуществлялся быстро и как можно точно соответствовал существующему запросу.
Требования к приложению, со стороны пользователя, осуществляющего размещение необходимого объявления:
- Регистрация пользователя должна быть по возможности быстрой и простой.
- Процедура подачи объявления должна быть интуитивно понятной, простой и быстрой.
- Приложение должно давать возможность пользователю содействовать увеличению быстроты отклика на поданное объявление.
2. Постановка задачи и обзор методов её решения.
2.1 Постановка задачи для проектирования онлайн доски объявлений
Для начала разработки web приложения «Доска объявлений» можно поставить три основных задачи:
1. Разработка базы данных, с которой приложение будет взаимодействовать.
2. Разработка UI web приложения, для возможности взаимодействия пользователя с web приложением.
3. Разработка бизнес логики web приложения
Пользовательская часть должна включать следующие элементы:
1. Главный экран
a. Категории объявлений
b. Типы объявлений
c. Регион объявлений
d. Ссылка на регистрацию пользователя
e. Ссылка на авторизацию зарегистрированного пользователя
f. Ссылка на личный кабинет пользователя
g. Каталог существующих объявлений
2. Кабинет пользователя
a. Объявления пользователя
b. Личная и контактная информация пользователя
c. Добавление объявления
d. Редактирование личных данных
e. Редактирование объявлений пользователя
3. Страница одного объявления
a. Полная информация об объявлении
b. Ссылка на хозяина объявления
4. Каталог объявлений
a. Фильтрация по типу
b. Фильтрация по категории
c. Фильтрация по региону
d. Фильтрация по дате подачи
e. Фильтрация по цене
f. Сортировка по цене
g. Сортировка по дате
Функции административной панели приложения:
1. Раздел модерации
a. Добавление/удаление объявлений
b. Редактирование объявлений
2. Раздел с пользователями
a. Добавление и удаление пользователя
3. Раздел с тегами
a. Добавление и удаление тега
b. Редактирование тега
c. Добавление/удаление слов синонимов тега
2.2 Обзор методов решения поставленных задач
2.2.1 Архитектура web приложений
Web-приложения представляют собой особый тип программ, построенных по архитектуре "клиент-сервер". Особенность их заключается в том, что само Web-приложение находится и выполняется на сервере - клиент при этом получает только результаты работы. Работа приложения основывается на получении запросов от пользователя (клиента), их обработке и выдачи результата. Передача запросов и результатов их обработки происходит через Интернет ( рис. 2.2.1.1).
Рис. 2.2.1.1 Архитектура Web-приложения
Отображением результатов запросов, а также приемом данных от клиента и их передачей на сервер обычно занимается специальное приложение — браузер (Internet Explorer, Mozilla, Opera и т. д.). Как известно, одной из функций браузера является отображение данных, полученных из Интернета, в виде страницы, описанной на языке HTML, следовательно, результат, передаваемый сервером клиенту, должен быть представлен на этом языке.
На стороне сервера Web-приложение выполняется специальным программным обеспечением (Web-сервером), который и принимает запросы клиентов, обрабатывает их, формирует ответ в виде страницы, описанной на языке HTML, и передает его клиенту. Одним из таких Web-серверов является Internet Information Services (IIS) компании Microsoft. Это единственный Web-сервер, который способен выполнять Web-приложения, созданные с использованием технологии ASP.NET.
В процессе обработки запроса пользователя Web-приложение компонует ответ на основе исполнения программного кода, работающего на стороне сервера, Web-формы, страницы HTML, другого содержимого, включая графические файлы. В результате, как уже было сказано, формируется HTML-страница, которая и отправляется клиенту. Получается, что результат работы Web-приложения идентичен результату запроса к традиционному Web-сайту, однако, в отличие от него, Web-приложение генерирует HTML-код в зависимости от запроса пользователя, а не просто передает его клиенту в том виде, в котором этот код хранится в файле на стороне сервера. То есть Web-приложение динамически формирует ответ с помощью исполняемого кода — так называемой исполняемой части.
За счет наличия исполняемой части, Web-приложения способны выполнять практически те же операции, что и обычные Windows-приложения, с тем лишь ограничением, что код исполняется на сервере, в качестве интерфейса системы выступает браузер, а в качестве среды, посредством которой происходит обмен данными, — Интернет. К наиболее типичным операциям, выполняемым Web-приложениями, относятся:
- прием данных от пользователя и сохранение их на сервере;
- выполнение различных действий по запросу пользователя: извлечение данных из базы данных (БД), добавление, удаление, изменение данных в БД, проведение сложных вычислений;
- аутентифицирование пользователя и отображение интерфейса системы, соответствующего данному пользователю;
- отображение постоянно изменяющейся оперативной информации и т. д.
Клиент-серверные технологии
Архитектура клиент-сервер применяется в большом числе сетевых технологий, используемых для доступа к различным сетевым сервисам. Кратко рассмотрим некоторые типы таких сервисов (и серверов).
Web-серверы
Изначально представляли доступ к гипертекстовым документам по протоколу HTTP (Huper Text Transfer Protocol). Сейчас поддерживают расширенные возможности, в частности работу с бинарными файлами (изображения, мультимедиа и т.п.).
Серверы приложений
Предназначены для централизованного решения прикладных задач в некоторой предметной области. Для этого пользователи имеют право запускать серверные программы на исполнение. Использование серверов приложений позволяет снизить требования к конфигурации клиентов и упрощает общее управление сетью.
Серверы баз данных
Серверы баз данных используются для обработки пользовательских запросов на языке SQL. При этом СУБД находится на сервере, к которому и подключаются клиентские приложения.
Файл-серверы
Файл-сервер хранит информацию в виде файлов и представляет пользователям доступ к ней. Как правило файл-сервер обеспечивает и определенный уровень защиты от несакционированного доступа.
Прокси-сервер
Во-первых, действует как посредник, помогая пользователям получить информацию из Интернета и при этом обеспечивая защиту сети.
Во-вторых, сохраняет часто запрашиваемую информацию в кэш-памяти на локальном диске, быстро доставляя ее пользователям без повторного обращения к Интернету.
Файрволы (брандмауэры)
Межсетевые экраны, анализирующие и фильтрующие проходящий сетевой трафик, с целью обеспечения безопасности сети.
Почтовые серверы
Представляют услуги по отправке и получению электронных почтовых сообщений.
Серверы удаленного доступа (RAS)
Эти системы обеспечивают связь с сетью по коммутируемым линиям. Удаленный сотрудник может использовать ресурсы корпоративной ЛВС, подключившись к ней с помощью обычного модема.
Это лишь несколько типов из всего многообразия клиент-серверных технологий, используемых как в локальных, так и в глобальных сетях.
Для доступа к тем или иным сетевам сервисам используются клиенты, возможности которых характеризуются понятием «толщины». Оно определяет конфигурацию оборудования и программное обеспечение, имеющиеся у клиента. Рассмотрим возможные граничные значения:
«Тонкий» клиент
Этот термин определяет клиента, вычислительных ресурсов которого
достаточно лишь для запуска необходимого сетевого приложения через
web-интерфейс. Пользовательский интерфейс такого приложения формируется
средствами статического HTML (выполнение javascript не
предусматривается), вся прикладная логика выполняется на сервере.
Для работы тонкого клиента достаточно лишь обеспечить возможность запуска
web-браузера, в окне которого и осуществляются все действия. По этой причине
web-браузер часто называют "универсальным клиентом".
«Толстый» клиент
Таковым является рабочая станция или персональный компьютер,
работающие под управлением собственной дисковой операционной системы и имеющие
необходимый набор программного обеспечения. К сетевым серверам «толстые»
клиенты обращаются в основном за дополнительными услугами (например, доступ к
web-серверу или корпоративной базе данных).
Так же под «толстым» клиентом подразумевается и клиентское сетевое приложение,
запущенное под управлением локальной ОС. Такое приложение совмещает компонент
представления данных (графический пользовательский интерфейс ОС) и прикладной
компонент (вычислительные мощности клиентского компьютера).
В последнее время все чаще используется еще один термин: «rich»-client. «Rich«-клиент своего рода компромисс между «толстым» и «тонким» клиентом. Как и «тонкий» клиент, «rich»-клиент также представляет графический интерфейс, описываемый уже средствами XML и включающий некоторую функциональность толстых клиентов (например интерфейс drag-and-drop, вкладки, множественные окна, выпадающие меню и т.п.)
Прикладная логика «rich»-клиента также реализована на сервере. Данные отправляются в стандартном формате обмена, на основе того же XML (протоколы SOAP, XML-RPC) и интерпретируются клиентом.
Некоторые основные протоколы «rich»-клиентов на базе XML приведены ниже:
XAML (eXtensible Application Markup Language) — разработан Microsoft, используется в приложениях на платформе .NET;
XUL (XML User Interface Language) — стандарт, разработанный в рамках проекта Mozilla, используется, например, в почтовом клиенте Mozilla Thunderbird или браузере Mozilla Firefox;
Flex — мультимедийная технология на основе XML, разработанная Macromedia/Adobe.
Заключение
Итак, основная идея архитектуры «клиент-сервер» состоит в разделении сетевого приложения на несколько компонентов, каждый из которых реализует специфический набор сервисов. Компоненты такого приложения могут выполняться на разных компьютерах, выполняя серверные и/или клиентские функции. Это позволяет повысить надежность, безопасность и производительность сетевых приложений и сети в целом.
2.2.2 Многоуровневые модели в архитектуре клиент-сервер
Двухзвенная архитектура
В любой сети (даже одноранговой), построенной на современных сетевых технологиях, присутствуют элементы клиент-серверного взаимодействия, чаще всего на основе двухзвенной архитектуры. Двухзвенной (two-tier, 2-tier) она называется из-за необходимости распределения трех базовых компонентов между двумя узлами (клиентом и сервером).
Рис. 2.2.1 Двухзвенная клиент-серверная архитектура
Двухзвенная архитектура используется в клиент-серверных системах, где сервер отвечает на клиентские запросы напрямую и в полном объеме, при этом используя только собственные ресурсы. Т.е. сервер не вызывает сторонние сетевые приложения и не обращается к сторонним ресурсам для выполнения какой-либо части запроса (Рис 2.2.1)
Расположение компонентов на стороне клиента или сервера определяет следующие основные модели их взаимодействия в рамках двухзвенной архитектуры:
- сервер терминалов — распределенное представление данных;
- файл-сервер — доступ к удаленной базе данных и файловым ресурсам;
- сервер БД — удаленное представление данных;
- сервер приложений — удаленное приложение.
Перечисленные модели с вариациями представлены на рис. 2.2.2
Рис.2.2.2. Модели клиент-серверного взаимодействия
Исторически первой появилась модель распределенного представления данных (модель сервер терминалов). Она реализовывалась на универсальной ЭВМ (мэйнфрейме), выступавшей в роли сервера, с подключенными к ней алфавитно-цифровыми терминалами. Пользователи выполняли ввод данных с клавиатуры терминала, которые затем передавались на мэйнфрейм и там выполнялась их обработка, включая формирование «картинки» с результатами. Эта «картинка» и возвращалась пользователю на экран терминала.
С появлением персональных компьютеров и локальных сетей, была реализована модель файлового сервера, представлявшего доступ файловым ресурсам, в т.ч и к удаленной базе данных. В этом случае выделенный узел сети является файловым сервером, на котором размещены файлы базы данных. На клиентах выполняются приложения, в которых совмещены компонент представления и прикладной компонент (СУБД и прикладная программма), использующие подключенную удаленную базу как локальный файл. Протоколы обмена при этом представляют набор низкоуровневых вызовов операций файловой системы.
Такая модель показала свою неэффективность ввиду того, что при активной работе с таблицами БД возникает большая нагрузка на сеть. Частичным решением является поддержка тиражирования (репликации) таблиц и запросов. В этом случае, например при изменении данных, обновляется не вся таблица, а только модифицированная ее часть.
С появлением специализированных СУБД появилась возможность реализации другой модели доступа к удаленной базе данных — модели сервера баз данных. В этом случае ядро СУБД функционирует на сервере, прикладная программа на клиенте, а протокол обмена обеспечивается с помощью языка SQL. Такой подход по сравнению с файловым сервером ведет к уменьшению загрузки сети и унификации интерфейса «клиент-сервер». Однако, сетевой трафик остается достаточно высоким, кроме того, по прежнему невозможно удовлетворительное администрирование приложений, поскольку в одной программе совмещаются различные функции.
С разработкой и внедрением на уровне серверов баз данных механизма хранимых процедур появилась концепция активного сервера БД. В этом случае часть функций прикладного компонента реализованы в виде хранимых процедур, выполняемых на стороне сервера. Остальная прикладная логика выполняется на клиентской стороне. Протокол взаимодействия — соответствующий диалект языка SQL.
Преимущества такого подхода очевидны:
- возможно централизованное администрирование прикладных функций;
- снижение стоимости владения системой (TOC, total cost of ownership) за счет аренды сервера, а не его покупки;
- значительное снижение сетевого трафика (т.к. передаются не SQL-запросы, а вызовы хранимых процедур).
Основной недостаток — ограниченность средств разработки хранимых процедур по сравнению с языками высокого уровня.
Реализация прикладного компонента на стороне сервера представляет следующую модель — сервер приложений. Перенос функций прикладного компонента на сервер снижает требования к конфигурации клиентов и упрощает администрирование, но представляет повышенные требования к производительности, безопасности и надежности сервера.
В настоящее время намечается тенденция возврата к тому, с чего начиналась клиент-серверная архитектура — к централизации вычислений на основе модели терминал-сервера. В современной реинкарнации терминалы отличаются от своих алфавитно-цифровых предков тем, что имея минимум программных и аппаратных средств, представляют мультимедийные возможности (в т.ч. графический пользовательский интерфейс). Работу терминалов обеспечивает высокопроизводительный сервер, куда вынесено все, вплоть до виртуальных драйверов устройств, включая драйверы видеоподсистемы.
Трехзвенная архитектура
Еще одна тенденция в клиент-серверных технологиях связана со все большим использованием распределенных вычислений. Они реализуются на основе модели сервера приложений, где сетевое приложение разделено на две и более частей, каждая из которых может выполняться на отдельном компьютере. Выделенные части приложения взаимодействуют друг с другом, обмениваясь сообщениями в заранее согласованном формате. В этом случае двухзвенная клиент-серверная архитектура становится трехзвенной (three-tier, 3-tier).
Как правило, третьим звеном в трехзвенной архитектуре становится сервер приложений, т.е. компоненты распределяются следующим образом (рис. 2.2.3):
- Представление данных — на стороне клиента.
- Прикладной компонент — на выделенном сервере приложений (как вариант, выполняющем функции промежуточного ПО).
- Управление ресурсами — на сервере БД, который и представляет запрашиваемые данные.
Рис.2.2.3 Трехзвенная клиент-серверная архитектура
Трехзвенная архитектура может быть расширена до многозвенной (N-tier, Multi-tier) путем выделения дополнительных серверов, каждый из которых будет представлять собственные сервисы и пользоваться услугами прочих серверов разного уровня. Абстрактный пример многозвенной модели приведен на рис. 2.2.4
Рис.2.2.4 Многозвенная (N-tier) клиент-серверная архитектура
Сравнение архитектур
Двухзвенная архитектура проще, так как все запросы обслуживаются одним сервером, но именно из-за этого она менее надежна и предъявляет повышенные требования к производительности сервера.
Трехзвенная архитектура сложнее, но благодаря тому, что функции распределены между серверами второго и третьего уровня, эта архитектура представляет:
Высокую степень гибкости и масштабируемости.
Высокую безопасность (т.к. защиту можно определить для каждого сервиса или уровня).
Высокую производительность (т.к. задачи распределены между серверами).
2.2.3 Составляющие веб-программирования
Веб-дизайн
Разработка дизайна и функциональности графического пользовательского интерфейса веб-приложения, создаваемого с помощью языка разметки гипертекста и сопутствующих ему технологий.
Основы HTML/XHTML. На сегодня существует два стандарта разметки гипертекста: HTML и XHTML. В этом разделе я постарался описать то, откуда они появились и чем отличаются. Также, здесь вы найдете краткий справочник по HTML 4.01 с примерами. В дополнение ко всему будет не лишним прочитать про универсальный язык разметки XML.
Шаблоны и макеты. Здесь описаны решения типовых задач, с которыми часто имеют дело веб-дизайнеры: создание макета или шаблона интернет страницы, меню, элементов управления закладками, иерархической навигации типа “дерево” и многое другое.
HTML5. Перечень нововведений, которые начнут поддерживаться всеми современными браузерами после того, как HTML5 официально получит статус рекомендации консорциума W3C.
Программирование на стороне клиента
Тема веб-программирования на стороне клиента непосредственно связана с веб-дизайном, но вынесена отдельным пунктом с целью еще раз заострить внимание читателя на том, что веб-программирование делится на клиентское и серверное.
javascript. Самый популярный и поддерживаемый всеми современными интернет браузерами язык программирования. Здесь вы найдете описание того, как на HTML страницу добавить javascript код и как использовать объектно-ориентированных подход при написании на нем пользовательских сценариев. Здесь есть и примеры javascript приложений.
jQuery. Библиотека, написанная на javascript, в состав которой входит огромное количество полезных функций для работы с объектной моделью загруженной интернет страницы: от редактирования содержимого страницы до создания различных визуальных эффектов. Примеры использования jQuery здесь также присутствуют.
AJAX. Технология создания динамических интернет страниц на основе асинхронной загрузки гипертекста (результат асинхронного выполнения HTTP запросов) в отдельные области текущей страницы. Приведено описание того, как использовать технологии AJAX с примерами на javascript, в том числе с использованием библиотеки jQuery.
Программирование на стороне сервера
В этом разделе будут собраны описания различных технологий и языков серверного веб-программирования. Постараюсь привести примеры программной обработки параметров HTTP запросов, проверки корректности переданных данных, а также принципы работы с серверными базами данных и т.д.
PHP. Наиболее популярное средство веб-программирования на стороне сервера. PHP поддерживается большинством хостинг-провайдеров, и провайдер данного сайта не исключение. Здесь я постараюсь кратко изложить основные принципы программирования на PHP и привести примеры небольших приложений, написанных на нем.
ASP.NET. Очень крутая технология веб-программирования от компании Microsoft. К сожалению, пока я не могу размещать здесь примеры веб-приложений, создаваемых с помощью ASP.NET, поскольку мой хостинг-провайдер не поддерживает эту технологию. Хочу сказать, что окружение ASP.NET позволяет создавать веб-приложения так же легко, как и обычные приложения. Вы имеете дело с привычными пользовательскими элементами управления, которые размещаете на странице с помощью привычных GUI мастеров интегрированной среды разработки Microsoft Visual Studio. Также, привычным образом вы добавляете к ним обработчики событий. Преобразование элементов управления в код HTML и javascript, генерацию proxy-классов по описанию WSDL, установку соединения и упаковку удаленных вызовов к другим веб-сервисам в сообщения SOAP берет на себя инфраструктура ASP.NET. Доступ к сервисам сохранения и восстановления контекста исполнения приложения, асинхронное обновление страницы средствами AJAX и многое другое также находится в зоне ее ответственности.
К минусам ASP.NET можно отнести то обстоятельство, что она стирает для разработчика границы между обычным программированием и веб-программированием, и он может не отдавать себе отчет, как именно работает его приложения.
3. Модели представления системы и их описание
3.1 Модель бизнес актеров и их функциональных обязанностей (бизнес функций)
Пользователями приложения являются администратор и обычный пользователь web приложения. Обычных пользователей нужно разделить на две группы:
- зарегистрированный пользователь
- незарегистрированный пользователь
Диаграмма бизнес функций пользователя изображена на рисунке 3.1.1.
Рисунок 3.1.1. Диаграмма бизнес функций пользователя
Диаграмма бизнес функций администратора изображена на рисунке 3.1.2.
Рисунок 3.1.2. Диаграмма бизнес функций администратора
3.2 Модель вариантов использования
Модель вариантов использования незарегистрированного пользователя Рисунок 3.2.1.
Рисунок 3.2.1. Модель вариантов использования незарегистрированного пользователя
Модель вариантов использования зарегистрированного пользователя изображена на рисунке 3.2.2.
Рисунок 3.2.2. Модель вариантов использования зарегистрированного пользователя
4. Информационная модель системы и её описание
Инфологическая модель данных на уровне сущностей и связей рис. 4.1. Представляет собой пользователей, которые могут размещать объявления. Пользователь назначается роль, в соответствии с которой ему дается доступ к определенным возможностям и данным. Связь пользователя к объявлению 1:М. Связь пользователя к роли М:1. То есть один пользователь может подать много объявлений и одна роль может включать много пользователей.
Объявления классифицируются по типу и категории
Рисунок 4.1 Инфологическая модель данных на уровне сущностей и связей
Инфологическая модель данных на уровне сущностей, связей и атрибутов (рисунок 4.2). На данном этапе мы назначаем нашим сущностям атрибуты и заменяем связи многие ко многим на две связи 1:М с добавлением еще одной промежуточной таблицы.
Рисунок 4.2 Инфологическую модель данных на уровне сущностей, связей и атрибутов
Даталогическая модель данных на уровне полей (рис 4.3).
Рисунок 4.3 Даталогическая модель данных на уровне полей
Даталогическую модель данных на уровне полного описания параметров полей (рис. 4.4). В данной схеме проводиться полное описание атрибутов, с указанием типов и свойств атрибутов.
Рисунок 4.3 Даталогическую модель данных на уровне полного описания параметров полей
5. Описание алгоритмов реализующих бизнес-логику проектируемой системы
5.1 Алгоритм регистрации пользователя
Алгоритм регистрации нового пользователя представляет собой систему, которая принимает введенные пользователем входные данные, обрабатывает их и при несоответствии требованиям системы к данным оповещает пользователя. Если же данные, соответствуют требованиям системы, происходит регистрация пользователя в системе. Схема алгоритма изображена на рис. 5.1.1.
Рисунок 5.1.1 Схема алгоритма регистрации пользователя
5.2 Алгоритм входа в систему
Для входа в систему требуется ввести email и пароль. Если данные корректно введены, то система ищет в базе данных пользователя с введенным email и паролем. Если в системе нет такого пользователя, система сообщает об этом пользователя (Рисунок 5.2.1)
Рисунок 5.2.1 Схема алгоритма входа в систему
5.3 Алгоритм фильтрации данных
Алгоритм фильтрации данных представляет собой систему, которая при выборе определенного фильтра, считывает данные остальных фильтров и, учитывая эту информацию, фильтрует данные сразу же после выбора определенного фильтра (Рисунок 5.3.1).
Рисунок 5.3.1 Схема
алгоритма фильтрации данных
6. Руководство пользователя
6.1 Введение
6.1.1 Область применения
Применяется для размещения различного типа и характера частных и коммерческих объявления.
6.1.2 Краткое описание возможностей
Основными возможностями являются:
- размещение объявления
- поиск объявления
6.1.3 Уровень подготовки пользователя
Пользователи web приложения должны иметь навыки в работе с применением технических и программных средств уровня Windows XP и выше или их аналогов
6.1.4 Условия, при соблюдении которых обеспечивается применения web приложения в соответствии с назначением
Работа веб-приложения поддерживается в следующих операционных
системах:
- Windows XP;
- Windows Vista;
- Windows 7.
- Windows 8.
- Windows 10.
Работа веб-приложения поддерживается через веб-браузеры Internet
Explorer, Google Chrome, Mozilla FireFox, Opera, Apple Safari версий, официально поддерживаемых производителями.
6.2 ПОДГОТОВКА К РАБОТЕ
6.2.1 Регистрация
Для начала использования веб-приложения «Доска объявлений» запустите на вашем компьютере совместимый браузер (см. п. 6.1.4) и введите в адресной строке следующий адрес:
https://www.fasttrade.net
Если вы не авторизованы, вы должны пройти на страницу регистрации (см. рис. 6.2.1.1).
Рисунок 6.2.1.1 Страница регистрации нового пользователя
Все поля формы регистрации должны быть корректно заполнены. При некорректности введенных данных система сообщит вам об этом.
6.2.2 Вход в систему
После успешной регистрации, о которой приложение сообщит, выполните вход (см. рис. 6.2.1.2) в систему (кнопка «Войти» в правой части верхнего меню).
Рисунок 6.2.1.2 Страница входа в систему
Если email и пароль введены верно, и пользователь с таким данными существует, то выполниться вход в систему, иначе появиться сообщение об ошибке.
6.3 Описание операций
6.3.1 Фильтрация данных
Фильтрация данных осуществляется с помощью меню фильтров (см. рис. 6.3.1.1). При выборе определенного фильтра контент динамически обновляется при нажатии на выбранный фильтр. Фильтрация осуществляется с учетом всех существующих фильтров.
Рисунок 6.3.1.1 Страница фильтрации данных
7. Результаты тестирования разработанной системы и оценка выполнения задач.
7.1 Тестирование регистрации
- Отправка формы регистрации с незаполненными полями (см. рис. 7.1.1)
Рисунок 7.1.1 Сообщение системы при отправке пустой формы
- отправка формы с некорректными email, телефоном и повторите пароль (см. рис. 7.1.2)
Рисунок 7.1.2 Отправка формы с некорректными данными
- отправка формы с уже зарегистрированным email (см. рис 7.1.3)
Рисунок 7.1.3 Ошибка при регистрации существующего пользователя
7.2 Тестирование входа в систему
- Отправка пустой формы (см. рис. 7.2.1)
Рисунок 7.2.1 Ошибки при отправке пустой формы
- Отправка несуществующего email и пароля (см. рис. 7.2.2)
Рисунок 7.2.2 Ошибка при отправке несуществующих в системе данных
- Отправка данных с неверным паролем (см. рис. 7.2.3)
Рисунок 7.2.3 Ошибка при отправке формы с неверным паролем
7.3 Тестирование фильтрации данных
Фильтрация данных происходит каждый раз, при выборе одного из фильтров. Фильтрация всегда происходит с учетом данных всех фильтров. Будем по очереди выбирать один из фильтров и наблюдать за изменением выводимых данных.
- Фильтр по категории (см. рис. 7.3.1)
Рисунок 7.3.1 Фильтр по категории
- Фильтр по категории и типу (см. рис. 7.3.2)
Рисунок 7.3.2 Фильтр по категории и типу
- Фильтр по категории, типу и региону (см. рис. 7.3.3)
Рисунок 7.3.3 Фильтр по категории типу и региону
Заключение
При выполнении данного курсового проекта мне пришлось вспомнить знания, полученные при прохождении всех ранее курсов по различным предметам. Тем самым я обновил ранее полученную информацию и понял важность приобретенных знаний.
Мною были переосмыслены многие нюансы дальнейшей разработки темы курсового проекта. Найдено множество недочетов и несоответствий, которые в дальнейшем нужно исправить.
Так же я осознал сложность грамотного выполнения курсового проекта, который перейдет в дипломный проект. Оценил свои силы и знания.
На данный момент я уже представляю объем работ, предстоящих мне для развертывания данной темы до уровня дипломного проекта и более-менее представляю, в каком направлении работать и чему в большей степени уделять время, внимание и силы.
Список использованных источников
1. ASP.NET MVC 4 с примерами на C# 5.0 для профессионалов Адам Фримен
2. jQuery для профессионалов Адам Фримен
3. Интернет ресурсы www.metanit.com
4. Интернет ресурсы www.professorweb.ru
Приложение
Сервис для работы с объявлениями:
public class AdService:IAdService
{
IUnitOfWork DataBase;
public AdService(IUnitOfWork uow)
{
DataBase = uow;
}
public IEnumerable
{
var config = new MapperConfiguration(cfg =>
cfg.CreateMap
.ForMember("KindName", opt => opt.MapFrom(src => src.Kind.Name))
.ForMember("CategoryName", opt => opt.MapFrom(c => c.Category.Name))
);
var mapper = config.CreateMapper();
if (categoryId >= 0 && kindId == -1 && regionName=="Вся Беларусь")
{
var ads = mapper.Map
return ads;
}
if (categoryId == -1 && kindId >= 0 && regionName == "Вся Беларусь")
{
var ads = mapper.Map
return ads;
}
if (categoryId == -1 && kindId == -1 && regionName != "Вся Беларусь")
{
var ads = mapper.Map
return ads;
}
if (categoryId >= 0 && kindId >= 0 && regionName == "Вся Беларусь")
{
var ads = mapper.Map
return ads;
}
if (categoryId >= 0 && kindId == -1 && regionName != "Вся Беларусь")
{
var ads = mapper.Map
return ads;
}
if (categoryId == -1 && kindId >= 0 && regionName != "Вся Беларусь")
{
var ads = mapper.Map
return ads;
}
if (categoryId >=0 && kindId >= 0 && regionName != "Вся Беларусь")
{
var ads = mapper.Map
return ads;
}
else
{
var ads = mapper.Map
return ads;
}
}
public IEnumerable
{
var config = new MapperConfiguration(cfg =>
cfg.CreateMap
.ForMember("KindName", opt => opt.MapFrom(src => src.Kind.Name))
.ForMember("CategoryName", opt => opt.MapFrom(c => c.Category.Name))
);
var mapper = config.CreateMapper();
var ads = mapper.Map
return ads;
}
public void Dispose()
{
DataBase.Dispose();
}
}
Сервис для работы с пользователями:
public class UserService:IUserService
{
IUnitOfWork DataBase { get; set; }
public UserService(IUnitOfWork uow)
{
DataBase = uow;
}
public void AddUser(UserDTO userDTO)
{
Mapper.CreateMap
User user = Mapper.Map
DataBase.Users.Create(user);
DataBase.Save();
}
public IEnumerable
{
Mapper.CreateMap
var users = Mapper.Map
return users;
}
public UserDTO AuthenGetUser(string email, string password)
{
Mapper.Initialize(cfg => cfg.CreateMap
.ForMember("RoleName", opt=>opt.MapFrom(u=>u.Role.RoleName)));
var user = Mapper.Map
return user;
}
public UserDTO GetUserReg(string email)
{
var config = new MapperConfiguration(cfg =>
cfg.CreateMap
.ForMember("RoleName", opt => opt.MapFrom(u => u.Role.RoleName)));
var mapper = config.CreateMapper();
var user = mapper.Map
return user;
}
public UserDTO GetUserManag(int id)
{
var config = new MapperConfiguration(cfg =>
cfg.CreateMap
.ForMember("RoleName", opt => opt.MapFrom(u => u.Role.RoleName)));
var mapper = config.CreateMapper();
var user = mapper.Map
return user;
}
public void Dispose()
{
DataBase.Dispose();
}
}
Структура проекта:
Трехуровневая архитектура: DAL-уровень данных, BLL-уровень бизнес логики, WEB-уровень представления