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

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 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

...

Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.