Файл: Разработка сайта интернет-магазина фильмов «FilmStore».pdf
Добавлен: 23.04.2023
Просмотров: 155
Скачиваний: 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.
- Описание модулей серверной части программы и их взаимодействие
Теперь опишем серверную часть сайта и ее программных модулей. Схема взаимосвязи программных модулей отражает взаимосвязь программного и информационного обеспечения комплекса задач, и может быть представлен несколькими схемами, каждая из которых соответствует определенному режиму.
Схема взаимосвязь программных модулей представлена на рисунке 2.
Схема взаимосвязи программных модулей
Рисунок 2
Описание программных модулей
Управляющий модуль - активирует основные программные модули, содержит меню сайта "FilmStore". По сути это главная страница сайта, к которой подключены все остальные страницы. С этой главной страницы можно перейти на любую другую страницу сайта. Именно к главной странице первым делом подключается база данных и выводит весь контент на экран.
Модуль проверки данных регистрации - отвечает за правильность вводимой информации при регистрации, а именно проверяет длину вводимых данных (поле имя – не меньше двух символов и не больше пятнадцати; поле логин – не меньше четырех символов и не больше пятнадцати; поле пароль – так же не меньше четырех символов и не больше пятнадцати.
Модуль проверки данных авторизации - отвечает за правильность вводимого логина и пароля. После того, как пользователь введет свои данные и нажмет кнопку «Авторизоваться», будет отправлен запрос в базу на проверку наличия таких данных в базе и проверку правильности написания этих данных. Если пользователь совершит ошибку в поле логина или пароля, или же попробует войти без регистрации, то выведется окно с ошибкой:
После чего покупатель должен будет вернуться к форме авторизации и ввести свои данные правильно.
Модуль обработки информации - отвечает за обработку информации, которая вводится в формы регистрации и авторизации.
Модуль базы данных - отвечает за хранение основной информации на сайте. Иными словами это сама база данных сайта. Добавление, редактирование и удаление контента происходит именно здесь. При любом действии на сайте, будь то регистрация новых пользователей, либо вход уже зарегистрировшихся отправляется запрос именно в базу данных, откуда и черпается вся информация на сайте.
Дерево функций представляет собой иерархическую структуру действий, реализованных в информационной системе. Вершиной дерева функций является главная цель магазина, ветви дерева представляют собой функции (или работы), которые необходимо реализовать для достижения главной цели кампании и подчиненных ей целей нижнего уровня. Дерево функций изображено на рисунке 3.
Дерево функций
Рисунок 3
- Описание структуры базы данных и ее функций
База данных «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 в разделе Приложения.
5.1 Главная страница
Главная страница сайта — своеобразная визитная карточка интернет-ресурса, на которой должна быть изложена важная информация для клиента: сведения о компании, контактные данные, предложения и преимущества.
Таким образом, к основным целям главной страницы относятся: презентация компании, привлечение аудитории и представление возможных услуг и/или товаров.
Сайт-магазин, как правило, имеет более десятка страниц и сложную структуру. В нашем случае сайт менее глобальный, поэтому главная страница нашего ресурса будет иметь следующие разделы информации:
- блок с логотипом сайта и его слоганом (выполняет функцию приветствия покупателя и его завлечения)
- сами товары (с кратким описанием, ценой и кнопкой «Подробнее» ведущей к подробному описанию фильма с возможностью его покупки (по умолчанию отключена))
- верхнее навигационное меню (с основными разделами сайта)