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

Разработка сайта компании (ООО Управление и Инвестиции)

Содержание:

Введение

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

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

Веб-страницы должны удовлетворять определенным критериям, а именно должны сопровождаться и принадлежать предприятию, использоваться для коммерческого взаимодействия предприятия со своими клиентами, к примеру распространение сведений о товарах и услугах предприятия, ведение электронной торговли и так далее, кроме этого веб-страницы должны иметь свой URL-адрес и при этом быть связанными между собой гиперссылками. Как было отмечено выше веб-сайт общества с ограниченной ответственностью (ООО) «Управление и Инвестиции» на котором клиенты смогут быстро ознакомиться с перечнем предоставляемых недвижимых объектов, их характеристиками, стоимостью, местом нахождения, фотографиям, написать вопрос менеджеру и тому подобное.

Веб-сайт — это оптимальная рекламная площадка, то есть средство проведения рекламных кампаний и акций в сети Интернет

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

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

Объектом исследования работы является предприятие ООО «Управление и Инвестиции», основным видом деятельности которого является сдача в аренду и продажа недвижимого имущества.

Предмет исследования – разработка веб-сайта для ООО «Управление и Инвестиции».

Актуальность темы данной курсовой работы обусловлена важностью наличия продающего сайта у каждой компании.

Целью курсовой работы является — разработка сайта компании ООО «Управление и Инвестиции».

Реализация поставленной цели достигается путем решения следующих задач:

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

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

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

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

Третья часть включает анализ, проектирование и непосредственное создание веб сайта.

Четвертая часть включает в себя описание разработанного сайта.

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

    1. Характеристика предприятия и его деятельности

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

Различают долгосрочные и краткосрочные цели. В основе такого разделения лежит временной период, связанный с продолжительностью производственного цикла. Долгосрочной целью, достижение которой предполагается к концу производственного цикла организации ООО «Управление и Инвестиции» является — выгодная сдача помещений, находящихся в собственности, а краткосрочным целям характерна гораздо большая, чем для долгосрочных, конкретизация и детализация в таких вопросах, как кто, что и когда должен выполнять, потому для рассматриваемой организации краткосрочной целью является — расширение штатных рабочих, более выгодное заключение договоров аренды с высокой рентабельностью, увеличение количества помещений, находящихся в собственности, преумножение чистой прибыли, получаемой за год, расширение организации на междугородний уровень.

ООО «Управление и Инвестиции» был основан в 2013 году. В период с 2013 года по 2017 год велась работа по подготовке помещений к сдаче в аренду, производилось документальное оформление всех систем и коммуникаций, подводилось электричество и произведен ремонт, заключались договора с «Мосэнерго» и «Мосводоканалом», а также с управляющими компаниями, обслуживающими данную территорию. Параллельно с этим велась работа по привлечению клиентов, выставлена реклама, сделаны рекламные растяжки.

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

Также компания ООО «Управление и Инвестиции» занимается выкупом недвижимого имущества на выгодных для продавцов условиях, а далее оформляет перепродажу или подготавливает помещение к сдаче в аренду.

Результаты, которых хочет добиться предприятие — это стабильное получение дохода от сданных объектов, улучшение качества обслуживания, индексирование арендной платы в связи с экономической ситуацией в стране. На полученную прибыль предприятие хочет потратить на закупку новых помещений, с большим функционалом, а также расширение количества видов деятельности для сдачи в аренду, таких как: ресторан, детский сад, дошкольные образование (предприятие с особыми условиями, предъявляемыми к арендуемому помещению). Например, для ресторана важно отсутствие школьных и дошкольных учреждений, а также звукоизоляция, чтобы не мешать жильцам, так как ресторан часто сопровождается музыкой. Для дошкольных учреждений, детский сад или детский центр, нужен особый ремонт, особое расположение кухни, детские туалеты, наличие двух выходов.

    1. Организационная структура предприятия

Организационно правовая форма предприятия — общество с ограниченной ответственностью. Общество с ограниченной ответственностью (ООО) — юридическое лицо, учрежденное одним или несколькими лицами, уставный капитал которого разделен на определенные доли (размер которых устанавливается учредительными документами). Участники ООО несут риск убытков только в пределах стоимости внесенных ими вкладов. Организационная структура управления предприятием представлена на рисунке 1.

Снимок

Рисунок 1. Организационная структура управления предприятием.

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

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

Штатное расписание — это нормативный документ предприятия, оформляющий структуру, штатный состав и численность организации с указанием размера заработной платы в зависимости от занимаемой должности. [1]

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

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

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

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

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

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

    1. Анализ программных решений клиентские части

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

Текстовый редактор — самостоятельная компьютерная программа или компонент программного комплекса (например, редактор исходного кода интегрированной среды разработки или окно ввода в браузере), предназначенная для создания и изменения текстовых данных в общем и текстовых файлов, в частности. [4]

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

Редактор исходного кода — текстовый редактор для создания и редактирования исходного кода программ. Он может быть отдельным приложением или встроен в интегрированную среду разработки.

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

Многие текстовые редакторы являются редакторами исходного кода, то есть они ориентированы на работу с текстами программ.

Были рассмотрены следующие текстовые редакторы:

  • Atom;
  • Notepad++;
  • Sublime Text;
  • Code Writer;
  • Bluefish и т.д.;

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

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

Рабочее окно программы Atom продемонстрировано на рисунке 2.

Рисунок 2. Рабочее окно программы Atom.

Как видно из рисунка 1, программа Atom имеет минималистичный и современный интерфейс. Это обусловлено не награмажденностью кнопок навигации. Дизайн Atom очень интуитивный и продуманный, нет ничего лишнего, и все элементы грамотно расположены. Имеется возможность работать с несколькими файлами одновременно, которые будут расположены в разных вкладках. Также имеется возможность зонирования окон по периметру программы, распределение на панели, что дает удобный доступ к разным файлам, не переключаясь между ними. Это удобно в том случае, когда работа ведется над одним файлом, но есть разные файлы css и javascript, прикрепленных к одному проекту.

Далее будут расписаны достоинства и недостатки текстового редактора Atom.

Достоинства:

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

Недостатки:

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

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

Notepad++ — свободный текстовый редактор с открытым исходным кодом для Windows с подсветкой синтаксиса большого количества языков программирования и разметки, а также языков описания аппаратуры VHDL и Verilog. Поддерживает открытие более 100 форматов. Базируется на компоненте Scintilla, написан на C++ с использованием STL, а также Windows API и распространяется под лицензией GNU General Public License. Базовая функциональность программы может быть расширена как за счёт плагинов, так и сторонних модулей, таких как компиляторы и препроцессоры.

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

Notepad++ может не только работать с различными кодировками текста, но и преобразовывать их из одной в другую прямо в процессе работы. Программа способна конвертировать текст в следующие кодировки: ANSI, обычный UTF, UTF без BOM, UCS-2 Big Endian, UCS-2 Little Endian.

Возможности программного обеспечения заявлены на официальном сайте Notepad++: [10]

  • подсветка синтаксиса;
  • сворачивание кода;
  • авто дополнение и автоматическое закрытие скобок и тэгов (если активировано);
  • закладки;
  • регулярные выражения для поиска и замены;
  • запись и воспроизведение макросов;
  • сравнение файлов;
  • менеджер проектов;
  • карта документа;
  • переопределение любых горячих клавиш;
  • резервное копирование сохраняемых файлов (включается в настройках);
  • трансформация текста при помощи подключённого плагина TextFX;
  • поддержка и конвертирование кодировок ANSI, UTF-8 и UCS-2;
  • блоковое выделение текста, одновременное выделение нескольких разных мест (с Ctrl);
  • многострочное редактирование (с использованием Alt).

Рабочее окно программы Notepad++ показано на рисунке 3.

Рисунок 3. Рабочее окно программы Notepad++.

Данная программа является одной из самых популярных в области веб разработок. Были рассмотрены достоинства и недостатки программы Notepad++.

Достоинства:

  • поддержка интерфейса на 76 языках, включая русский;
  • поддерживает работу на двух платформах: Windows и ReactOS;
  • очень большой функционал, в сравнении с аналогами;
  • поддержка плагинов;
  • использование технологии WYSIWYG.

Недоставки:

  • запускается медленнее, чем менее продвинутые программы;
  • имеет обыденный интерфейс;
  • Notepad++ является текстовым редактором, а не IDE, что в свою очередь требует дополнительной установки плагинов;
  • при установке неофициальных плагинов, то с ними могут быть баги в дальнейшей работе.

Как видно из вышесказанного, текстовый редактор Notepad++ имеет расширенный функционал, что является существенным преимуществом перед аналогичными программами. Это заслуженно делает данное приложение одним из самых популярных утилит для редактирования текста, html разметки и программного кода.

Sublime Text — проприетарный текстовый редактор. Поддерживает плагины на языке программирования Python. Разработчик позволяет бесплатно и без ограничений ознакомиться с продуктом, однако программа уведомляет о необходимости приобретения лицензии.

Некоторые возможности: [11]

  • быстрая навигация (Goto Anything)
  • командная палитра (Command Palette)
  • API плагинов на Python
  • одновременное редактирование (Split Editing)
  • высокая степень настраиваемости (Customize Anything)

Для демонстрации интерфейса программы Sublime Text предоставлен рисунок 4.

Рисунок 4. Рабочее окно программы Sublime Text.

Достоинства:

  • физическая «легкость» и техническая «мощность»: позволяет быстро писать код, сохраняя в качестве заготовок часто используемые конструкции.
  • подсветка синтаксиса и высокая контрастность: основные текстовые элементы выделяются разными цветами.
  • быстрый запуск и автоматическое сохранение: никаких проволочек и паники при внезапном отключении компьютера.
  • высокая организационная схема: существуют различные сплит-экраны для тестовой разработки (Python — на одном, текстовые скрипты — на другом) или front-end’а (HTML и CSS/Javascript).
  • поддержка большого количества языков программирования: C, C++, C#, CSS, D, Dylan, Erlang, HTML, Groovy, Haskell, Java, JavaScript, LaTeX, Lisp, Lua, Markdown, MATLAB, OCaml, Perl, PHP, Python, R, Ruby, SQL, TCL и XML.

