Программный комплекс обеспечения пропускного режима в организации
Обзор существующих систем электронного доступа. Описание структуры программного обеспечения. Анализ модуля работы с базой данных. Работа с интерфейсом администратора и менеджера. Средства защиты информации на сервере. Особенность хеширования паролей.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 08.10.2018 |
Размер файла | 4,6 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Продолжительность непрерывной работы с ВДТ без регламентированного перерыва не должна превышать 1 ч.
При работе с ПЭВМ в ночную смену (с 22 до 6 ч), независимо от категории и вида трудовой деятельности, продолжительность регламентированных перерывов следует увеличивать на 30%.
Во время регламентированных перерывов с целью снижения нервно- эмоционального напряжения, утомления зрительного анализатора, устранения влияния гиподинамии и гипокинезии, предотвращения развития позотонического утомления целесообразно выполнять комплексы упражнений.
5. ИССЛЕДОВАТЕЛЬСКАЯ ЧАСТЬ
5.1 Возможности для исследований
Система электронных карт доступа не только облегчает пропускной контроль на территории фитнес-центра, но и ведет различную статистику, которая может быть использована для решения управленческих задач фитнес-центра:
- инвентаризация;
- соблюдение норм по снижению травматизма;
- составление маркетингового плана;
- планирование бюджета на маркетинг;
- формирование отчетов;
- расчет себестоимости 1 привлеченного клиента;
- реклама на дисплеях в залах;
- «ре-маркетинг» старых посетителей.
5.2 Пик дневной посещаемости
В таблице 5.1 представлена выборка по посещаемости фитнес-центра за последние 15 дней. На базе результатов работы информационной системы был построен график средней ежедневной посещаемости фитнес центра (рисунок 5.1).
Рисунок 5.1 - График средней ежедневной посещаемости
Как видно на графике, пик количества посетителей, одновременно находящихся на территории фитнес-центра, приходится на 19 часов вечера и составляет 483 человека. Такое распределение количества посетителей не случайно и включает в себя несколько вех (ключевых точек):
- утром все приходят заниматься спортом до работы и учебы;
- днем, в обеденное время, также наблюдается всплеск посещаемости;
- в середине рабочего дня количество посетителей минимально;
- в 18 часов и позднее приезжает огромное количество людей после учебы и работы.
Полученные данные позволяют понять, что на данном этапе требуется обслуживать параллельно не более 500 клиентов. Компания-оператор фитнес-центра проверяет наличие 500 полотенец, 500 гардеробных ящиков, 500 браслетов и т.д. Тем самым компания может прогнозировать и предупреждать ситуации с нехваткой того или иного спортивного инвентаря.
Эти данные также позволяют вести планирование и управление, учитывая нормы по снижению травматизма, установленные для этого заведения на уровне 1100 человек за сеанс.
Помимо общего количества посетителей в момент времени я сформировал график динамики посетителей, то есть количество пришедших и количество покинувших центр посетителей за каждый час (рисунок 5.2).
Таблица 5.1 - Количество посетителей за период 15 дней
T |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
СР ЕД |
|
9 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
- |
|
10 |
148 |
152 |
135 |
128 |
175 |
199 |
123 |
167 |
189 |
200 |
171 |
174 |
171 |
184 |
164 |
165 |
|
11 |
150 |
184 |
155 |
143 |
199 |
205 |
245 |
212 |
203 |
200 |
216 |
234 |
244 |
201 |
229 |
201 |
|
12 |
173 |
177 |
160 |
153 |
200 |
224 |
148 |
192 |
214 |
225 |
196 |
199 |
196 |
209 |
189 |
190 |
|
13 |
258 |
262 |
245 |
238 |
285 |
309 |
233 |
277 |
299 |
310 |
281 |
284 |
281 |
294 |
274 |
275 |
|
14 |
212 |
216 |
199 |
192 |
239 |
263 |
187 |
231 |
253 |
264 |
235 |
238 |
235 |
248 |
228 |
229 |
|
15 |
134 |
138 |
121 |
114 |
161 |
185 |
109 |
153 |
175 |
186 |
157 |
160 |
157 |
170 |
150 |
151 |
|
16 |
121 |
125 |
108 |
101 |
148 |
172 |
96 |
140 |
162 |
173 |
144 |
147 |
144 |
157 |
137 |
138 |
|
17 |
170 |
174 |
157 |
150 |
197 |
221 |
145 |
189 |
211 |
222 |
193 |
196 |
193 |
206 |
186 |
187 |
|
18 |
286 |
290 |
273 |
266 |
313 |
337 |
261 |
305 |
327 |
338 |
309 |
312 |
309 |
322 |
302 |
303 |
|
19 |
466 |
470 |
453 |
446 |
493 |
517 |
441 |
485 |
507 |
518 |
489 |
492 |
489 |
502 |
482 |
483 |
|
20 |
227 |
231 |
214 |
207 |
254 |
278 |
202 |
246 |
268 |
279 |
250 |
253 |
250 |
263 |
243 |
244 |
|
21 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
- |
Рисунок 5.2 - Динамика посещаемости
Также мной было выявлено среднее время пребывания в фитнес-центре, оно составило:
Tсред = 114 минут = 1 час 54 минуты
5.3 Реклама на дисплеях
Фитнес-центр оборудован большим количеством дисплеев, на которых мы решили показывать рекламу. Однако я пошел дальше и использовал метод таргетированной рекламы [15] (англ. targeting - наведение, цель). Метод основан на интеллектуальном принятии решения о том, какая реклама будет показана на дисплее в данный момент времени. Решение зависит исходя из понятий релевантности и структуры целевой аудитории.
Приведу пример: если мы знаем, что в данный момент времени в зале находятся молодые люди, которые занимаются наращиванием мышц - мы предлагаем им купить протеины и другие вещества для роста мышц.
Я разбил всю аудиторию на 2 части по половому признаку (мужчины и женщины) и еще на 2 части по возрастному признаку (молодежь 7-25 лет, взрослые от 25 лет). Таким образом я получил 4 категории людей (таблица 5.2).
Таблица 5.2 - Типы посетителей
Критерий |
Мужчины |
Женщины |
|
Молодежь |
ММ |
МЖ |
|
Взрослые |
ВМ |
ВЖ |
По данным исследований третьих лиц были выявлены базовые потребности для каждой группы:
1) Молодые мужчины (ММ) приходят в фитнес центр для набора массы, наращивания и придания рельефа мышцам), для аэробных упражнений по тренировке дыхательной системы.
Решение: такой аудитории система показывает: рекламу сухих порошков и смесей для роста мышц, протеины и витамины, спортивные напитки; рекламу записи к индивидуальному тренеру; рекламу записи в зал борьбы.
2) Взрослые мужчины (ВМ) занимаются кардио-упражнениями и упражнениями по укреплению мышц и суставов.
Решение: для них система выбирает рекламу сиропов для суставов, предлагает купить карсет и прочее дорогостоящее спорт-оборудование.
3) Молодые женщины (МЖ) работают на соблюдение стройной фигуры.
Решение: система показывает рекламы по записи на кружок шейпинга и аэробики.
4) Взрослые женщины (ВЖ) занимаются поддержанием стройной фигуры, сбрасывают лишний вес.
Решение: показывать им рекламу чаев и коктейлей для похудения, рекламу витаминов; рекламу записи на аква-аэробику; рекламу по продаже спортивного женского инвентаря.
Результат: такое решение повышает продажи (смесей, напитков, порт инвентаря), стимулирует спрос на запись (к тренеру, запись на борьбу, групповые и индивидуальные шейпинг тренинги). Все это повышает коммерческую эффективность предприятия.
Система выбирает, какую рекламу или серию рекламных слайдов показывать, исключительно основываясь на входных данных о текущих посетителях. Ниже представлен график (рисунок 5.3) распределения типов посетителей за день в целом, а также любопытный график распределения типов посетителей по часам (рисунок 5.4), сформированный на произвольную дату.
Рисунок 5.3 - Распределение посещений по группам посетителей за день
Ре-маркетинг (англ. re-marketing, reintroduce product, reignite interest) - новый термин, обозначающий только внедряющуюся в России технологию повторного привлечения бывших клиентов.
Схема работы: менеджер формирует отчет, выбирает только клиентов, чье действие абонемента уже закончилось, обзванивает таких клиентов, сообщая о старте новых услуг, либо о сезонных акциях на запись в фитнес-центр. Так как люди уже занимались спортом в данном фитнес-центре, есть большой шанс заинтересовать их, предложив скидку.
Рисунок 5.4 - Распределение посещений по группам посетителей по часам
5.4 Ре-маркетинг бывших клиентов
Расчет стоимости привлечения 1 клиента - очень важный показатель в оценке эффективности рекламной кампании или маркетингового плана в целом.
В системе имеется возможность получать данные о динамике регистраций по дням, неделям и месяцам. Зная дату начала рекламной кампании и дату ее завершения, а также зная общее количество регистраций новых карточек абонементов, можно рассчитывать стоимость привлечения каждого по формуле:
Cпк = Cрк / Nрег ,
5.5 Расчет стоимости привлечения клиентов
где Спк - затраты на привлечение 1 нового клиента;
Срк - затраты на проведение рекламной кампании;
Nрег - количество регистраций за период действия рекламной кампании.
На данный момент собранных данных недостаточно для расчета стоимости привлечения клиента. Поэтому далее приведу предполагаемый сценарий расчета эффективности маркетинга (рисунок 5.5) и распределение регистраций по типам рекламы (рисунок 5.6).
Исходя из полученных данных на 5 месяцев исследований можно сделать вывод, что затраты на аренду уличного баннера неоправданы. Что интернет-реклама наиболее эффективна по привлечению людей не только проживающий в районе фитнес-центра, но и людей, кто работает в этом районе.
Рисунок 5.5 - Предполагаемый график привлечения новых клиентов разными способами рекламы
Рисунок 5.6 - Распределение привлеченных новых клиентов по рекламным кампаниям
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1) Леоненков, А.В. Самоучитель UML [Текст] : пособие по разработке / А.В. Леоненков -- 2-е изд., пер. и доп. - СПб.: БХВ-Петербург, 2004. - 432 с.
2) Дерябкин, В.П. Проектирование информационных систем и программных комплексов [Текст] : Методические указания по оформлению курсовых и дипломных проектов / В.П. Дерябкин, Самарский. гос. арх.-строит. ун-т. / Самара, 2009. 74 с.
3) Олифер, В.Г. Компьютерные сети. Принципы, технологии, протоколы [Текст] : Учебное пособие / В.Г. Олифер, Н.А. Олифер -- Изд-во Питер, 2010. -- 943 c.
4) Система стандартов безопасности труда: [Сборник]. - М.: Изда-тельство стандартов, 2002. - 102 с.
ПРИЛОЖЕНИЕ
Руководство пользователя
Министерство образования и науки РФ
ФГБОУ ВПО «Самарский государственный архитектурно-строительный университет»
Факультет информационных систем и технологий
Кафедра прикладной математики и вычислительной техники
УТВЕРЖДАЮ |
||||||
Зав. кафедрой ПМиВТ (подпись) С.А.Пиявский |
Программный комплекс обеспечения пропускного режима в организации
Руководство администратора
02068389.40100.005.И3.01.1-1
Руководитель разработки
(подпись) С.А. Пиявский
Студент группы ГИП-108
(подпись) И.М. Афанасьев
А.1 Введение
А.1.1 Область применения
Разработанная информационная система электронных карт доступа предназначена для обеспечения пропуска по электронным магнитным картам доступа в фитнес-центр.
А.1.2 Краткое описание возможностей
Информационная система электронных карт доступа позволяет вести справочники абонементов, типов абонементов, площадок пользователей, групп пользователей, вести учет посещений, а так же формировать отчеты о посещаемости на выбранную дату.
А.1.3 Уровень подготовки пользователей
Пользователь информационной системы электронных карт доступа должен иметь опыт работы с ОС Linux, навык работы с браузером Firefox или любым другим браузером, а так же обладать следующими знаниями:
- знать соответствующую предметную область;
- знать и иметь навыки работы с аналитическими приложениями.
Квалификация пользователя должна позволять:
- вести полный список справочников системы;
- осуществлять анализ данных.
А.2 Назначение и условие применения
Разработанная информационная система предназначена для обеспечения пропуска по электронным магнитным картам доступа в фитнес-центр. Система гарантированно будет функционировать на ПК с конфигурацией указанной в пункте 1.9.5 первой главы. Так же необходимо постоянное Интернет-соединение.
А.3 Подготовка к работе
А.3.1 Необходимое программное обеспечение
Для работы с информационной системой электронных карт доступа необходимо следующее программное обеспечение:
- операционная система Linux;
- Forefox или любой другой Интернет-браузер.
А.3.2 Порядок проверки работоспособности
Открыть браузер Firefox. Для этого необходимо кликнуть по ярлыку «Firefox» на рабочем столе;
Убедиться, что в окне открылась информационная система электронных карт доступа.
А.4 Выполняемые функции и задачи
А.4.1 Описание операций
Информационная система электронных карт доступа выполняет функции и задачи, приведенные в таблице А.1.
Таблица А.1 - Функции и задачи, выполняемые системой
Функции |
Задачи |
Описание |
|
Формирование отчетов о посещаемости на дату |
Формирование отчета. |
Позволяет формировать отчеты на заданную дату. |
|
Ведение терминала |
Учет посещений фитнес-центра. |
Позволяет вести учет текущих посещений, фиксируя время начала и завершения посещения, площадку и ID пользователя. |
|
Продолжение таблицы А.1 |
|||
Ведение справочников. |
Ведение всевозможных справочников. |
Ведение справочников системы предоставляет пользователю добавлять удалять и изменять все данные в системе для стабильной работы системы, а так же ее улучшения. |
|
Связь клиент-тип абонемента |
Присваивать клиенту тип абонемента |
Данная операция позволяет присваивать клиенту тип абонемента. |
А.4.2 Описание операций технологического процесса обработки данных, необходимых для выполнения задач
A.4.2.1 Вход в систему
Для того чтобы войти в информационную систему, нужно пройти авторизацию, страница авторизации представлена на рисунке А.1.
В зависимости от того, под какими правами вы авторизуетесь:
- администратор;
- менеджер;
вы попадёте в тот или иной интерфейс системы.
А.4.2.2 Работа с интерфейсом администратора
Интерфейс администратора изображён на рисунке А.2. В его рамки входит редактирование справочников: абонементов, типов абонементов, площадок. Работа по настройке системы. На странице имеется главное меню с пунктами «Файловый менеджер», «Справочники», «Система», «Пользователи», «Выйти».
Рисунок А.1 - Страница авторизации системы
Рисунок А.2 - Интерфейс администратора
А.4.2.3 Работа со справочниками
Администратору открыт доступ для редактирования всех справочников системы: справочник типов абонементов, справочник площадок (рисунок А.3). А также формы добавления новых площадок (рисунок А.4).
Рисунок А.3 - Список площадок
Рисунок А.4 - Добавление новой площадки
А.4.2.4 Работа с пользователями
Администратор также имеет возможность работать с пользователями системы. Ему доступен список пользователей (рисунок А.5), форма добавления и редактирования новых пользователей (рисунок А.6), а также работа с группами пользователей (рисунок А.7).
Рисунок А.5 - Список пользователей системы
Рисунок А.6 - Форма добавления нового пользователя
Рисунок А.7 - Список типов пользователей
А.5 Аварийные ситуации
Ниже приведен список возможных аварийных ситуаций (таблица А.2).
Таблица А.2 - Аварийные ситуации
Класс ошибки |
Ошибка |
Описание ошибки |
Требуемые действия пользователя при возникновении ошибки |
|
Информационная система |
Сервер не найден. Невозможно отобразить страницу |
Возможны проблемы с сетью или с доступом к информационной системе |
Убедиться, что компьютер подключен к сети интернет. Обновить страницу |
|
Ошибка: Неверно введены имя пользователя или пароль |
При авторизации в системе неверно введены данные пользователя |
Ввести корректные имя пользователя и пароль |
||
Ошибка: Обязательное поле |
При вводе данных справочника некоторые поля должны быть обязательно заполнены |
Заполнить соответствующее поле информацией или поставить знак “-” |
||
Сбой в электропитании рабочей станции |
Нет электропитания рабочей станции или произошел сбой в электропитании. |
ПК выключился или перезагрузился |
Перезагрузить ПК. |
Министерство образования и науки РФ
ФГБОУ ВПО «Самарский государственный архитектурно-строительный университет»
Факультет информационных систем и технологий
Кафедра прикладной математики и вычислительной техники
УТВЕРЖДАЮ |
||||||
Зав. кафедрой ПМиВТ (подпись) С.А.Пиявский |
Программный комплекс обеспечения пропускного режима в организации
Руководство менеджера
02068389.40100.005.И3.01.1-1
Руководитель разработки
(подпись) С.А. Пиявский
Студент группы ГИП-108
(подпись) И.М. Афанасьев
А.6 Введение
А.6.1 Область применения
Разработанная информационная система электронных карт доступа предназначена для обеспечения пропуска по электронным магнитным картам доступа в фитнес-центр.
А.6.2 Краткое описание возможностей
Информационная система электронных карт доступа позволяет вести справочники абонементов, типов абонементов, площадок пользователей, групп пользователей, вести учет посещений, а так же формировать отчеты о посещаемости на выбранную дату.
А.6.3 Уровень подготовки пользователей
Пользователь информационной системы электронных карт доступа должен иметь опыт работы с ОС Linux, навык работы с браузером Firefox или любым другим браузером, а так же обладать следующими знаниями:
- знать соответствующую предметную область;
- знать и иметь навыки работы с аналитическими приложениями.
Квалификация пользователя должна позволять:
- вести полный список справочников системы;
- осуществлять анализ данных.
А.7 Назначение и условие применения
Разработанная информационная система предназначена для обеспечения пропуска по электронным магнитным картам доступа в фитнес-центр. Система гарантированно будет функционировать на ПК с конфигурацией указанной в пункте 1.9.5 первой главы. Так же необходимо постоянное Интернет-соединение.
А.8 Подготовка к работе
А.8.1 Необходимое программное обеспечение
Для работы с информационной системой электронных карт доступа необходимо следующее программное обеспечение:
- операционная система Linux;
- Forefox или любой другой Интернет-браузер.
А.8.2 Порядок проверки работоспособности
Открыть браузер Firefox. Для этого необходимо кликнуть по ярлыку «Firefox» на рабочем столе;
Ввести в адресную строку Firefox адрес: http://fitness.deltashadow.com/administrator и нажать «Enter».
Убедиться, что в окне открылась информационная система электронных карт доступа.
А.9 Выполняемые функции и задачи
А.9.1 Описание операций
Информационная система электронных карт доступа выполняет функции и задачи, приведенные в таблице А.3.
Таблица А.3 - Функции и задачи, выполняемые системой
Функции |
Задачи |
Описание |
|
Формирование отчетов о посещаемости на дату |
Формирование отчета. |
Позволяет формировать отчеты на заданную дату. |
|
Ведение терминала |
Учет посещений фитнес-центра. |
Позволяет вести учет текущих посещений, фиксируя время начала и завершения посещения, площадку и ID пользователя. |
|
Продолжение таблицы А.2 |
|||
Ведение справочников. |
Ведение всевозможных справочников. |
Ведение справочников системы предоставляет пользователю добавлять удалять и изменять все данные в системе для стабильной работы системы, а так же ее улучшения. |
|
Связь клиент-тип абонемента |
Присваивать клиенту тип абонемента |
Данная операция позволяет присваивать клиенту тип абонемента. |
А.9.2 Описание операций технологического процесса обработки данных, необходимых для выполнения задач
A.9.2.1 Вход в систему
Для того чтобы войти в информационную систему, нужно пройти авторизацию, страница авторизации представлена на рисунке А.8.
Рисунок А.8 - Страница авторизации системы
В зависимости от того, под какими правами вы авторизуетесь:
- администратор;
- менеджер;
вы попадёте в тот или иной интерфейс системы.
А.9.2.2. Работа с интерфейсом менеджера
Интерфейс менеджера изображён на рисунке А.9. В нем имеется доступ к разделам: «Терминал» и «Отчеты».
Рисунок А.9 - Интерфейс менеджера
А.9.2.3 Работа с терминалом
Терминал - это система, фиксирующая все посещения финтес-центра. Для управления посещаемостью менеджер выбирает пункт меню «Терминал» (рисунок А.10).
Рисунок А.10 - Терминал посещений
Далее менеджер нажимает кнопку «Добавить посещение» и попадает на страницу добавления посещения (рисунок А.11). Система изначально настроена на реальную работу в спортивном центре, поэтому при добавлении посещения автоматически берется текущая дата и время. Это нужно для того, чтобы отслеживать точное время входа посетителя в фитнес-центр.
С помощью кнопки «Закрыть» менеджер может закрывать посещения. При этом будет установлена текущая точная дата выхода человека из фитнес-центра.
На рисунке А.12 показана форма формирования отчетов о посещаемости на заданную дату.
Рисунок А.11 - Форма добавления посещения
Для просмотра списка держателей карт (далее клиентов) нужно выбрать пункт меню «Справочники > Список клиентов» (рисунок А.12). В списке показаны все клиенты в системе а также такая информация, как: ID карточки, имя, фамилия, тип абонемента.
Чтобы добавить нового клиента в систему требуется нажать кнопку «Добавить». Далее откроется форма добавления нового клиента (рисунок А.13).
Рисунок А.12 - Список клиентов
Рисунок А.13 - Форма добавления нового клиента
А.9.2.4 Отчеты
Менеджер может создавать и просматривать всевозможные отчеты, показывающие эффективность работы фитнес-центра, например отчет о посещаемости (рисунок А.14) и отчет по группам клиентов (рисунок А.15), который показывает процентное распределение аудитории предприятия по полу и возрасту.
Рисунок А.14 - Форма формирования отчетов
Рисунок А.15 - Графические отчеты
А.10 Аварийные ситуации
Ниже приведен список возможных аварийных ситуаций (таблица А.4).
Таблица А.4 - Аварийные ситуации
Класс ошибки |
Ошибка |
Описание ошибки |
Требуемые действия пользователя при возникновении ошибки |
|
Информационная система |
Сервер не найден. Невозможно отобразить страницу |
Возможны проблемы с сетью или с доступом к информационной системе |
Убедиться, что компьютер подключен к сети интернет. Обновить страницу |
|
Ошибка: Неверно введены имя пользователя или пароль |
При авторизации в системе неверно введены данные пользователя |
Ввести корректные имя пользователя и пароль |
||
Ошибка: Обязательное поле |
При вводе данных справочника некоторые поля должны быть обязательно заполнены |
Заполнить соответствующее поле информацией или поставить знак “-” |
Листинг основных модулей информационной системы
Б.1 Модуль noxSystem.class
<?php
class noxSystem
{
/**
* Объект управления загрузкой файлов
* @var noxAutoLoader
*/
public static $autoLoader = false;
/**
* Объект управления пользователями
* @var noxUserControl
*/
public static $userControl = false;
/**
* Полный адрес с доменом
*
* @var string
*/
public static $fullUrl = '/';
/**
* Домен запрашиваемого сайта без www
*
* @var string
*/
public static $domain = '';
/**
* Весь URL запрос с параметрами
*
* @var string
*/
public static $requestUrl = '/';
/**
* Путь к файлу/папке из URL без параметров
*
* @var string
*/
public static $requestPath = '/';
/**
* Адрес, где расположен движок
*
* @var string
*/
public static $baseUrl = '';
/**
* Адрес модуля из главного маршрутизатора
*
* @var string
*/
public static $moduleUrl = '/';
/**
* Корневая папка модуля
*
* @var string
*/
public static $moduleFolder = '/';
/**
* Адрес действия во внутреннем маршрутизаторе
*
* @var string
*/
public static $actionUrl = '/';
/**
* Массив параметров
*
* @var array
*/
public static $params = array();
/**
* Массив элементов строки запроса
*
* @var string
*/
public static $urlArray = array();
/**
* Ajax запрос?
*
* @var bool
*/
public static $ajax = false;
/**
* Безопасный запрос
*
* Если пользователь пришел с этого же сайта, то безопасный
*
* @var bool
*/
public static $safeReferer = false;
/**
* Имя темы для вывода
* @var string
*/
public static $theme = '';
/**
* Папка темы для вывода
* @var string
*/
public static $themeFolder = '';
/**
* Переводит адрес в массив
*
* @param string $url адрес
* @return array
*/
public static function parseUrl($url)
{
//Декодируем URL -> раскладываем на массив ->
//фильтруем пустые элементы -> преобразуем индексы
return array_values(explode('/', trim(urldecode($url), '/')));
}
/**
* Преобразовывает массив в URL
*
* @param array $array массив
* @param int $start номер начального элемента
* @param int $count количество элементов
* @return string строка
*/
public static function buildUrl($array = false, $start = null, $count = null)
{
//Если масссив не задан
if ($array === false)
{
//Берем текущий массив URL
$array = self::$urlArray;
}
//Обрезаем массив
$t = array_slice($array, $start, $count);
//Преобразуем в строку
if (!$t)
{
return '/';
}
else
{
return '/' . implode('/', $t);
}
}
/**
* Запускает весь процесс работы движка
*/
public static function run()
{
//Начинаем отчет времени
$GLOBALS['statistic']['time'] = microtime(true);
$GLOBALS['statistic']['dbQueries'] = 0;
//Устанавливаем настройки PHP
//Отображаем все ошибки
error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', 1);
//Сессии
ini_set('session.use_cookies', 0);
ini_set('session.use_only_cookies', 1);
ini_set('session.use_trans_sid', 0);
//Настройки
ini_set('magic_quotes_runtime', 0);
ini_set('magic_quotes_sybase', 0);
ini_set('magic_quotes_gpc', 0);
ini_set('allow_url_include', 0);
//Настройка кодировки
mb_internal_encoding('UTF-8');
mb_http_output('UTF-8');
//Стандартные заголовки
header("Content-type: text/html; charset=utf-8", true);
try
{
//Загружаем стандартное исключение
require_once(noxRealPath('nox-system/exception/noxException.class.php'));
//Загружаем класс кэширования
require_once(noxRealPath('nox-system/cache/noxSystemCache.class.php'));
//Загружаем автозагрузчик классов
require_once(noxRealPath('nox-system/autoload/noxAutoLoader.class.php'));
//Загружаем класс работы с датами
require_once(noxRealPath('nox-system/date/noxDate.class.php'));
//Автозагрузчик
self::$autoLoader = new noxAutoLoader();
//Загружаем настройки дат
noxDate::updateConfig();
//Задаем локаль по-умолчанию
$config = noxConfig::getConfig();
noxLocale::$locale = $config['defaultLocale'];
//Если не режим отладки
if (!$config['debug'])
{
//Отображаем только ошибки
error_reporting(E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR);
ini_set('display_errors', 1);
}
//Создаем объект управления пользователями
self::$userControl = new noxUserControl();
/****************************
* Чтение URL
****************************/
//Читаем домен
self::$domain = $_SERVER['SERVER_NAME'];
//Base URL
//TODO: Как определяется baseURL
self::$baseUrl = trim(dirname($_SERVER['SCRIPT_NAME']), '\\/');
if (empty(self::$baseUrl))
{
self::$baseUrl = '';
} else
{
self::$baseUrl = '/'.self::$baseUrl;
}
//Берем URL с параметрами
//Если есть параметр url берем с него
self::$requestUrl = self::$requestPath = rtrim(urldecode($_SERVER['REQUEST_URI']), '/');
self::$requestUrl = self::$requestPath = substr(self::$requestUrl, strlen(self::$baseUrl));
if (empty(self::$requestUrl))
{
self::$requestUrl = self::$requestPath = '/';
}
//Полный адрес
self::$fullUrl =
((empty($_SERVER['HTTPS']) || ($_SERVER['HTTPS'] == 'off')) ? 'http://' : 'https://') .
self::$domain .
self::$baseUrl.
self::$requestUrl;
//Получаем URL без параметров
$i = strpos(self::$requestPath, '?');
if ($i > 0)
{
self::$requestPath = '/'.trim(substr(self::$requestPath, 0, $i), '/');
}
//Массив URL
self::$urlArray = self::parseUrl(self::$requestPath);
//Защита от magic quotes
if (@get_magic_quotes_gpc()) {
function stripslashes_gpc(&$value)
{
$value = stripslashes($value);
}
array_walk_recursive($_GET, 'stripslashes_gpc');
array_walk_recursive($_POST, 'stripslashes_gpc');
array_walk_recursive($_COOKIE, 'stripslashes_gpc');
array_walk_recursive($_REQUEST, 'stripslashes_gpc');
}
//Сохраняем GET и POST массивы в параметры
self::$params['get'] = $_GET;
self::$params['post'] = $_POST;
self::$params['requestMethod'] = $_SERVER['REQUEST_METHOD'];
//Ajax запрос?
self::$ajax = (isset($_SERVER['HTTP_X_REQUESTED_WITH']) &&
!empty($_SERVER['HTTP_X_REQUESTED_WITH']) &&
strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest');
self::$params['ajax'] = self::$ajax;
//Проверяем откуда пришел пользователь
if (isset($_SERVER['HTTP_REFERER']) && !empty($_SERVER['HTTP_REFERER']))
{
$ref = $_SERVER['HTTP_REFERER'];
$server_add =
((empty($_SERVER['HTTPS']) || ($_SERVER['HTTPS'] == 'off')) ? 'http://' : 'https://').self::$domain;
self::$safeReferer = !(bool)(substr_compare($ref, $server_add, 0, strlen($server_add)));
self::$params['safeReferer'] = self::$safeReferer;
}
//Создаем приложение
$userApplicationPath = noxRealPath('nox-config/application.class.php');
if (file_exists($userApplicationPath))
{
include(noxRealPath('nox-config/application.class.php'));
if (class_exists('application', false))
{
$application = new application();
} else
{
$application = new noxApplication();
}
} else
{
$application = new noxApplication();
}
//Запускаем
$application->run();
//self::$route['statusCode'] = $statusCode;
//_d(self:: getUser());
//_d(self::dump());
//Закрываем все открытые соединения с БД
noxDbConnector::closeAll();
} catch (Exception $e)
{
header("Content-type: text/html; charset=utf-8", true);
print $e;
}
//_d(noxSystem::dump());
//_d($_SERVER);
$GLOBALS['statistic']['time'] = microtime(true)-$GLOBALS['statistic']['time'];
//_d($GLOBALS['statistic']);
}
/**
* Выполняет немедленный переход по адресу и прекращает выполнение скриптов
*
* @param string $url адрес для перехода
* @param string $str сообщение о перенаправлении
*/
public static function location($url = '', $str = "Перенаправление...")
{
if ($url == '')
{
$url = self::$fullUrl;
} elseif (is_array($url))
{
$url = self::$baseUrl . '/' . implode('/', $url);
} else
{
if ($url[0] == '/')
{
$url = self::$baseUrl . $url;
}
}
header("Location: " . $url);
exit($str);
}
/**
* Выполняет немедленный переход на предыдущую страницу и прекращает выполнение скриптов
*
* @param string $str сообщение о перенаправлении
*/
public static function locationBack($str = "Перенаправление...")
{
$url = self::$fullUrl;
if (empty($_SERVER['HTTP_REFERER']) or ($_SERVER['HTTP_REFERER'] == ($url)))
{
self::location('/', $str);
} else
{
self::location($_SERVER['HTTP_REFERER'], $str);
}
}
/**
* Переход по адресу через указанное кол-во времени
*
* @param string $url адрес для перехода
* @param int $time время в секундах, спустя которое произойдет перенаправление
* @param string $str сообщение о перенаправлении
*/
public static function locationAfterTime($url = '', $time = 5, $str = '')
{
if ($url == '')
{
$url = self::$fullUrl;
} elseif (is_array($url))
{
$url = self::$baseUrl . '/' . implode('/', $url);
} else
{
if ($url[0] == '/')
{
$url = self::$baseUrl . $url;
}
}
header("Refresh:{$time}; url=" . $url);
if ($str)
{
exit($str);
}
}
/**
* Авторизует пользователя
* @static
* @return bool Результат авторизации
*/
public static function authorization()
{
return self::$userControl->authorization();
}
/**
* Возвращает модель пользователя
* @static
* @return noxUserModel
*/
public static function getUserModel()
{
return self::$userControl->getUserModel();
}
/**
* Возвращает ID темущего пользователя
*
* @static
* @return int
*/
public static function getUserId()
{
return self::$userControl->getUserId();
}
/**
* Возвращает массив с данными текущего пользователя
* @static
* @return array
*/
public static function getUser()
{
return self::$userControl->getUser();
}
/**
* Проверяет, является ли пользователь членом группы
*
* @param $group_id
* @param int $user_id 0 для текущего пользователя
* @return bool
*/
public static function userInGroup($group_id, $user_id=0)
{
return self::$userControl->userInGroup($group_id, $user_id);
}
/**
* Проверяет, имеет ли пользователь право
*
* @param string $module модуль, которому необходимо право
* @param string $right идентификатор права
* @return bool
*/
public static function haveRight($module, $right)
{
return self::$userControl->haveRight($module, $right);
}
/**
* Возвращает дамп переменных системы (в основном маршрутизация)
*
* @static
* @return string
*/
public static function dump()
{
return
'Full URL: ' . htmlspecialchars(self::$fullUrl) . "\n"
. 'Base URL: ' . htmlspecialchars(self::$baseUrl) . "\n"
. 'Request URL: ' . htmlspecialchars(self::$requestUrl) . "\n"
. 'Request Path: ' . htmlspecialchars(self::$requestPath) . "\n"
. 'Module URL: ' . htmlspecialchars(self::$moduleUrl) . "\n"
. 'Action URL: ' . htmlspecialchars(self::$actionUrl) . "\n"
. 'Params: ' . _d(self::$params, true) . "\n"
. 'Module Folder: ' . htmlspecialchars(self::$moduleFolder) . "\n";
}
/**
* Возвращает массив со статистикой движка
*
* @static
* @return mixed
*/
public static function getStatistic()
{
//Заканчиваем отчет времени
$GLOBALS['statistic']['time'] = microtime(true) - @$GLOBALS['statistic']['time'];
//Вывод статистики
//_d($GLOBALS['statistic']);
return $GLOBALS['statistic'];
}
}
/*
Дополнительные функции
*/
/**
* Выводит или возвращает значение переменной в теге <pre>
*
* @param mixed $var переменная
* @param bool $return возвращать или выводить результат
* @return string
*/
function _d($var, $return = false)
{
$text = print_r($var, true);
if (!$return)
{
$text = htmlspecialchars($text);
}
if (!$return)
{
echo '<pre class="debug">' . $text . '</pre>';
}
return $text;
}
/**
* Форматирует размер файла
*
* @param int $bytes размер в байтах
* @return string
*/
function noxFormatBytes($bytes)
{
if ($bytes < 1024)
{
return $bytes . ' B';
}
elseif ($bytes < 1048576)
{
return round($bytes / 1024, 2) . ' KB';
}
elseif ($bytes < 1073741824)
{
return round($bytes / 1048576, 2) . ' MB';
}
elseif ($bytes < 1099511627776)
{
return round($bytes / 1073741824, 2) . ' GB';
}
else
{
return round($bytes / 1099511627776, 2) . ' TB';
}
}
/**
* Возвращает параметр $var с приведением к типу $default и его значением
* @param mixed $var Параметр
* @param mixed $default Значение по-умолчанию
* @return mixed
*/
function getParam($var, $default = 0)
{
settype($var, gettype($default));
if (!$var)
{
return $default;
} else
{
return $var;
}
}
/**
* Преобразует относительный путь от корня сайта в абсолютный
* @param $path
* @return string
*/
function noxRealPath($path)
{
static $realpath = '';
if (!$realpath)
{
$realpath = str_replace('\\', '/', realpath(dirname(__FILE__) . '/..')) . '/';
}
$path = str_replace('\\', '/', trim($path, '\//'));
return $realpath . $path;
}
?>
Набор диаграмм проекта
В.1 Диаграммы проекта
На рисунках В.1, В.2, В.3, В.4, В.5 и В.6 показаны потребовавшиеся мне для моделирования системы схемы UML.
Рисунок В.2 - Диаграмма вариантов использования
Рисунок В.2 - Диаграмма сущностных классов
Рисунок В.3 - Диаграмма классов управления
Рисунок В.4 - Диаграмма граничных классов
Рисунок В.5 - Диаграмма компонентов
Рисунок В.6 - Диаграмма развертывания
Набор документов
Г.1. Акт о внедрении
На рисунке Г.1 показан акт о внедрении за подписью Алферова Романа Валерьевича - текущего генерального директора компании ООО «РУСПОРТИНГ», которая является оператором стадиона «Янтарь».
Рисунок Г.1 - Акт о внедрении системы
Г.2. Мои грамоты и дипломы
Ниже на рисунках Г.2, Г.3, Г.4 и Г.5 представлены мои грамоты.
Рисунок Г.2 - Диплом 1 место конференции СГАСУ
Рисунок Г.3 - Диплом 1 степени конференции СГАСУ
Рисунок Г.4 - Диплом 1 степени конференции «ЮНК» (Подмосковье)
Рисунок Г.5 - Свидетельство конференции «Шаг в будущее» (МГТУ им. Баумана, Москва)
Безопасность жизнедеятельности
Д.1 Пожарная безопасность на предприятии
В рамках обеспечения пожарной безопасности, являющейся неотъемлемой частью охраны труда, исключается воздействие на работников и имущество юридического лица факторов, сопутствующих возникновению пожара.
Пожарная безопасность подразумевает разработку политики предприятия по недопущению возникновения и развития пожара, направленную на решение следующего круга задач:
- реализацию комплекса мероприятий, направленных на ограничение распространения пожара;
- обеспечение объектов средствами пожарного контроля, оповещения сотрудников предприятия о возникновении нештатной ситуации и непосредственного пожаротушения;
- принятие организационных мер, направленных на контроль над соблюдением сотрудниками нормативных требования ПБ;
- повышение уровня информированности работников и должностных лиц о мерах по обеспечению пожарной безопасности;
- организацию и проведение производственного контроля.
Обеспечение пожарной безопасности неразрывно связано с соблюдением основных нормативных требований в сфере ТБ и принятием инструкции по пожарной безопасности, действующей в рамках предприятия.
Инструкция по пожарной безопасности разрабатывается, исходя из специфических особенностей производственных объектов, техпроцессов, используемого оборудования, материалов и уровня экологической безопасности.
Инструкция о мерах ПБ в общем случае охватывает следующие вопросы:
- комплекс мер, направленных на обеспечение ПБ в ходе проведения техпроцессов, включая пожароопасные работы, и работе с производственным оборудованием и материалами;
- условия перевозки и хранения взрыво- и пожароопасных материалов;
- порядок обустройства прилегающей к производственным объектам территории, организации рабочих мест, мест для курения и путей для эвакуации;
- условия поведения работ при наличии открытого пламени;
- места хранения спецодежды и средств индивидуальной защиты на случай возникновения нештатной ситуации;
- критические показания измерительных приборов, свидетельствующие о появлении риска возникновения пожара.
Обеспечение пожарной безопасности в школе характеризуется ужесточением контроля над уровнем информированности о правилах поведения при пожаре и их точным соблюдением. В рамках поддержания пожарной безопасности в школе и детском саду особое внимание также необходимо уделить оборудованию объектов системами первичного пожаротушения и использованию специальных средств, обеспечивающих ориентирование по пути эвакуации в отсутствии освещения.
Обеспечение пожарной безопасности является обязательным шагом перед организацией аттестации рабочих мест и сертификации работ по охране труда, дающей право на получение скидки к тарифам социального страхования.
Размещено на Allbest.ru
Подобные документы
Средства обеспечения информационной безопасности. Возможные каналы утечки информации. Защита данных с помощью шифрования. Обзор видов технических устройств, защищающих системы, и принцип их действия. Программно-аппаратный комплекс средств защиты.
курсовая работа [475,7 K], добавлен 01.03.2015Программные средства защиты от вредоносного программного обеспечения, основные требования к ним, оценка возможностей и функциональности. Системы обнаружения вторжения. Анализ средств защиты информации на предприятии. Политика корпоративной безопасности.
дипломная работа [1,2 M], добавлен 17.10.2015Анализ предметной области, формулировка общих и специальных требований к информационной системе с адаптивным интерфейсом. Разработка структур данных, программного обеспечения, модуля бизнес-логики, клиентского приложения; администрирование сервера.
дипломная работа [2,5 M], добавлен 20.07.2014Разработка программного обеспечения для реализации криптографической защиты информации. Обоснование выбора аппаратно-программных средств. Проектирование модели информационных потоков данных, алгоритмического обеспечения, структурной схемы программы.
дипломная работа [2,0 M], добавлен 10.11.2014Проектирование программного модуля: сбор исходных материалов; описание входных и выходных данных; выбор программного обеспечения. Описание типов данных и реализация интерфейса программы. Тестирование программного модуля и разработка справочной системы.
курсовая работа [81,7 K], добавлен 18.08.2014Функционально-модульная структура программного обеспечения контроллера домофона. Электронная схема электронного замка, модуля микрофона и динамика. Выбор комбинированного источника питания. Разработка программного модуля. Программа управления домофоном.
курсовая работа [484,7 K], добавлен 29.03.2017Методы защиты программного обеспечения, их оценка и анализ защищенности. Методы свершенствования подсистемы защиты информации от вредоносного программного обеспечения. Перечень сведений конфиденциального характера организации ООО "СтройСпецКомплект".
дипломная работа [1,9 M], добавлен 10.07.2015Обоснование необходимости систем управления базами данных на предприятиях. Особенности разработки программного обеспечения по управлению базой данных, обеспечивающего просмотр, редактирование, вставку записей базы данных, формирование запросов и отчетов.
курсовая работа [1,5 M], добавлен 23.01.2010Принципы автоматизации делопроизводства. Общие понятия документооборота. Проектирование программного обеспечения. Стадии и этапы создания информационных систем, средства их разработки. Анализ алгоритмов работы с базой данных, разработка интерфейса.
дипломная работа [3,4 M], добавлен 07.11.2015Чем отличается программист от системного администратора. Преимущества и выгоды от работы системного администратора. Подготовка и сохранение резервных копий данных, их периодическая проверка и уничтожение. Конфигурирование нового программного обеспечения.
реферат [23,4 K], добавлен 11.03.2014