Файл: Разработка сайта интернет-магазина фильмов «FilmStore».pdf

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

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

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

Добавлен: 23.04.2023

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

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

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

Введение

Итогом разработки данной курсовой работы должен стать сайт интернет-магазина фильмов.

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

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

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

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

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

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

В качестве web-приложения в данном проекте будет выступать интернет- магазин “FilmStore” ориентирующийся на продаже цифровых версии фильмов различных жанров.

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

Для реализации статической части сайта был выбран текстовый редактор Atom.

2.1 Atom

Atom (в прошлом Atomicity) — бесплатный текстовый редактор с открытым исходным кодом для Linux, macOS, Windows с поддержкой плагинов, написанных на Node.js, и встраиваемых под управлением Git. Большинство плагинов имеют статус свободного программного обеспечения, разрабатываются и поддерживаются сообществом.


Atom основан на Electron (ранее известный как Atom Shell) — фреймворке кросс-платформенной разработки с использованием Chromium и io.js. Редактор написан на CoffeeScript и LESS. Версия 1.0 была выпущена 25 июня 2015 г.

Поддержка языков

Поддерживаются следующие языки (со стандартными плагинами) в версии v1.5.1:

C/C++, C#, Clojure, CSS, CoffeeScript, Markdown (GitHub Flavored), Go, Git, HTML, JavaScript, Java, JSON, Julia, Less, Make, Mustache, Objective-C, PHP, Perl, Property List (Apple), Python, Ruby on Rails, Ruby, Sass, Shell script, Scala, SQL, TOML, XML, YAML (Все языки).

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

Полный состав данного платформы изображен на рисунке 1.

Рисунок 1

В качестве системы управления базы данных у меня выступает MySQL -5.7, так же для администрирования СУБД MySQL я выбрал приложение phpMyAdmin.

2.2 MySQL 

MySQL — свободная реляционная система управления базами данных. Разработку и поддержку MySQL осуществляет корпорация Oracle, получившая права на торговую марку вместе с поглощённой Sun Microsystems, которая ранее приобрела шведскую компанию MySQL AB. Продукт распространяется как под GNU General Public License, так и под собственной коммерческой лицензией. Помимо этого, разработчики создают функциональность по заказу лицензионных пользователей. Именно благодаря такому заказу почти в самых ранних версиях появился механизм репликации.

Входит в состав серверов WAMP, AppServ, LAMP и в портативные сборки серверов Денвер, XAMPP, VertrigoServ. Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы.

MySQL 5.7

Первая версия ветки MySQL 5.7.1 анонсирована 23 апреля 2013. Версия MySQL 5.7.8 адаптирована для Debian 8 и Ubuntu 15.04. Последний релиз — 5.7.24 от 22.10.2018.

2.3 phpMyAdmin

phpMyAdmin — веб-приложение с открытым кодом, написанное на языке PHP и представляющее собой веб-интерфейс для администрирования СУБД MySQL. PhpMyAdmin позволяет через браузер и не только осуществлять администрирование сервера MySQL, запускать команды SQL и просматривать содержимое таблиц и баз данных. Приложение пользуется большой популярностью у веб-разработчиков, так как позволяет управлять СУБД MySQL без непосредственного ввода SQL команд.


Приложение распространяется под лицензией GNU General Public License и поэтому многие другие разработчики интегрируют его в свои разработки, например XAMPP, Denwer, AppServ, Open Server.

2.4 PHP

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

В области веб-программирования, в частности серверной части, PHP — один из популярных сценарных языков (наряду с JSP, Perl и языками, используемыми в ASP.NET).

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

Основные из них:

- автоматическое извлечение POST- и GET-параметров, а также переменных окружения веб-сервера в предопределённые массивы;

- взаимодействие с большим количеством различных систем управления базами данных через дополнительные модули (MySQL, MySQLi, SQLite, PostgreSQL, Oracle (OCI8), Oracle, Microsoft SQL Server, Sybase, ODBC, mSQL, IBM DB2, Cloudscape и Apache Derby, Informix, Ovrimos SQL, Lotus Notes, DB++, DBM, dBase, DBX, FrontBase, FilePro, Ingres II, SESAM, Firebird / InterBase, Paradox File Access, MaxDB, Интерфейс PDO), Redis;

- автоматизированная отправка HTTP-заголовков;

- работа с HTTP-авторизацией;

- работа с cookies и сессиями;

- работа с локальными и удалёнными файлами, сокетами;

- обработка файлов, загружаемых на сервер;

- работа с XForms.

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

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

Схема взаимосвязь программных модулей представлена на рисунке 2.

Схема взаимосвязи программных модулей

Рисунок 2

Описание программных модулей

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

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


Модуль проверки данных авторизации - отвечает за правильность вводимого логина и пароля. После того, как пользователь введет свои данные и нажмет кнопку «Авторизоваться», будет отправлен запрос в базу на проверку наличия таких данных в базе и проверку правильности написания этих данных. Если пользователь совершит ошибку в поле логина или пароля, или же попробует войти без регистрации, то выведется окно с ошибкой:

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

Модуль обработки информации - отвечает за обработку информации, которая вводится в формы регистрации и авторизации.

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

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

Дерево функций

Рисунок 3

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

База данных «film_store» проекта состоит из двух таблиц: таблицы «films» и таблицы «users». База данных представлена на рисунке 4.

База данных «film_store»

Рисунок 4

Таблица «films» - основная таблица со всем контентом на сайте, в свою очередь состоит из следующих полей:

Поле «id» - представляет собой идентификатор объекта базы данных;

Поле «image» - хранит в себе путь к картинкам, которые лежат в директории «img» и выводятся на сайте;

Поле «title» - строка заголовка или иначе названия фильмов, представленных на сайте;

Поле «mini_desc» - мини описание каждого фильма, приводимого на главной странице сайта;

Поле «description» - полное описание фильма, которое показывается на странице single.php;


Поле «price» - поле, в котором отражена цена фильма.

Таблица «films» показана на рисунке 5, 5.1

Таблица «films»

Рисунок 5

Таблица «films»

Рисунок 5.1

Таблица «users» - показывает всех пользователей, которые зарегистрированы на сайте. Состоит из четырёх полей:

Поле «id» - идентификатор пользователя базы данных;

Поле «name» - хранит в себе имя, введенное пользователем при регистрации;

Поле «login» - хранит логин пользователя, введенный при регистрации;

Поле «password» - хранит пароль, введенный пользователем при регистрации.

Таблица «users» изображена на рисунке 6, 6.1.

Таблица «users»

Рисунок 6

Таблица «users»

Рисунок 6.1

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

В данной главе мы опишем следующие информационные разделы сайта:

- главную страницу сайта;

- раздел сайта «О нас»;

- раздел сайта «Связаться с нами»;

- раздел сайта «Корзина»;

- форму регистрации и авторизации на сайте;

- профиль покупателя;

- подробное описание товара;

- форму заказа товара;

Код всех страниц представлен в Приложении 1 в разделе Приложения.

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

Главная страница сайта — своеобразная визитная карточка интернет-ресурса, на которой должна быть изложена важная информация для клиента: сведения о компании, контактные данные, предложения и преимущества.

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

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

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