Недостатки:

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

Code Writer — интегрированная среда разработки программного обеспечения для многих языков программирования, в частности Java, JavaScript, Python, разработанная компанией Actipro Software LLC. Особенностью данного программного обеспечения является то, что его надо скачивать не с сети Интернет, а с компонента операционной системы Windows — Microsoft Store. Данное приложение было разработано специально для Windows 10.

Microsoft Store — предназначен для покупки и загрузки Metro/UWP-приложений, игр, фильмов, темы рабочего стола. Microsoft Store — единственный способ покупки и загрузки универсальных приложений, а также приложений для рабочего стола в Windows.

Рабочее окно программы Code Writer продемонстрировано на рисунке 5.

Рисунок 5. Рабочее окно программы Code Writer.

Для дальнейшего анализа технических средств разработки программного продукта, была проанализирована программа Code Writer и выявлены ее достоинства и недостатки.

Достоинства:

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

Недостатки:

  • проверка не является интеллектуальной, что часто влечет за собой ошибки при подсветке кода;
  • не корректная подсветка синтаксиса.

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

Основные свойства Bluefish: [12]

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

Рабочее окно программного продукта Bluefish показано на рисунке 6.

Рисунок 6. Рабочее окно программы Bluefish.

В анализе программы Bluefish были выделены достоинства и недостатки ее работы.

Достоинства:

  • предоставлен перечень популярных тегов, присутствуют блоки-заготовки — оптимально при написании кода новичком;
  • в панели присутствуют вспомогательные инструменты для создания программного продукта.

Недоставки:

  • устаревший интерфейс;
  • скорость запуска программы.

Был сделан вывод, что программа Bluefish подойдет для начинающих веб разработчиков, но не является идеальной для дальнейшей работы.

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

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

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

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

Хостинг — услуга по предоставлению ресурсов для размещения информации на сервере, постоянно имеющем доступ к сети Интернет. Обычно услуга хостинга входит в пакет по обслуживанию сайта и подразумевает как минимум услугу размещения файлов сайта на сервере, на котором запущено ПО, необходимое для обработки запросов к этим файлам (веб-сервер). Как правило, в обслуживание уже входит предоставление места для почтовой корреспонденции, баз данных, DNS, файлового хранилища на специально выделенном файл-сервере и т. п., а также поддержка функционирования соответствующих сервисов.

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

Чтобы не устанавливать эти компоненты по отдельности (например, веб-сервер Apache, базы данных MySQL, языки программирования PHP, Perl) – обычно используют готовый набор программ. Настроенная связка этих программ и есть локальный сервер.

Под операционную систему Windows наиболее популярны следующие локальные сервера:

  • Denwer;
  • OpenServer;
  • XAMPP;
  • MAMP.

Denwer — набор дистрибутивов и программная оболочка, предназначенные для создания и отладки сайтов на локальном ПК под управлением ОС Windows. Denwer также называют джентльменский набор Web-разработчика.

В базовый пакет Denwer входят: [13]

  • веб-сервер Apache с поддержкой SSI, SSL, mod_rewrite, mod_php;
  • интерпретатор PHP с поддержкой GD, MySQL, SQLite;
  • СУБД MySQL с поддержкой транзакций (mysqld-max);
  • система управления виртуальными хостами, основанная на шаблонах;
  • система управления запуском и завершением;
  • панель phpMyAdmin для администрирования системой управления базами данных;
  • ядро интерпретатора Perl без стандартных библиотек (поставляются отдельно);
  • эмулятор sendmail и сервера SMTP с поддержкой работы совместно с PHP, Perl, Parser и др;
  • установщик.

Последнее обновление проекта Денвер прошло в 2013 году, когда было объявлено о скором выходе Денвер-4.

На смену удачному проекту в 2014 пришёл Open Server Максима Архипова с более удобным графическим интерфейсом настройки и современными версиями PHP и сопутствующих моделей. В настоящее время Open Server является заменой устаревающего Денвера.

Open Server — это портативный локальный WAMP/WNMP сервер, имеющий многофункциональную управляющую программу и большой выбор подключаемых компонентов. Представленный пакет программ не является очередной любительской сборкой, собранной «на коленке», это первый полноценный профессиональный инструмент, созданный специально для веб-разработчиков с учётом их рекомендаций и пожеланий.

Особенности Open Server: [14]

  • подробный просмотр логов всех компонентов в реальном времени;
  • выбор системы управления базами данных, HTTP и PHP модулей в любом сочетании;
  • поддержка SSL и кириллических доменов из коробки;
  • поддержка алиасов или по-другому доменных указателей, а также удобная форма их настройки;
  • создание локального поддомена без потери видимости основного домена в сети интернет;
  • доступ к доменам и быстрый доступ к шаблонам конфигурации модулей;
  • мультиязычный интерфейс (Русский, Украинский, Белорусский, Английский).

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

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

Полный пакет содержит: [15]

  • Web-сервер Apache с поддержкой SSL;
  • Система управления базами данных MySQL;
  • PHP;
  • Perl;
  • FTP-сервер FileZilla;
  • POP3/SMTP сервер;
  • утилиту phpMyAdmin.

Для установки XAMPP необходимо скачать всего один файл формата zip, tar или exe, а компоненты программы не требуют настройки. Программа регулярно обновляется, для включения в состав новейших версий Apache/MySQL/PHP и Perl. Также XAMPP идет с множеством других модулей, включая OpenSSL и phpMyAdmin. Пользовательский интерфейс программы настолько прост, что ее называют «сборкой для ленивых» («lazy man’s WAMP/LAMP installation»). Установка XAMPP занимает меньше времени, чем установка каждого компонента в отдельности.

MAMP — это стек решений, состоящий из бесплатного программного обеспечения с открытым исходным кодом, работающего с проприетарным коммерческим программным обеспечением, для запуска динамических веб-сайтов на компьютерах под управлением MacOS или Windows. Его можно использовать для разработки веб-сайтов, использующих популярные современные технологии, на автономном настольном компьютере или ноутбуке без отдельного веб-сервера.

MAMP обычно используется с популярными программами CMS, такими как WordPress и Drupal, для настройки локальной среды разработки. MAMP Pro — это коммерческое расширение базового пакета MAMP, которое добавляет функции, помогающие управлять разработкой веб-сайтов на основе WordPress, обеспечивая одновременную установку нескольких веб-сайтов на одном компьютере разработчика, установку других пакетов CMS, таких как Joomla и MediaWiki. и другие функции. [16]

Название MAMP является аббревиатурой, представляющей оригинальные компоненты системы:

  • операционной системы mac;
  • веб-сервера Apache;
  • система управления базами данных MySQL;
  • языками программирования PHP, Perl или Python, используемые для веб-разработки.

Название происходит от LAMP, подобного стека всего программного обеспечения с открытым исходным кодом, широко используемого для веб-сайтов, но заменяющего проприетарные macOS для Linux с открытым исходным кодом. Однако MAMP не ограничивается этим выбором компонентов. Также Nginx можно использовать вместо Apache. Разработчики MAMP также перенесли систему на Windows.

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

    1. Выбор комплекса задач автоматизации и характеристика существующих бизнес процессов

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

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

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

Выходные информационные потоки — это сообщения, выходящие за пределы одной логистической системы либо одной из ее подсистем.

Для демонстрации контекстной диаграммы, в программе Ramus Educational было продемонстрировано диаграмма «веб сайта фирмы ООО «Управление и Инвестиции», где есть такие элементы как: входная информация, управляющая информация, механизм и выходная информация.

Контекстная диаграмма по методологии Structured Analysis and Design Technique (SADT или IDEF0) позволяет провести анализ объекта управления и решаемой задачи. Диаграмма предназначена для описания бизнес-процессов, т.е. устойчивой, целенаправленной совокупности взаимосвязанных видов деятельности (последовательности работ), которая по определенной технологии преобразует входы в выходы, представляющие ценность для потребителя.

Методология SADT разработана Дугласом Россом. Методология SADT представляет собой совокупность методов, правил и процедур, предназначенных для построения структурно-функциональной модели объекта какой-либо предметной области.

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

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

Функциональная модель SADT отображает функциональную структуру объекта, т.е. производимые им действия и связи между этими действиями. Основные элементы этой методологии основываются на следующих концепциях:

  • графическое представление блочного моделирования;
  • строгость и точность.

Диаграмма состоит из:

  • прямоугольников (функции системы). Каждый блок имеет номер. Доминирование происходит по времени или по управленческой функции;
  • дуг (стрелки) - изображают взаимосвязь между объектами.

Стандартная SADT-диаграмма содержит:

  • слева – вход;
  • справа – выход;
  • снизу – механизм;
  • сверху – управление.

В методологии SADT требуется только пять типов взаимосвязей между блоками для описания их отношений:

  • управление;
  • вход;
  • обратная связь по управлению;
  • обратная связь по входу;
  • выход – механизм. Контекстная диаграмма представлена на рисунке 7.

01_A-01

Рисунок 7. Контекстная диаграмма веб сайта фирмы ООО «Управление и Инвестиции».

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

  • каталог помещений;
  • информация о пользователе;
  • заявка на предпочитаемое помещение.

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

  • качественная фотография;
  • наименование бизнес центра или жилищного комплекса;
  • способ предоставления услуги;
  • адрес местонахождения помещения;
  • наименование ближайшего метро;
  • длительность передвижения от ближайшего метро;
  • кнопка «В избранное»;
  • цена помещения.

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

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

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

В управлении над веб сайтом необходимы следующие элементы:

  • Федеральный закон «О персональных данных»;
  • Закон «О защите прав потребителей».

