Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Разработка серверных приложений для WEB (Разработка сайтов, для подобных компаний, является распространенной задачей по показателям статистики сайтов Profi.ru и YouDo)

Содержание:

Введение

Частная коммерческая организация «Деливери» (далее Деливери) занимается доставкой бумажной корреспонденции и посылок непосредственно от отправителя до указанного адреса получателя на всей территории России. У компании имеется собственные склады и транспортные средства для осуществления доставки, однако работа с клиентами осуществляется исключительно через сайт компании или по телефону.

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

Для предоставления своих услуг и рекламы своей организации, компания Деливери решает открыть WEB – сайт. Разработка которого является целью этой курсовой работы в рамках углубленного изучения современных методов программирования приложений для среды WEB.

Для достижения цели необходимо решить следующие задачи:

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

1. Разработка сайтов, для подобных компаний, является распространенной задачей по показателям статистики сайтов Profi.ru и YouDo

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

Так как заказчику необходимо разработать сайт для представления их компании в сети Интернет и для создания заявок на работы, то такой тип сайта не нуждается в программном обеспечении для высоконагруженных систем. Для этого выбираются самые распространенные программные средства для решения подобных задач. Разработка ведется на WEB - сервере Apache2 установленном на операционной системе Debian 8. В качестве языка для обработки серверной части используется php версии 5. В качестве базы данных используется программной обеспечение Maria DB, как ответвление MySQL для операционных систем с ядром Linux. Для облегчения внесения изменений в Базу Данных на этапе разработки используется приложение для администрирования СУБД – phpmyadmin.

На сайте необходимо предоставить следующую информацию и функционал:

      1. Общие сведения о компании и контакты
      2. Информация о партнерах компании
      3. Список предоставляемых услуг
      4. Возможность заказа услуг

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

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

Необходимо строго соблюдать уникальность пользователей и не допускать повторных регистраций пользователей по электронной почте или никнейму.

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

Для реализации проекта работы были разделены на несколько частей:

      1. Подготовка
      2. Проектирование
      3. Разработка дизайна и верстка
      4. Программная настройка
      5. Наполнение контентом и тестирование

На этапе подготовки проводился сбор информации о компании и достигалось понимание необходимости разработки.

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

После формирования набросков сайт была выбрана цветовая гамма и изображения для сайта, после чего сайт был сверстан в общем виде, без учета динамических возможностей. Сайт был представлен в виде сверстанных страниц с помощью язык разметки (HTML) и набора каскадных стилей (CSS), классы и идентификаторы элементов были названы по методологии БЭМ от компании Яндекс.

На этапе программной настройки был использован физический сервер с операционной системой Debian 8. Для работы с WEB протоколами, с учетом требований к поставленной задачи, был выбран пакет набора программ LAMP, который включает в себя все необходимые компоненты для реализации проекта, а именно:

      1. Apache – WEB сервер
      2. MariaDB (MySQL)
      3. PHP

До внедрения сайта в эксплуатацию используется только протокол HTTP.

Конечная файловая иерархия сайта выглядит следующим образом:

Рисунок 1

Связь между файлами организована следующим образом, как показано на рисунке 2.

Рисунок 2

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

В данном проекте база данных используется для следующих целей:

      1. Хранение учетных данных пользователей
      2. Хранение информации о заказах

База данных называется delivery и представляет собой две таблицы. Одна таблица для учетных данных пользователей (users) и другая для заказов (orders).

Обе таблицы содержат целочисленные и текстовые поля. Целочисленные поля ограничены кол-вом символов до 11 знаков тип INT(11) или до 4 знаков тип INT(4), а текстовые поля имеют тип TINYTEXT, которое может хранить 2 в 8 степени минус 1 байт и имеет кодировку cp1251_bin для поддержки кириллического алфавита. Поля id содержат ключ AUTO_INCREMENT для автоматического отсчета уникальных записей.

Для авторизации на сайте используется следующий SQL запрос, интегрированный в код php:

SELECT * FROM users WHERE login=? || email=?

Где «?» определяет логин или электронную почту пользователя, которую необходимо выбрать из записей таблицы users. Эти переменные определяются php кодом далее. В случае нахождения нужной записи в переменную php записываются все поля, которая далее используюется как ассоциативный массив.

Для регистрации на сайте используется следующий SQL запрос, интегрированный в код php:

INSERT INTO users (login, email, pass, name, sex, role) VALUES (?, ?, ?, ?, ?, 'user')

Для формирования списка пользовательских заказов используется SQL запрос:

SELECT id, idOrders, senderName, recipientName, senderContact, recipientContact FROM orders WHERE id=$_SESSION[id]

Где «$_SESSION[id]» аутентифицирует пользователя сравнивая уникальное значение из cookies пользователя со строкой, по которой сервер далее может определить данные пользователя. Тем самым реализуется концепция сессий для авторизации пользователей.

Для просмотра детальной информации о заказе используется SQL запрос:

SELECT * FROM orders WHERE id=$_SESSION[id] and idOrders=$_GET[idorder]

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

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

В таблице «orders» поле «role», не используется в настоящий момент, но может быть задействовано в дальнейшем при добавлении на сайт пользователей с ролью администраторов сайта.

Рисунок 3

1.4. Описание структуры клиентской части

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

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

Рисунок 4

Страница партнеров компании внешне похожа на главную страницу, но содержит информацию о партнерах.

Рисунок 5

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

Следующий раздел «Контакты» предоставляет информацию о расположении офисов компании. Боковое меню также, как и в разделе «услуги» перемещает пользователя по заголовкам сайта.

Рисунок 6

Следующий раздел «Сделать заказ» различается в зависимости от статуса пользователя. Если пользователь не авторизирован, то он попадает на страницу, где можно произвести авторизацию. В верхнем поле можно вводить либо никнейм на который зарегистрирован пользователь, либо электронную почту. В нижнее поле вводится пароль. Красным цветом под полем пароля выделена ссылка, по которой можно попасть на страницу регистрации нового пользователя, также она продублирована на боковом меню.

Рисунок 7

Выше были описаны все страницы, которые доступны не авторизированном пользователю, следующие страницы доступны только после регистрации на сайте.

Если ввести верный логин и пароль в форме входа на шапке сайта или на специальной странице для этого (описанной выше), то пользователь попадает на страницу с его личным списком заказов. Эта страница называется «Ваши заявки». Также на шапке сайта форма для авторизации изменится на кнопку с выходом из аккаунта.

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

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

Рисунок 8

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

Рисунок 9

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

После подтверждения заявки пользователь будет снова перенаправлен на страницу с его заказами, которая была описана выше.

Рисунок 10

Заключение

В этой курсовой работе был рассмотрен процесс разработки сайта для компании Деливери и приведены конечные результаты с тестовыми данными.

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

Работа была выполнена в соответствии с технических заданием и соответствует цели курсовой работе. Соответственно, все задачи поставленные перед началом работы над курсовым проектом были выполнены и цель работы достигнута.

Список литературы

  1. Мейер, Б. Инструменты, алгоритмы и структуры данных / Б. Мейер. - 2-е изд., испр. - М. : Национальный Открытый Университет «ИНТУИТ», 2016.
  2. Савельева, Н.В. Язык программирования PHP / Н.В. Савельева. - 2-е изд., испр. - М. : Национальный Открытый Университет «ИНТУИТ», 2016
  3. Прохоренок, Н. HTML, JavaScript, PHP и MySQL. Джентльменский набор Web-мастера / Н. Прохоренок. - СПб.: БХВ - Петербург., 2010. - 900 с.
  4. Мазуркевич, А. PHP: настольная книга программиста / А. Мазуркевич. - М.: Новое знание, 2003. - 480 с.
  5. Богданов, М.Р. Перспективные языки веб-разработки / М.Р. Богданов. - 2-е изд., испр. - М. : Национальный Открытый Университет «ИНТУИТ», 2016
  6. http://biblioclub.ru/index.php?page=book&id=428953
  7. Никсон, Р. Создаем динамические web-сайты с помощью PHP, MySQL и JavaScript / Р. Никсон. - П.: Питер, 2011. - 496 с.
  8. PHP, SQL [Electronic resource] / блог. - Россия, 2010.: http://phpsql.ru/.
  9. Томсон, Л. Разработка Web-приложений на РНР и MySQL/ Л. Томсон. - М.: ДиаСофтЮП, 2003. - 672 с.
  10. PHPForum [Электронный ресурс] /форум.- Россия, 2003. - Режим доступа: http://phpforum.ru. - Дата доступа: 09.02.2012.
  11. Харрис, Э. PHP/MySQL для начинающих / Э. Харрис. - М.: Кудиц - образ, 2005.
  12. Парк, Д. PHP и MySQL. Библия программиста / Д. Парк, С. Суэринг. - Диалектика, 2010. - 912 с.
  13. Гущин А.Н. Базы данных: учебник. - М.: Директ-Медиа, 2014. - 266с