Настоящий федеральный закон «О персональных данных» регулирующий деятельность по обработке и использованию персональных данных, вводимых пользователями. В соответствии с законом, в России существенно возрастают требования ко всем частным и государственным компаниям и организациям, а также физическим лицам, которые хранят, собирают, передают или обрабатывают персональные данные, в том числе фамилию, имя, отчество. Такие компании, организации и физические лица относятся к операторам персональных данных. [2]

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

Настоящий закон «О защите прав потребителей» регулирует отношения, возникающие между потребителями и изготовителями, исполнителями, импортерами, продавцами, владельцами агрегаторов информации о товарах (услугах) при продаже товаров (выполнении работ, оказании услуг), устанавливает права потребителей на приобретение товаров (работ, услуг) надлежащего качества и безопасных для жизни, здоровья, имущества потребителей и окружающей среды, получение информации о товарах (работах, услугах) и об их изготовителях (исполнителях, продавцах), о владельцах агрегаторов информации о товарах (услугах), просвещение, государственную и общественную защиту их интересов, а также определяет механизм реализации этих прав. [3]

Из данного закона можно сделать вывод, что потребитель имеет следующие права:

  • право на информацию;
  • право на безопасность;
  • право на выбор;
  • право быть услышанным;
  • право на возмещение ущерба;
  • право на потребительское образование.

В разделе механизмов движения данных на контекстной диаграмме присутствуют такие элемент как:

  • вычислительная техника;
  • программное обеспечение;
  • менеджер;
  • пользователь.

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

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

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

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

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

Процесс моделирования включает:

  • сбор информации об исследуемой области;
  • представление полученной информации в виде модели;
  • анализ объектов, входов в систему;
  • анализ функций систем;
  • построение диаграммы;
  • уточнение модели по средствам итеративного рецензирования.

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

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

02_A0 (1)1

Рисунок 8. Контекстная диаграмма веб сайта фирмы ООО «Управление и Инвестиции».

Для оформления сделки необходимо чтобы выполнились некие процессы в веб сайте, такие как:

  • ознакомление пользователя с каталогом;
  • ввод данных пользователем в окно формирования заявки;
  • отправка формы заявки;
  • обработка заявки менеджером.

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

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

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

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

    1. Структура серверной части приложения

Веб-браузеры взаимодействуют с веб-серверами при помощи гипертекстового транспортного протокола Hyper Text Transfer Protocol (HTTP). При нажатии ссылки на веб-странице или заполнении формы, отправляется HTTP запрос из браузера на целевой сервер. Демонстрация работы базовой структуры клиент-сервер HTTP запроса на рисунке 9.

КлиентСервер

Рисунок 9. Структура клиент-сервер.

HTTP — широко распространённый протокол передачи данных, изначально предназначенный для передачи гипертекстовых документов, то есть документов, которые могут содержать ссылки, позволяющие организовать переход к другим документам. [7]

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

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

Веб-серверы ожидают сообщений с клиентскими запросами, обрабатывают их и отвечают веб-браузеру при помощи ответного HTTP сообщения. Серверная часть разрабатываемого веб-приложения подразумевает динамическую генерацию контента в ответ на запрос пользователя. При таком подходе HTML страницы обычно создаются вставлением данных из базы данных в элементы HTML шаблона (это намного более эффективный путь хранения большого количества контента, чем использование статических страниц). Запросы динамических данных отправляются в код серверной части. Сервер интерпретирует запрос, читает необходимую информацию из базы данных, комбинирует извлеченные данные с шаблонами HTML и возвращает ответ, содержащий сгенерированный HTML. Большая часть кода для поддержки такого приложения должна запускаться на сервере. Создание этого кода известно, как «программирование серверной части».

В основе разрабатываемого веб-сайта лежит архитектура «клиент-сервер», в которой сетевая нагрузка распределена между поставщиками услуг, то есть сервером и заказчиками услуг, то есть клиентами. В качестве среды взаимодействия клиента с сервером используется Интернет.

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

C:\Users\Мария\AppData\Local\Microsoft\Windows\INetCache\Content.Word\Документ1.jpg

Рисунок 10. Структура серверной части приложения

    1. Структура клиентской части приложения

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

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

В тезисах структуру сайта можно охарактеризовать так:

  • где я нахожусь сейчас (страница входа);
  • куда я могу попасть (переход);
  • взаимосвязь между категориями.

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

Поисковые системы анализируют структуру сайта по-своему, они берут во внимание структуру URL сайта. В общем структура сайта и структура URL это одно и тоже.

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

Для демонстрации структуры клиентской части приложения, показан рисунок 11, в котором показана структура авторизации, которую видит пользователь.

Рисунок 11. Структуры клиентской части приложения

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

  • голова, шапка, хедер все это названия верхней части сайта, блок в котором располагается эмблема, главное горизонтальное меню плюс добавочные элементы присущие данному сайту или его тематике, такое как: банеры, реклама, цветовая палитра, большое изображение;
  • левый и правый сайдбар, может быть только один или оба, а может и вовсе не быть бокового меню, что редко встречается на практике. Главное предназначение этих блоков дать дополнительную информацию, направить посетителя вглубь сайта, заинтересовать слоганами и видео. Вкратце задержать посетителя как можно дольше на сайте;
  • центральный блок, самый главный, это та информация или сервис, ради которого посетитель пришел на ваш сайт. Именно эта часть в первую очередь интересует пользователя. Контент должен быть легко читаем и заметен в первом экране, ну максимум во втором. Не нужно заставлять посетителя пролистывать все ниже и ниже в поисках того, что ему нужно сейчас же. В наше время люди разучились ждать, поэтому с легкостью закроют ваш сайт и пойдут на другой;
  • футер, подвал сайта, блок предназначен в первую очередь для размещения контактной информации, такое как: название компании, телефона, адрес. Так же активно используют подвал для добавления навигационного меню и других полезных ссылок.
    1. Разработка дерева функций

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

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

Дерево функций – функциональное отражение реализации целей автоматизированной системы.

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

Дерево функций веб-сайта ООО «Управление и Инвестиции» предоставлена на рисунке 12.

C:\Users\Мария\AppData\Local\Microsoft\Windows\INetCache\Content.Word\дерево функций.jpg

Рисунок 12. Дерево функций.

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

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

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

Исходными данными для формирования дерева функций являются основные (функции администратора) и дополнительные (функции пользователя) функции системы.

Дерево функций наглядно демонстрирует разделение функций системы на администраторские и пользовательские.

    1. Вызов программных модулей

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

Дерево вызова программных модулей предоставлен на рисунке 13.

C:\Users\Мария\AppData\Local\Microsoft\Windows\INetCache\Content.Word\вызов программных модулей 2.jpg

Рисунок 13. Дерево вызова программных модулей

Данное дерево отражает структурную схему пакета, содержащую программные модули различных классов.

Программирование без-сайта подразумевает разработку и доработку модулей и программ, которые не предусмотрены стандартной версией Content management system. Обеспечивая разработку дополнительных программируемых уникальных элементов своего веб-сайта, создается уникальное преимущество своего веб-сайта, позволяющее повысить его конкурентоспособность в интернет пространстве.

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

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

Таблица с описанием программных модулей предоставлена в таблице 1.

Таблица 1.

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

Раздел сайта

Наименование файла

Тип страницы

Описание

Главная

/index.php

Страница с динамической информацией

Ознакомление с основной информацией фирмы

Компания

/company.html

Статическая HTML

страница

Описание компании

Контакты

/contact.html

Статическая HTML

страница

Контактная информация для связи

Выкуп объектов

/buyout.html

Статическая HTML

страница

Перечень достоинств выкупа компанией

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

Раздел сайта

Наименование файла

Тип страницы

Описание

Сотрудники

/employees.php

Страница с динамической информацией

Список сотрудников компании

Вопрос ответ

/questionAnswer.php

Страница с динамической информацией

Ответы на вопросы и форма для новых вопросов

Авторизация

/foremployees. php

Страница с динамической информацией

Предупреждение для пользователей, что авторизация только для сотрудников

Поиск

/search.php

Страница с динамической информацией

Ссылка присутствует на всех страницах, доступных для простого пользователя

Авторизация

/vhod.php

Страница с динамической информацией

Авторизация пользователя

Не верный пароль

/NoPas.php

Страница с динамической информацией

Введённый пользователем пароль не верен

Меню администратора

/menuadmin.php

Страница с динамической информацией

При авторизации администратора появляется меню администратора

Регистрация новых пользователей

/AdminNewEmp.php

Страница с динамической информацией

Ввести данные и отправить их в базу данных, для регистрации нового пользователя

Удаление старых пользователей

/AdminDeleteEmp.php

Страница с динамической информацией

Выбрать из списка не актуальную учетную запись и удалить ее

Меню менеджера

/ menumanager.php

Страница с динамической информацией

При авторизации менеджера появляется меню менеджера

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

Раздел сайта

Наименование файла

Тип страницы

Описание

Создать новое объявление

/NewAd.php

Страница с динамической информацией

Ввести данные и отправить их в базу данных, для создания нового объявления

Удалить старое объявление

/ DeleteAd.php

Страница с динамической информацией

Выбрать из списка не актуальное объявление и удалить его

Вопросы от пользователей

/questionManager.php

Страница с динамической информацией

Выбрать вопрос и заполнить форму для ответа

Заявки на помещение

/requesr.php

Страница с динамической информацией

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

Написать сотруднику

/mail.php

Страница с динамической информацией

При выборе сотрудника ему на почту можно написать личное сообщение

Страница объекта

/position.php

Страница с динамической информацией

Полная информация об объекте

Запись на просмотр

/prosmotr.php

Страница с динамической информацией

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

Таким образом можно сделать вывод, что сайт состоит из двух частей:

  • публичной;
  • административной.

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

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

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

Термин относится к контент-менеджер вида профессиональной деятельности - редактор сайта.

В случае создания разрабатываемого сайта, будет создана собственная система управления контентом на сайте.

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

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

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

  • главная страница, посвященная ознакомлению с компанией;
  • контактная информация;
  • каталог компании;
  • обратная связь в виде заявок;
  • информация о сотрудниках.

Административная часть включает:

  • добавление новых пользователей и их удаление;
  • добавление новых объектов и их удаление;
  • обработка заказов.

Взяв за основу вышесказанное была разработана модель карты сайта, она изображена на рисунке 14.

Рисунок 14. Карта сайта

    1. Описание программных решений

В написании программного кода для программного продукта был использован язык программирования Personal Home Page (PHP).

PHP – скриптовый язык общего назначения, интенсивно применяемый для разработки веб-приложений. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков, применяющихся для создания динамических веб-сайтов. [5]

PHP – это серверный язык программирования, который исполняется на стороне сервера, в то время такой язык программирования, как JavaScript исполняется в браузере на стороне пользователя.

Основное предназначение языка программирования PHP заключается в разработке:

  • статичных сайтов;
  • динамических сайтов;
  • веб-приложений.

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

Клиентским компьютерам, осуществляющим доступ к PHP-скриптам, понадобится только браузер.

Существует несколько стилей программирования на PHP. Для реализации поставленной цели данной работы был выбран объектно-ориентированный стиль программирования (ООП). Также существует процедурный стиль.

Объект – это набор специальных переменных – свойств и специальных функций – методов. То, что в процедурном программировании называлось переменной — в ООП называется свойство. То, что в процедурном программировании называлось функцией — в ООП называется методом класса. Созданные на основе класса объекты называются экземплярами класса или просто объекты.

Первое, что нам следует сделать для того, чтобы получить данные из таблицы базы данных – установить соединение с базой данных. Это показано в приложении 1. Для этого создаем новый объект с наименованием $mysqli и присваиваем ему новые значение в виде new mysqli и в скобках указываем наши данные, такие как:

  • наименование хостинга – "localhost";
  • логин для входа – "root";
  • пароль, если такой имееется – "";
  • наименование база данных – "upravlenie".

Далее идет проверка соединения условным оператором if, у условиях которого: $mysqli->connect_error. При условии выполнения условия, то выведется ошибка соединения, если все подключено, тогда выполняются следующие команды.

После чего можно вытаскивать значения из базы данных с помощью цикла foreach, в котором происходит объектно-ориентированным стилем подключение к базе данных – $mysqli->query,а в скобках записывается SQL, например: SELECT * FROM question, что означает берем все столбцы из таблицы question. Это продемонстрировано в приложении 2. После чего записываем последовательно значения строк в переменную $row. Внутри цикла можно выводить переменную $row с ее значениями столбца, к примеру: echo $row['QuestionUser'].

Также важно записать данные вводимые со страницы пользователем в базу данных. Этот процесс показан в 1 приложении. Для этого необходимо создать новую пременную, к примеру $result, присвоить ей подключение к базе данных: $mysqli->query и в скобках хаписать SQL запрос, например: "INSERT INTO employees (NameEmployees, PostEmployees, PhoneEmployees, EmailEmployees, Login, Password, PasswordHash, Status) VALUES ('$fioEmp' , '$PostEmpl' , '$PhoneEmpl' , '$EmailEmpl' , '$login','$password' , '$passwordHash' , '$statusEmp')". В данном примере происходит следующее: записать в таблицу employees в значения в столбцы базы данных, наименования которых, перечисляются в первых скобочках и записать в них значения, взятые из переменных перечисленных во-вторых скобочках.

Для проверки результата работы записи информации в базу данных – существует проверка, происходит она следующим образом, в условиях условного оператора if записывается переменная, в которой происходила записть данных и сравнивается с бинарным значением true. В случае, если значение правдивое, то есть равное true, то пользователю выводится надпись: "Информация занесена в базу данных", в ином случае "Информация не занесена в базу данных".

Обязательным элементом работы с базой данных является закрытие соединения. Если не его не закрыть, то страница сайта будет сильнее тормозить, что не желательно, потому что любая работа с данными из базы данных уже пожирает трафик и время клиента. Время клиента является важным атрибутом в работе с ним. Поэтому используется простейшая функция mysqli_close, в параметроах данной функции необходимо записать объект, к которому была подключена ранее база данных, к примеру $mysqli.

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

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

Протокол HTTP является протоколом "без сохранения состояния". Это означает, что данный протокол не имеет встроенного способа сохранения состояния между двумя транзакциями. То есть когда пользователь открывает сначала одну страницу сайта, а затем переходит на другую страницу этого же сайта, то основываясь только на средствах, предоставляемых протоколом HTTP невозможно установить, что оба запроса относятся к одному пользователю. Таким образом необходим метод, при помощи которого было бы отслеживать информацию о пользователе в течение одного сеанса связи с Web-сайтов. Одним из таких методов является управление сеансами при помощи предназначенных для этого функций. Для нас важно то, что сеанс по сути, представляет собой группу переменных, которые, в отличие от обычных переменных, сохраняются и после завершения выполнения PHP-сценария. [6]

При работе с сессиями различают следующие этапы:

  • открытие сессии;
  • регистрация переменных сессии и их использование;
  • закрытие сессии.

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

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

После инициализации сессии появляется возможность сохранять информацию в суперглобальном массиве $_SESSION. На страницах, где происходит вызов функции session_start(), значения данных переменных можно извлечь из суперглобального массива $_SESSION.

В приложении 2 показано, что после инициализации сессии идет проверка на существование глобальной переменной $_SESSION, с помощью функции isset().

isset() — определяет, была ли установлена переменная значением отличным от NULL. А если переменная вовсе не существует, тогда null не вернет, но выдаст ошибку.

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

Рисунок 15. Закрытый доступ

Также в приложении 3 показано каким образом на сайте создаются глобальный массив переменных $_SESSION.

После завершения работы с сессией сначала нужно раз регистрировать все переменные сессии, а затем вызвать функцию unset(). Раз регистрация сеансовой переменной и уничтожение сессии происходит благодаря использованию функции session_destroy(). Этот процесс показан в приложении 3. На страницах закрытого доступа, присутствует кнопка «Выход», она передает значение методом GET на страницу основного сайта, где раз регистрирует созданные ранее глобальные переменные $_SESSION с помощью функции unset().

Процесс создания программного продукта в текстовом редакторе Atom продемонстрирован на рисунке 16.

Рисунок 16. Процесс создания программного продукта

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

Если табличный процессор Excel специально создан для решения задач обработки табличных данных, то существуют системы (приложения) для решения иных классов задач. В частности, очень большую роль играют сейчас программы (приложения, системы), цепь которых – хранение данных и выдача данных по запросу пользователя. Использование компьютеров именно для решения этого класса задач становится всё более массовым явлением.

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

Для разработки программ, систем программ, работающих с базами данных, используются специальные средства – системы управления базами данных (СУБД). [8]

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

В настоящее время наиболее известными СУБД являются: Oracle Database, MS SQL Server, MySQL (MariaDB) и ACCESS. Последняя входит в состав профессионального офисного пакета Microsoft Office. Это современные системы с большими возможностями, предназначенные для разработки сложных программных комплексов.

Для разработки программного продукта используется локальный сервер Open Server, который представляет из себя пакет программ, для создания веб-сайта. Входящим в основной комплекс пакета является СУБД MySQL.

База данных (БД) – это совокупность массивов и файлов данных, организованная по определённым правилам, предусматривающим стандартные принципы описания, хранения и обработки данных независимо от их вида. Также можно дать следующее определение — совокупность организованной информации, относящейся к определённой предметной области, предназначенная для длительного хранения во внешней памяти компьютера и постоянного применения.

Виды баз данных:

  • фактографическая – содержит краткую информацию об объектах некоторой системы в строго фиксированном формате;
  • документальная – содержит документы самого разного типа: текстовые, графические, звуковые, мультимедийные;
  • распределённая – база данных, разные части которой хранятся на различных компьютерах, объединённых в сеть;
  • централизованная – база данных, хранящихся на одном компьютере;
  • реляционная – база данных с табличной организацией данных;
  • неструктурированная (NoSQL) – база данных, в которой делается попытка решить проблемы масштабируемости и доступности за счёт атомарности и согласованности данных, но не имеющих четкой (реляционной) структуры.

Одно из основных свойств базы данных – независимость данных от программы, использующих эти данные. Работа с базой данных требует решения различных задач, основные из них следующие:

  • создание базы;
  • запись данных в базу;
  • корректировка данных;
  • выборка данных из базы по запросам пользователя.

Задачи этого списка называются стандартными.

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

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

В БД содержатся банные некоторого множества объектов. Каждая запись содержит данные одного объекта. Каждая такая база данных определяется именем файла, списком полей, шириной полей.

Компьютеры, которые устанавливают и запускают программное обеспечение СУБД, называются клиентами. Когда им нужно получить доступ к данным, они подключаются к серверу СУБД. Это система «клиент-сервер».

В создании программного продукта понадобился база данных с реляционного вида.

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

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

Одно или несколько устройств (клиентов) подключаются к серверу через определённую сеть. Каждый клиент может сделать запрос из графического интерфейса пользователя (GUI) на своих экранах, и сервер выдаст желаемый результат, если оба конца понимают инструкцию. Не вдаваясь в технические аспекты, основные процессы, происходящие в среде MySQL, одинаковы:

  • MySQL создаёт базу данных для хранения и управления данными, определяющими отношения каждой таблицы;
  • клиенты могут делать запросы, вводя определённые команды SQL на MySQL;
  • приложение сервера ответит запрошенной информацией и появится на стороне клиента.

Из преимуществ СУБД MySQL стоит отметить простоту использования, гибкость, низкую стоимость владения (относительно платных СУБД), а также масштабируемость и производительность.

MySQL позволяет хранить целочисленные значения со знаком и беззнаковые, длиной в 1, 2, 3, 4 и 8 байтов, работает со строковыми и текстовыми данными фиксированной и переменной длины, позволяет осуществлять SQL-команды SELECT, DELETE, INSERT, REPLACE и UPDATE, обеспечивает полную поддержку операторов и функций в SELECT- и WHERE- частях запросов, работает с GROUP BY и ORDER BY, поддерживает групповые функции COUNT(), AVG(), STD(), SUM(), MAX() и MIN(), позволяет использовать JOIN в запросах, в т.ч. LEFT OUTER JOIN и RIGHT OUTER JOIN, поддерживает репликацию, транзакции, работу с внешними ключами и каскадные изменения на их основе, а также обеспечивает многие другие функциональные возможности.

Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей. Есть и другие типы таблиц, разработанные сообществом.

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

Интерфейс phpMyAdmin показан на рисунке 17.

интерфейс phpmyadmin

Рисунок 17. Интерфейс phpMyAdmin.

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

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

Возможности phpMyAdmin:

  • интуитивно понятный веб-интерфейс;
  • поддержка импорта данных из CSV и SQL;
  • поддержка экспорта в различные форматы CSV, SQL, XML, PDF, ISO/IEC 26300 - OpenDocument текст и таблицы, Word, Excel, LATEX и другие;
  • администрирование нескольких серверов;
  • генерирование наглядных схем баз данных в виде PDF;
  • создание комплексных запросов с помощью функции Запрос по шаблону;
  • глобальный или частичный поиск в базе данных;
  • трансформация данных в любой формат, используя набор предназначенных функций вроде отображения BLOB-данных в виде картинки или ссылки для скачивания и так далее.

Простота пользования и удобство интерфейса PhpMyAdmin предопределили его популярность и широту распространения во Всемирной сети. Эту программу включают в пакет серверного софта большинство хостеров, предоставляющих виртуальные площадки для размещения сайтов. Кроме того, она является частью пакета программ локальных серверов, используемых веб-разработчиками для отладки сайтов на домашних компьютерах. Например, она входит в состав популярных пакетов серверных программ Denwer, Apache и OpenServer.

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

Функционал роли «Незарегистрированный пользователь»: просмотр главной страницы; страница «Каталог»; информации о каждом помещении; станица «Компания»; использование формы обратной связи; использование формы «Задать вопрос»; поиск по сайту; страница «Избранное».

Функционал роли «Менеджер»: авторизация; просмотр страницы с вопросами от пользователей; форма для отправки ответа на вопрос пользователя; просмотр страницы с заявками от клиентов; форма для вывески новых объявлений; форма для удаления не актуальных объявлений.

Функционал роли «Администратор»: авторизация; форма для регистрации новых сотрудников; форма для удаления неактуально учётной записи менеджера.

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

C:\Users\Мария\AppData\Local\Microsoft\Windows\INetCache\Content.Word\bdd2222.jpg

Рисунок 18. Структура базы данных.

Имея спроектированную схему базы данных необходимо ее реализовать при помощи такого средства реализации как: PhpMyAdmin, присутствующий в пакете Open Server. Для этого необходимо запустить локальный сервер на персональном компьютере и в появившемся в закрепленной панели значка локального сервера открыть необходимое приложение. При запуске PhpMyAdmin пользователь попадает на страницу с авторизацией, так как это локальный сервер, в поле логин нужно ввести значение «root», что означает суперпользователь, у которого есть доступ к редактированию всех баз данных, а в пароле ничего вводить не надо, так как изначально его никто не устанавливает. После этой манипуляции пользователь попадает на главную страницу, в которой можно создано новую базу данных с наименованием Upravlenie. Важным моментом при создании новой базы данных в PhpMyAdmin, является установка кодировки, наиболее подходящей в разработке русскоязычного веб-сайта это кодировка «utf8_general_ci». В уже созданной базе данных необходимо создать таблицы с уже спроектированными полями.

Основной целью сайта является продвижение продаваемых и сдаваемых помещений компании «Управление и Инвестиции», для достижения этой цели необходимо создать каталог, в котором будет храниться вся информация о существующих предложениях. Таблица каталог включает в себя все необходимые поля, для полного информирования посетителя о интересующем его помещении. Таблица «Katalog» показана в таблице 2.

Таблица 2.

Таблица «Katalog»

Имя

Тип

Длинна/ значения

Авто инкремент

Прочее

IdKatalog

INT

+

PRIMARY

NameLot

TEXT

255

Price

VARCHAR

64

Addres

VARCHAR

64

Type

VARCHAR

64

Metro

VARCHAR

64

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

Имя

Тип

Длинна/ значения

Авто инкремент

Прочее

HowToGet

VARCHAR

64

Photo

VARCHAR

64

Meter

INT

Floors

VARCHAR

255

Info

TEXT

Поле IdKatalog является идентификационным номером записи. Оно уникально и имеет авто инкремент, что означает, что оно записывается автоматически и значение больше предыдущей записи на единицу. Наименование помещения, состоящее из названия жилого комплекса или офисного центра, записывается в поле NameLot. Оно должно быть индивидуальным, чтобы пользователь имел возможность различать объявления. Основной критерий, на который смотрят потенциальные клиенты — это конечно цена и она записывается в поле Price. Дабы цифры не сливались, потому что в продаже недвижимого имущества много нулей, был выбран тип VARCHAR, чтобы у менеджера была возможность разграничить цифру пробелами и не отталкивать клиентов. Точный адрес записывается в поле Addres, чтобы клиент понимал в каком месте стоит предоставляемое помещение. Так как компания «Управление и Инвестиции» занимается не только продажей, но и арендой недвижимых помещений, необходимо показывать посетителям какого типа помещение, для этого используется поле Type. Не менее важным фактором для посетителя является местонахождения метро, потому что в городе Москва — это самый быстрый способ передвижения, эля этого присутствует поле Metro. Чтобы показать, как далеко находится выбранное помещение от указанного метро используется поле HowToGet, куда записывается за сколько и на чем добраться до помещения. Так как у самого phpmyadmin нету возможности загрузить в базу данных фотографию, то можно записать путь к фотографии, чтобы была возможность отобразить фотографии помещений на сайте используется поле Photo. Поле, показывающее сколько квадратных метров в помещении, присутствует поле Meter. Этажность показана в поле Floors, она имее6т тип VARCHAR, чтобы менеджер имел возможность ввести не только одну цифру этажа, но ведь и бывает такое, что помещение размещено на нескольких этажах, поэтому это невозможно уместить в силовом виде. Подробную информацию об отличиях или достоинствах того, или иного помещения можно записать поле Info.

На странице каталога можно выбрать заинтересовавшее помещение и записаться на просмотр, потому что недвижимое имущество сложно взять без предварительного осмотра, доверившись даже самому подробному описанию. Для этого на сайте можно оставить заявку на запись на просмотр помещения. Чтобы записать все отправленные данные посетителем необходима таблица «View», она показана в таблице 3.

Таблица 3.

Таблица «View»

Имя

Тип

Длинна/ значения

Авто инкремент

Прочее

IdView

INT

+

PRIMARY

NameView

VARCHAR

64

PhoneView

VARCHAR

255

MailView

VARCHAR

255

Massage

TEXT

OptionId

INT

У поля IdView имеется первичный ключ и авто инкремент, так как это идентификационный номер записи. В поле NameView записывается имя пользователя, чтобы при связи менеджер смог обратиться к пользователю., оставившему эту заявку, по имени. Самый быстрый способ связи с человеком на данный момент, это мобильный телефон и пользователь, оставляя заявку на просмотр помещения может оставить свой номер телефона, записав его в поле PhoneView. Не беспокоящим способом связи является электронная почта, также она может служить для рекламных целей и способом пересылания важных документов не тратя время на личную встречу. Пользователь может оставить свою почту на сайте, она запишется в поле MailView. Написать удобное время, нежелательно время звонка или другое пожелание пользователь может в поле Massage. Поле OptionId записывается автоматически, пользователь может записаться на просмотр только зайдя на страницу помещения и тогда идентификационный номер конкретного помещения записывается в это поле, чтобы менеджер смог еще раз уточнить какое помещение заинтересовало пользователя.

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

Таблица 4.

Таблица «Employees»

Имя

Тип

Длинна/ значения

Авто инкремент

Прочее

IdEmployees

INT

+

PRIMARY

NameEmployees

VARCHAR

64

PostEmployees

VARCHAR

20

PhoneEmployees

bigint

EmilEmployees

VARCHAR

255

Login

VARCHAR

255

Password

VARCHAR

255

PasswordHash

VARCHAR

255

Status

INT

По умолчанию 1

Идентификационное поле у данной таблицы, имеющее авто инкремент и первичный ключ это IdEmployees. Для записи имя сотрудника используется поле NameEmployees. Чтобы записать должность имеется поле PostEmployees. Номер телефона записывается в поле PhoneEmployees, так как эти данные записывает администратор, он имеет знает, что номер телефона нужно вводить без знаков и пробелов, потому что тип данных у этого поля bigint. Поста сотрудника записывается в поле EmilEmployees. Администратор при регистрации создает логин и пароль сотруднику, которые записываются в поля Login и Password. Поле PasswordHash никто не видит, оно находится только в базе данных и именно с ним сравнивается пароль, чтобы злоумышленники не смогли узнать или взломать пароль. Так как на сайте имеется два уровня доступа существует поле Status. По умолчанию это поле равняется один, но его можно изменить на другое значение и дать другой уровень доступа. Уровень доступа один равняется статусу менеджера, имеет возможность удалять и создавать новые объявления и тому подобное, а уровень доступа десять равняется статусу администратора и имеет возможность удалять и создавать новые учетные записи на сайте.

На сайте должен присутствовать такой раздел, как вопрос ответ, который покажет пользователю прозрачность работы компании, а также покажет, что компании важно время клиентов, чтобы те в свою очередь могли сразу найти нужный ответ, если такой вопрос уже задавали. Для реализации этого необходимо создать таблицу для хранения вопросов от посетителей сайта. Таблица «Question» продемонстрирована в таблице 5.

Таблица 5.

Таблица «Question»

Имя

Тип

Длинна/ значения

Авто инкремент

Прочее

IdQuestion

INT

+

PRIMARY

NameUser

VARCHAR

255

PhoneUser

VARCHAR

255

EmileUser

VARCHAR

255

QuestionUser

TEXT

HaveAnswer

INT

По умолчанию 0

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

Чтобы опубликовать заданный вопрос на сайте, необходимо на него ответить. Для этого создана отдельная таблица, куда записывается ответы на важные вопросы, которые могут заинтересовать других пользователей сайта. Таблица «Answer» показана в таблице 6.

Таблица 6.

Таблица «Answer»

Имя

Тип

Длинна/ значения

Авто инкремент

Прочее

IdAnswer

INT

+

PRIMARY

IdQuest

INT

AnswerToQuestion

TEXT

Поле для идентификации ответа IdAnswer такте имеет первичный ключ и авто инкремент. Поле для отслеживания на какой вопрос дан ответ это IdQuest, в нем записывается идентификационный номер вопроса. Сам ответ записывается в текстовое поле AnswerToQuestion.

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

    1. Описание интерфейса «Обычный пользователь»

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

Зайдя на главную страницу, нужно чтобы посетитель смог найти ответы на 4 вопроса:

  • где я?
  • что я могу тут найти?
  • что можно здесь делать?
  • можно ли доверять этой компании?
  • и самый главный вопрос: «почему я должен сидеть тут»? (а не на других сайтах).

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

Рисунок 19. Главная страница (верхняя часть)

Чтобы сделать страницу понятной – необходимо сделать на ней ясную, легко считываемую структуру элементов. С самого первого взгляда становиться понятно, какие элементы второстепенные, а какие главные. Как правило, чем большем приоритетом важности обладает элемент, тем заметнее его нужно организовать. Также на каждой странице присутствует поле поиска, чтобы пользователь имел возможность не терять свое время в поисках по сайту, а просто ввести запрос и найти необходимое. Именно поэтому структура главной страницы построена таким образом, что пользователь в начале посмотрит на фотографию главного предложения, ему захочется прокрутить вниз, где будет разъяснение: кратное, понятное и иллюстрированное. Демонстрация плюсов компании, краткая история и демонстрация некоторых предложений. Это изображено на рисунках 20 и 21.

На главной странице веб-сайта присутствуют следующие блоки:

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

C:\Users\админ\AppData\Local\Microsoft\Windows\INetCache\Content.Word\главная 2.png

Рисунок 20. Главная страница (продолжение)

Рисунок 21. Главная страница (футер)

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

  • шапка с изображением логотипа, ссылающейся на главную страницу, наименования, поля поиска и номера телефона для связи;
  • шапка с меню, которое содержит ссылки на следующие страницы: каталог, копания, контакты и выкуп объектов;
  • блок, в котором непосредственно расположены динамически обновляющиеся блоки с актуальными предложениями от компании и кнопками ссылающиеся на страницу с подробной информацией о конкретном помещении;
  • подвал с картой сайта и ссылками на социальные сети компании;
  • подвал с защитой интеллектуальной собственности, которая принадлежит компании «Управление и Инвестиции» и ссылка на «Соглашение на обработку персональных данных».

Для ознакомления с компаний есть страница «Компания», она изображена на рисунке 23. На странице «Компания» присутствуют:

  • шапка с изображением логотипа, ссылающейся на главную страницу, наименования, поля поиска и номера телефона для связи;
  • шапка с меню, которое содержит ссылки на следующие страницы: каталог, копания, контакты и выкуп объектов;
  • шапка с подменю, которое содержит ссылки на следующие страницы: о компании, сотрудники, вопрос ответ и авторизация.;
  • подвал с картой сайта и ссылками на социальные сети компании;
  • подвал с защитой интеллектуальной собственности и ссылка на «Соглашение на обработку персональных данных».

Рисунок 22. Страница каталога

Рисунок 23. Страница «О компании»

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

Одно из главных качеств контактной информации – достоверность. Можно забыть указать одну из функций фирмы, забыть указать руководителей, не поместить на сайт сертификаты и дипломы, но контактная информация всегда должна быть достоверной. А иначе – зачем этой фирме сайт?

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

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

Определим требования к контактной информации, публикуемой на сайте:

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

Скриншот страницы контактов изображен на рисунке 24.

Страница «Контакты» содержит:

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

На странице «Выкуп объектов», изображена на рисунке 25, в ней присутствует следующая информация:

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

Рисунок 24. Страница «Контакты»

C:\Users\админ\AppData\Local\Microsoft\Windows\INetCache\Content.Word\контакты.png

Рисунок 25. Страница «Выкуп объектов»

У страницы компания присутствуют подменю, одним из них является страница «Сотрудники», она показана на рисунке 26 и содержит следующие блоки:

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

Далее идет страница «Вопрос ответ», предоставлена на рисунке 27, в ней присутствуют следующие элементы:

  • шапка с изображением логотипа, наименования, поля поиска и номера телефона для связи;
  • шапка с меню, которое содержит ссылки на следующие страницы: каталог, копания, контакты и выкуп объектов;
  • блок, содержащий уже заданные вопросы с ответом от сотрудника, чтобы посетитель мог найти интересующий его вопрос и сразу получить ответ;
  • в случае, если посетитель не нашел интересующий его порос, то присутствует блок с формой, для того чтобы самому задать интересующий его вопрос;
  • подвал с картой сайта и ссылками на социальные сети компании;
  • подвал с защитой интеллектуальной собственности, которая принадлежит компании «Управление и Инвестиции» и ссылка на «Соглашение на обработку персональных данных».

Рисунок 26. Страница «Сотрудники»

Рисунок 27. Страница «Вопрос ответ»

Авторизация, от английского слова authorization, что можно перевести как «разрешение» — это предоставление прав пользователю или группе лиц на выполнение тех или иных действий.

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

Стоит сказать несколько слов о том, что такое логин и пароль. Логин – это своего рода уникальное наименование, которое пользователь сам придумывает для себя, чтобы получить доступ к сайту. Он обязательно должен быть уникальным, иначе авторизоваться на сайте будет невозможно.

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

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

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

Чаще всего пользователь сам вправе менять свои данные авторизации, однако логин в некоторых случаях изменить невозможно. Например, если говорить о почтовых сервисах, логин изменить не получится, а вот пароль — пожалуйста.

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

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

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

При том на каждом возможном сайте. Это может быть какой угодно ресурс, социальная сеть, форум, интернет-магазин, сайт банка или любой другой веб-сайт. На нём в той или иной степени присутствует авторизация.

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

Последним пунктом из подменю является страница «Авторизация», она не является самой авторизацией, а только предупреждением для пользователя. Что авторизоваться может только сотрудник организации. Страница «Авторизация» расположена на рисунке 28 и включает в себя:

  • шапка с изображением логотипа, наименования, поля поиска и номера телефона для связи;
  • шапка с меню, которое содержит ссылки на следующие страницы: каталог, копания, контакты и выкуп объектов;
  • блок с оповещением, что данная страница только для сотрудников компании и кнопка с ссылкой на страницу, в которой можно ввести логин и пароль;
  • подвал с картой сайта и ссылками на социальные сети компании;
  • подвал с защитой интеллектуальной собственности, которая принадлежит компании «Управление и Инвестиции» и ссылка на «Соглашение на обработку персональных данных».

Рисунок 28. Страница «Авторизация»

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

Рисунок 29. Блок «Позиция»

В случае, если пользователя заинтересует какое-либо предложение, у него присутствует возможность записаться на просмотр выбранного им помещения, нажатием на кнопку «Записаться на просмотр» на странице «Позиция» из каталога. При нажатии на нее пользователь попадает на страницу записи на просмотр, в которой присутствует форма ввода данных пользователя, и отправка их в базу данных при нажатии кнопки «Отправить». Страница «Запись на просмотр» предоставлена на рисунке 30.

Рисунок 30. Страница «Запись на просмотр»

    1. Описание интерфейса «Администратор»

Форма авторизации показана на рисунке 31. В поля пользователь должен ввести свой логин и пароль в соответствии со своей учетной записью.

Рисунок 31. Блок «Не верные данные»

После страницы авторизации есть два сценария, в первом, если логин или пароль не совпали с данными из базы данных, то пользователь переводится на страницу «Не верные данные», где ему сообщается, что пароль или логин не верен и присутствуют две кнопки: для возвращения к авторизации и обратно на сайт. Данный блок предоставлена на рисунке 32.

Рисунок 32. Блок «Не верные данные»

В другом сценарии, при верно введённом логине и пароле, пользователь попадает в меню, но в зависимости от его должности, пользователь попадает в разные меню. Идет проверка статуса пользователя и при нажатии на кнопку «Войти» пользователь может попасть в: меню администратора или меню менеджера.

Если пользователь ввел логин и пароль учебной записи, у которой статус администратора, то соответственно появляется меню администратора, оно показано на рисунке 33.

Рисунок 33. Блок «Меню администратора»

Меню администратора включает в себя следующие элементы управления:

  • зарегистрировать нового пользователя;
  • удалить старого пользователя;
  • выход.

Выбрав пункт удаления старого пользователя, появится страница удаления учетных записей, в которой будет список с сотрудниками и кнопкой «Удалить». Форма удаления старой учетной записи предоставлена на рисунке 34.

C:\Users\Мария\AppData\Local\Microsoft\Windows\INetCache\Content.Word\1 (2).png

Рисунок 34. Блок «Удаление старого пользователя»

При переходе к регистрации нового пользователя откроется страница со следующими полями:

  • поле «Введите ФИО» и поле для ввода данных;
  • поле «Введите пост сотрудника» и поле для ввода данных;
  • поле «Введите телефон сотрудника» и поле для ввода данных;
  • поле «Введите почту сотрудника» и поле для ввода данных;
  • поле «Введите логин сотрудника» и поле для ввода данных;
  • поле «Введите пароль сотрудника» и поле для ввода данных;
  • выбор должности для дальнейшего приобретения прав пользования сайтом: «Статус менеджера» или «Статус администратора»;
  • кнопка «Отправить» для отправки данных на сервер в базу данных;
  • кнопка «Вернуться к меню администратора», возвращающая пользователя в меню;
  • кнопка «Выход», возвращающая пользователя обратно на сайт.

Форма регистрации нового пользователя показана на рисунке 35.

Рисунок 35. Блок «Регистрация нового пользователя»

Если пользователь авторизовался как менеджер, интерфейс формы меню предоставлен на рисунке 36, меню содержит следующие элементы:

  • кнопка «Дать новое объявление»;
  • кнопка «Удалить старое объявление»;
  • кнопка «Вопросы от пользователей»;
  • кнопка «Заявки на помещение»;
  • кнопка «Вернуться к меню администратора», возвращающая пользователя в меню;
  • кнопка «Выход», возвращающая пользователя обратно на сайт.

Рисунок 36. Блок «Меню менеджера»

При переходе на страницу создания нового объявления открывается форма содержащая следующие элементы:

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

Форма создания нового объявления показана на рисунке 37.

Рисунок 37. Блок «Создание нового объявления»

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

Форма, в которой у сотрудника есть возможность ответить на вопрос посетителей показана на рисунке 38.

Рисунок 38. Блок «Ответов на вопросы»

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

Рисунок 39. Блок «Удаление старого объявления»

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

Рисунок 40. Блок «Заявки о пользователей»

    1. Инструкция пользователя.

Инструкция обычного пользователя:

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

Инструкция для эксплуатации сайта сотрудником, если сотрудник менеджер:

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

Инструкция для эксплуатации сайта сотрудником, если сотрудник администратор:

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

Заключение

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

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

В ходе написания данной курсовой работы выполнена разработка веб-сайта для предприятия ООО «Управление и Инвестиции».

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

Основная цель работы: разработка веб-сайта для предприятия ООО «Управление и Инвестиции» достигнута благодаря выполнению поставленных задач:

  • была проанализирована предметная область: сфера работы предприятия, его история, анализ деятельности ООО «Управление и Инвестиции», а также построена организационная структура предприятия;
  • описаны способы и технологии создания веб-сайтов, такие как: текстовые редакторы и локальные серверы. Приведены их достоинства и недостатки, и показан общий интерфейс приложений для реализации. Был выбран текстовый редактор и локальный хостинг подходящий для реализации поставленной цели и обосновано решение выбора;
  • была изучена и описана структура серверной и клиентской части приложения. Разработано дерево основных функций сайта, из чего была создана модель вызова программных модулей разрабатываемого сайта, а также описаны выбранные программные решения для реализации сайта;
  • изучена подробно область хранения информации в базе данных, разработана база данных для программного продукта и описаны все ее таблицы и их назначения;
  • был разработан сайт по уже имеющейся модели сайта и соединен с базой данных, используя серверный язык программирования PHP. Также проведен инструктаж персонала о эксплуатации программного продукта.

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

Разработанный сайт имеет ряд отличительных особенностей:

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

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

Список использованных источников

  1. Трудовой кодекс РФ от 21 декабря 2001 года. Введен в действие с 1 февраля 2002 года (ред. 24.04.2020 №197-ФЗ и 25.07.2002 №116-ФЗ).
  2. Федеральный закон "О персональных данных" от 27.07.2006 № 152-ФЗ (ред. 24.04.2020 №152-ФЗ).
  3. Закон РФ от 07.02.1992 № 2300-1 (ред. от 24.04.2020) "О защите прав потребителей".
  4. Каймин В. А. 1.4. Редактирование текстов на ЭВМ // Информатика: учебник. — 2-е изд., перераб. и доп. — М.: ИНФРА-М, 2016. — 272 с. — («Высшее образование»).
  5. Савельева, Н.В. Язык программирования PHP / Н.В. Савельева. - 2-е изд., испр. - М. : Национальный Открытый Университет «ИНТУИТ», 2016
  6. Мейер, Б. Инструменты, алгоритмы и структуры данных / Б. Мейер. - 2-е изд., испр. - М. : Национальный Открытый Университет «ИНТУИТ», 2016.
  7. Технология разработки интернет ресурсов / авт.-сост. И.А. Журавлёва ; Министерство науки и высшего образования Российской Федерации, Северо-Кавказский федеральный университет. – Ставрополь : Северо-Кавказский Федеральный университет (СКФУ), 2018. – 171 с. : ил. – Режим доступа: по подписке. – URL: http://biblioclub.ru/index.php?page=book&id=562579 (дата обращения: 18.05.2020). – Библиогр. в кн. – Текст : электронный.
  8. Карпова, Т.С. Базы данных: модели, разработка, реализация / Т.С. Карпова. – 2-е изд., исправ. – Москва : Национальный Открытый Университет «ИНТУИТ», 2016. – 241 с. : ил. – Режим доступа: по подписке. – URL: http://biblioclub.ru/index.php?page=book&id=429003 (дата обращения: 05.06.2020). – Текст: электронный.
  9. Atom [Электронный ресурс]. М., 2015-2020. URL: https://atom.io/. (Дата обращения: 09.04.2020).
  10. Notepad++ [Электронный ресурс]. М., 2010-2020. URL: https://notepad-plus-plus.org/. (Дата обращения: 10.04.2020).
  11. Sublime Text [Электронный ресурс]. М., 2007-2020. URL: http://www.sublimetext.com/. (Дата обращения: 10.04.2020).
  12. Biblprog Windows [Электронный ресурс]. М., 2005-2020. URL: https://biblprog.org.ua/ru/bluefish/. (Дата обращения: 10.04.2020).
  13. Denwer [Электронный ресурс]. М., 2010-2020. URL: http://www.denwer.ru/. (Дата обращения: 10.04.2020).
  14. OpenServer [Электронный ресурс]. М., 2014-2020. URL: https://ospanel.io/. (Дата обращения: 11.04.2020).
  15. XAMPP [Электронный ресурс]. М., 2012-2020. URL: https://www.apachefriends.org/ru/index.html. (Дата обращения: 11.04.2020).
  16. MAMP [Электронный ресурс]. М., 2017-2020. URL: https://www.mamp.info/ru/. (Дата обращения: 11.04.2020).

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

<?php

session_start();

if (isset($_SESSION['log']) && isset($_SESSION['pas']) && isset($_SESSION['stat'])){

if ($_SESSION['stat'] = 10){ ?>

<!DOCTYPE html>

<html lang="ru">

<head>

<meta charset="utf-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<meta http-equiv="X-UA-Compatible" content="ie-=edge">

<link rel="stylesheet" href="style\styleAdmin.css">

<title>Администрация сайта</title>

<script type="text/javascript">

function fanc(){

document.getElementById("id1").checked=true; document.registr.status[0].checked=true;

document.registr['status'][0].checked=true;

}

</script>

</head>

<body>

<div class="formauth">

<div class="field">

<h2>Регистрация новых пользователей</h2>

<?php

// Подключение к базе данных

$mysqli = new mysqli("localhost", "root", "", "upravlenie");

// Если есть ошибка соединения, выводим её и убиваем подключение

if ($mysqli->connect_error) {

die('Ошибка : ('. $mysqli->connect_errno .') '. $mysqli->connect_error);

}

//если все поля заполнены, то введенные значения запоминаем в переменные и благодара SQL запросу отправляем введенные данные в базу данных

if (isset($_POST['fio']) && isset($_POST['PostEmp']) && isset($_POST['PhoneEmp']) && isset($_POST['EmailEmp']) && isset($_POST['Log']) && isset($_POST['Pass']) && isset($_POST['status'])){

$fioEmp = $_POST['fio'];

$PostEmpl = $_POST['PostEmp'];

$PhoneEmpl = $_POST['PhoneEmp'];

$EmailEmpl = $_POST['EmailEmp'];

$login = $_POST['Log'];

$password = $_POST['Pass'];

if ($_POST['status'] == 1){

$statusEmp = 1;

} elseif ($_POST['status'] == 10) {

$statusEmp = 10;

}

$passwordHash = md5(trim($_POST['Pass']));

$result = $mysqli->query("INSERT INTO employees (NameEmployees, PostEmployees, PhoneEmployees, EmailEmployees, Login, Password, PasswordHash, Status) VALUES ('$fioEmp','$PostEmpl','$PhoneEmpl','$EmailEmpl','$login','$password','$passwordHash','$statusEmp')");

if ($result == true){

echo "Информация занесена в базу данных";

} else {

echo "Информация не занесена в базу данных";

}

mysqli_close($mysqli);

}

?>

<form method="POST" name="registr">

<label>Введите ФИО</label><input type="text" name="fio" required><br><br>

<label>Введите пост сотрудника</label><input type="text" name="PostEmp" required><br><br>

<label>Введите телефон сотрудника</label><input type="text" name="PhoneEmp" required><br><br>

<label>Введите почту сотрудника</label><input type="text" name="EmailEmp" required><br><br>

<label>Введите логин сотрудника</label><input type="text" name="Log" required><br><br>

<label>Введите пароль сотрудника</label><input type="text" name="Pass" required><br><br>

<label>Статус менеджера</label><input type="radio" name="status" id="id1" value="1" checked><br><br>

<label>Статус администратора</label><input type="radio" name="status" id="id2" value="10"><br><br>

<input name="submit" type="submit" value="Отправить">

</form>

<a href="menuadmin.php">

<div class="sub">

Вернуться к меню администратора

</div>

</a>

<?php echo '<a href="foremploees.php?deleteCookie=TRUE"> <div class="sub">

Выход

</div>

</a>'; ?>

</div>

</div>

</body>

</html>

<?

} else {

$access = FALSE;

}

} else {

$access = FALSE;

}

if (isset($access) and $access = TRUE) { ?>

Закрыт доступ!

<? } ?>

Приложение 2. Программный код страницы ответов на вопросы пользователей

<?php

session_start();

if (isset($_SESSION['log']) && isset($_SESSION['pas']) && isset($_SESSION['stat'])){

if ($_SESSION['stat'] == 1){ ?>

<!DOCTYPE html>

<html lang="ru">

<head>

<meta charset="utf-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<meta http-equiv="X-UA-Compatible" content="ie-=edge">

<link rel="stylesheet" href="style\styleManager.css">

<title>Вопросы о пользователей</title>

<script type="text/javascript">

function fanc(){

document.getElementById("id1").checked=true; document.registr.status[0].checked=true;

document.registr['status'][0].checked=true;

}

</script>

</head>

<body>

<div class="questionauth">

<div class="question">

<h2>Вопросы о пользователей</h2>

<?php

$mysqli = new mysqli("localhost", "root", "", "upravlenie");

if ($mysqli->connect_errno) {

printf("Не удалось подключиться: %s\n", $mysqli->connect_error);

exit();

}

foreach ( $mysqli->query("SELECT * FROM question") as $row ) {

if ($row['HaveAnswer'] == 0){

?>

<div class="blockAnsw">

<div class="QuestionUser">

<div class="AnswerText"> <?

echo "От: ".$row['NameUser'];

echo ". Номер телефона пользователя: ".$row['PhoneUser'];

echo ". Почта пользователя: ".$row['EmailUser']."<br />";

echo "Идентификационный номер вопроса: ".$row['idQuestion']."<br />"; ?>

</div> <?

echo '<h3>'.$row['QuestionUser'].'</h3>'."<br />";

echo '<a href="?del_id='.$row['idQuestion'].'"><input type="submit" name="Delete" value="Удалить" onclick="confirmDelete(this)"/></a>'; ?>

</div>

</div><?

}

}

?>

</div>

<div class="field">

<h2>Ответить на вопрос</h2>

<?php

if (isset($_POST['idQuest']) && isset($_POST['AnswerToQuestion']) ) {

$idQuest = $_POST['idQuest'];

$AnswerToQuestion = $_POST['AnswerToQuestion'];

$result = $mysqli->query("INSERT INTO Answer (idQuest, AnswerToQuestion) VALUES ('$idQuest','$AnswerToQuestion')");

$sql = $mysqli->query("UPDATE question SET HaveAnswer = '1' WHERE idQuestion = $idQuest");

if ($result == true){

echo "Информация занесена в базу данных";

} else {

echo "Информация не занесена в базу данных";

}

mysqli_close($mysqli);

}

?>

<form method="POST">

<label>Введите идентификационный номер вопроса</label><input type="text" name="idQuest" required><br><br>

<label>Введите введите ответ</label><input type="text" name="AnswerToQuestion" required><br><br>

<input name="submit" type="submit" value="Отправить">

</form>

<a href="menumanager.php">

<div class="subdel">

Вернуться к меню менеджера

</div>

</a>

<a href="foremploees.php">

<div class="subdel">

Выход

</div>

</a>

</div>

</div>

</body>

</html>

<?

} else {

$access = FALSE;

}

} else {

$access = FALSE;

}

if (isset($access) and $access = TRUE) { ?>

Закрыт доступ!

<? } ?>

Приложение 3. Программный код страницы авторизации

<?php

$mysqli = new mysqli("localhost", "root", "", "upravlenie");

error_reporting(E_ALL);

ini_set("display_errors", 1);

session_start();

if (isset($_POST['log']) && isset($_POST['pass'])){

$login = $_POST['log'];

$password = md5(trim($_POST['pass']));

foreach ( $mysqli->query("SELECT Login, PasswordHash, Status FROM employees") as $row ){

if ($password == $row['PasswordHash'] & $login == $row['Login'] & $row['Status'] == 1) {

header('Location: menumanager.php');

session_start();

$_SESSION['log'] = $login;

$_SESSION['pas'] = $password;

$_SESSION['stat'] = $row['Status'];

exit;

} elseif ($password == $row['PasswordHash'] & $login == $row['Login'] & $row['Status'] == 10) {

header('Location: menuadmin.php');

session_start();

$_SESSION['log'] = $login;

$_SESSION['pas'] = $password;

$_SESSION['stat'] = $row['Status'];

exit;

}

}

foreach ( $mysqli->query("SELECT Login, PasswordHash, Status FROM employees") as $row ){

if ($password != $row['PasswordHash'] or $login == $row['Login']) {

header('Location: NoPas.php');

exit;

}

}

}

?>

<!DOCTYPE html>

<html lang="ru">

<head>

<meta charset="utf-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<meta http-equiv="X-UA-Compatible" content="ie-=edge">

<link rel="stylesheet" href="style/style.css">

<title>Авторизация</title>

</head>

<body>

<div class="conteinerform">

<div class="formauth tut">

<h2>Авторизация</h2>

<form method="POST">

Логин <input name="log" type="text"><br><br>

Пароль <input name="pass" type="password"><br><br>

<input name="submit" type="submit" value="Войти">

</form>

<a href="foremploees.php">

<div class="sub">

Вернуться на сайт

</div>

</a>

</div>

</div>

</body>

</html>

Приложение 4. Программный код страницы для перехода к авторизации

<?php

$deleteCookie = $_GET['deleteCookie'];

if ($deleteCookie = TRUE) {

session_start();

unset ($_SESSION['log']);

unset ($_SESSION['pas']);

unset ($_SESSION['stat']);

}

?>

<!DOCTYPE html>

<html>

<head lang="ru">

<meta charset="utf-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<meta http-equiv="X-UA-Compatible" content="ie-=edge">

<link rel="stylesheet" href="style/css.css">

<link rel="stylesheet" href="style/echocss.css">

<title>Главная</title>

</head>

<body>

<div class="wrap">

<div class="box1 bok">

<!-- box1 -->

</div>

<div class="box2">

<div class="box201">

<a href="index.php">

<img src="img/logo.png" width="50" alt="logo">

</a>

</div>

<div class="box202">

<h1>Управление и Инвестиции</h1>

</div>

</div>

<div class="box4">

<br>

<form action="Search.php" method="post">

<input type="text" name="search_q" size="10" placeholder="Поиск">

<input type="submit" value="Найти">

</form>

</div>

<div class="box5">

<h3>+7 (919) 720 59 45</h3>

</div>

<div class="box6 bok">

<!-- box6 -->

</div>

<div class="box66 nav">

<!-- box66 -->

</div>

<div class="box7 nav">

<a href="katalog.php">

<div class="con">

Каталог

</div>

</a>

</div>

<div class="box7 nav">

<a href="company.html">

<div class="con tut">

Компания

</div>

</a>

</div>

<div class="box8 nav">

<a href="contact.php">

<div class="con">

Контакты

</div>

</a>

</div>

<div class="box9 nav">

<a href="buyout.php">

<div class="con">

Выкуп объектов

</div>

</a>

</div>

<div class="box99 nav">

<!-- box99 -->

</div>

<div class="box66 nav">

<!-- box66 -->

</div>

<div class="box7 nav">

<a href="company.html">

<div class="con">

О компании

</div>

</a>

</div>

<div class="box7 nav">

<a href="employees.php">

<div class="con">

Сотрудники

</div>

</a>

</div>

<div class="box8 nav">

<a href="questionAnswer.php">

<div class="con">

Вопрос ответ

</div>

</a>

</div>

<div class="box9 nav">

<a href="">

<div class="con tut">

Авторизация

</div>

</a>

</div>

<div class="box99 nav">

<!-- box99 -->

</div>

<div class="companybok1 bok">

<!-- bok1 -->

</div>

<div class="infocompany">

<div class="infocompanyimg">

<img src="img/you.png" width="100%" alt="You">

</div>

<div class="infocompanytext">

<h2>Внимание</h2>

<p>Страница авторизации только для сотрудников компании</p>

<div class="sbut sub">

<a href="vhod.php">Авторизоваться</a>

</div>

</div>

</div>

<div class="companybok2 bok">

<!-- bok -->

</div>

<div class="box23 bok">

<!-- box23 -->

</div>

<div class="box24">

<div class="box241 karta">

<h1>Компания</h1>

<ul>

<li><a href="company.html">О компании</a></li>

<li><a href="Employees.php">Сотрудники</a></li>

<li><a href="questionAnswer.php">Вопрос - ответ</a></li>

<li><a href="foremploees.php">Авторизация</a></li>

</ul>

</div>

<div class="box242 karta">

<h1>Услуги</h1>

<ul>

<li><a href="katalog.php">Покупка и аренда помещений</a></li>

<li><a href="buyout.php">Выкуп помещений</a></li>

</ul>

</div>

<div class="box243 karta">

<h1>Мы в социальных сетях</h1>

<ul>

<li><a href=""><img src="https://img.icons8.com/ios/50/000000/vk-com.png"/></a></li>

<li><a href=""><img src="https://img.icons8.com/ios/50/000000/youtube-squared.png"/></a></li>

<li><a href=""><img src="https://img.icons8.com/ios/50/000000/facebook.png"/></a></li>

<li><a href=""><img src="https://img.icons8.com/ios/50/000000/instagram.png"/></a></li>

<li><a href=""><img src="https://img.icons8.com/ios/50/000000/weixing.png"/></a></li>

</ul>

</div>

</div>

<div class="box25 bok">

<!-- box25 -->

</div>

<div class="box26">

<div class="box261">

<!-- f -->

</div>

<div class="box262">

&#169; Управление и Инвестиции 2015-2020<br>

Все права защищены

</div>

<div class="box263">

<a href="agreement.php">Соглашение на обработку персональных данных</a>

</div>

<div class="box264">

<!-- f -->

</div>

</div>

</div>

</body>

</html>