Единая информационная система для школ дополнительного образования (на примере спортивных школ художественной гимнастики)
Проектирование базы данных, содержащей информацию о школах художественной гимнастики. Разработка рабочего места администратора для ввода и корректирования содержания сайта. Создание каркаса сайта для пользователей. Информационная структура web-приложения.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 15.03.2013 |
Размер файла | 6,2 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Содержание
- Введение
- 1. Постановка задачи
- 2. Модель социальной сети для дополнительного образования
- 2.1 Общее представление социальной сети для дополнительного образования
- 2.2 Информационная модель спортивных школ по художественной гимнастики
- 3. Информационная среда и инструментарии
- 4. Общая структура системы «Школа художественной гимнастики»
- 4.1 Интерфейс
- 4.2 Раздел администратора
- 5. Информационная структура web-приложения
- 5.1 База данных. Введение в понятие базы данных
- 5.2 Проблемы задачи и их решения
- 6. Актуальность и сравнение с аналогами
- Заключение
- Литература и источники
- Приложения
- Листинги программ
- Содержание базы данных
Введение
В современную общественно-производительную деятельность активно внедряются информационные технологии, позволяющие получать необходимую информацию, управлять процессами и производством в различных сферах деятельности человеческого общества.
Ввиду такой современной тенденции, основательно начала прокладывать себе дорогу разработка компании Microsoft «Облачные вычисления». Cегодня объемы обрабатываемой информации, память которая должна выделятся под определенные процессы, производимые различными системами принимают зачастую достаточно огромные размеры. Что вынуждало ранее, синхронизировать процессы. Теперь же с появление «Облачных вычислений» можно не задумываться о нехватке памяти, под те или иные задачи. Все процессы, с помощью данной разработки, можно совершать в удаленном доступе, т.е. теперь даже самые сложные, требующие огромного количества памяти, энергетических затрат и специальной установки программного обеспечения задачи, можно решать просто на обычном компьютере не обращая внимания на все эти тонкости. Облачные вычисления предоставляют пользователю удаленный сервер, на котором можно найти все необходимые вам условия и услуги.
Например, каждый из нас, практически каждый день, пользуется программами для редактирования текста. Теперь с помощью облаков можно без установки соответствующего ПО редактировать текст, составлять презентации в режиме он-лайн в Интернете (Документы Google - Google Docs). Это все те же самые редакторы (Word, Exel и т.д.) установленные на удаленном сервере и находятся в свободном пользовании.
Также данную структуру, мы ежедневно наблюдаем в социальных сетях, на сайтах госучреждений, образовательных учреждений, в сфере банковских услуг, в Интеренет-магазинах. Вся информация этих систем хранится в базе данных и все запросы которые мы создаем, при использовании этих web-приложений, производятся на все том же удаленном сервере, а пользуемся мы обычным домашним компьютером.
Сейчас всеми активно используются Интернет магазины (www.ebay.com).
Поэтому подробнее можно рассмотреть вышеописанную систему, на данном примере. Посетив страницы Интернет-магазина, мы обычно видим список предлагаемых товаров с их описанием и фотографиями. Если каталог формируется просто с помощью обычной HTML страницы, тогда каждый раз при изменение свойств товаров: цен, количества, наличия; необходимо было бы переписывать и корректировать все это вручную в коде. Но Интернет уже дано начал перерастать стадию сайтов (статичных страницу), поэтому все чаще в здесь встречаются полноценные web-приложения. Данные таких систем хранятся и обрабатываются на удаленном сервере, при этом редактирование администратор производит в режиме он-лайн со своего компьютера. Для систематизации и интерактивности работы web-приложений сейчас пользуются либо такими системами управления как Joomla! (система управления содержимым, написанная на языках PHP и JavaScript, использующая в качестве хранилища базу данных MySQL. И является свободным программным обеспечением, распространяемым под лицензией GNU GPL). Либо прописывают аналогичную структуру самостоятельно, как в нашем случае. Итак, если вместо варианта с HTML страничкой хранить данные о товаре в базе данных, то появится возможность менять содержимое страниц в режиме реального времени, сразу после внесенных в базу новых данных о товаре.
Интерактивность и легкость заполнения позволяет сократить время и деньги при работе с web-приложением. Так как нет необходимости заводить специального администратора сайта и платить ему лишние деньги за работу. Любой секретарь сможет без особого труда загрузить информацию на сайт.
В свете вышеописанных преобразований в сфере информационных технологий и грядущих событий в области спорта нашего города. Возникло идея создания информационной системы для школ дополнительного образования, на примере школы художественной гимнастики. Появление такого web-приложения должно быть весьма актуально в преддверии проведения Универсиады.
1. Постановка задачи
Для обеспечения работы web-приложения автоматизирующего доступ к информации о спортивных школах по художественной гимнастике необходимо:
1. Разработать БД содержащую информацию о школах художественной гимнастики в целом, т.е. общие сведения о школе, информация о сотрудниках, учащихся и соревнованиях проходимых в конкретном виде спорта и т.д..
2. Создать и реализовать рабочее место администратора для ввода и корректирования содержания сайта.
3. Разработать каркас информационного сайта для пользователей, на основе которого из имеющейся информации в базе воссоздаются, при выборе определенной школы конкретного региона, свои страницы, относящиеся только к выбранной школе. Т.е. на один и тот же каркас для разных школ загружается разная информация.
4. Внедрить его в активное пользование школы дополнительного образования.
Для разработки приложения должны были использоваться наиболее популярные, материально доступные, средства находящиеся в сводном пользовании.
2. Модель социальной сети для дополнительного образования
Спортивная школа художественной гимнастики, на примере которой было разработано web-приложение, входит в систему дополнительного образования. Следовательно, далее стоит рассмотреть саму структуру дополнительного образования и положение, которое занимают спортивные школы в данной системе образования.
Система дополнительного образования содержит следующие учебные учреждения:
1. музыкальные школы;
2. спортивные школы;
3. художественные школы;
4. центры технического творчества;
5. центры туризма и экскурсий;
6. экологические центры и т.д.
Эти учреждения имеют много общего и свою специфику в организации процесса работы.
По организации работы
- в них проходит процесс обучения;
- свои специфические формы проведения практических занятий;
- проведение системы конкурсов, стимулирующих процесс обучения;
- система оценок эффективности работы преподавателей.
2.1 Общее представление социальной сети для дополнительного образования
В данной системе участвуют шесть категорий людей:
1. ученики, получающие знания и навыки в определенной сфере;
2. преподаватели, проводящие процесс обучения;
3. администрация, контролирующая и стимулирующая процесс дополнительного образования;
4. родители, определяющие потребности ученика;
5. государство-экономика, заинтересованные в развитии данного вида деятельности и обеспечивающего как финансово, так и материально;
6. интересующиеся данным видом спорта.
Для обеспечения эффективной работы необходима:
- информационная поддержка учебно-методического содержания процесса обучения, что позволяет ученикам и родителям эффективно организовать посещение занятий;
- Отражать информацию о прохождении и результатах конкурсов, в которых участвуют ученики, чтобы ученики и родители имели общее представление о подготовке спортсменов, адекватно оценивали полученные результаты и планировали развитие ученика;
- показывать заслуги преподавателей-тренеров, для того, чтобы родители понимали какие перспективы есть у ребенка при работе сданным тренером, и чтобы администрация могла правильно оценить заслуги наставника.
2.2 Информационная модель спортивных школ по художественной гимнастики
Для обеспечения эффективной работы спортивной школы по художественной гимнастики необходимо отражение следующего вида информации:
- Общая структура спортивной школы;
- Состав педагогического коллектива:
- квалификация тренеров-учителей,
- заслуги тренеров,
- список наиболее результативных спортсменов-воспитанников;
- Расписание работы школы;
- Списки учеников с их заслугами;
- Классный журнал, отражающий сведения о подготовке ученика, его посещаемости и текущих результатах;
- Информация о соревнованиях:
- сведения о будущих соревнованиях,
- информация о прошедших соревнованиях,
- информация о результатах учеников спортивной на прошедших соревнованиях;
- и т.д.
Эту систему можно приготовить в комплексе однотипных спортивных школ, чтобы иметь представление о подготовке спортсменов в разных регионах и для сравнения результативности школ.
3. Информационная среда и инструментарии
HTML
HTML (HyperText Markup Language, язык разметки гипертекста) - стандартный язык разметки документов во Всемирной паутине. Большинство web-страниц создаются при помощи языка HTML (или XHTML). Язык HTML интерпретируется браузером и отображается в виде документа, в удобной для человека форме.
HTML - это язык верстки, которая определяет, как и какие элементы должны располагаться на web-странице. Информация на странице, способ ее представления и оформления зависят исключительно от разработчика и тех целей, которые он перед собой ставит.
CSS
Стилем или CSS (Cascading Style Sheets, каскадные таблицы стилей) называется набор параметров форматирования, который применяется к элементам документа, чтобы изменить их внешний вид. Возможность работы со стилями издавна включают в развитые издательские системы и текстовые редакторы, тем самым позволяя одним нажатием кнопки придать тексту заданный, заранее установленный вид. Теперь это доступно и создателям сайта, когда цвет, размеры текста и другие параметры хранятся в определенном месте и легко «прикручиваются» к любому тегу. Еще одним преимуществом стилей является то, что они предлагают намного больше возможностей для форматирования, чем обычный HTML.
CSS представляет собой мощную систему, расширяющую возможности дизайна и верстки web-страниц.
PHP
PHP - это широко используемый язык сценариев с открытым исходным кодом. То есть, PHP это язык программирования, специально разработанный для написания web-приложений (сценариев), исполняющихся на Web-сервере.
Синтаксис языка берет начало из C, Java и Perl. PHP достаточно прост для изучения. Преимуществом PHP является предоставление web-разработчикам возможности создания динамически генерируемых web-страниц.
Важным преимуществом языка PHP перед такими языками, как языков Perl и C заключается в возможности создания HTML документов с внедренными командами PHP.
Значительным отличием PHP от какого-либо кода, выполняющегося на стороне клиента, например, JavaScript, является то, что PHP-скрипты выполняются на стороне сервера. Вы даже можете сконфигурировать свой сервер таким образом, чтобы HTML-файлы обрабатывались процессором PHP, так что клиенты даже не смогут узнать, получают ли они обычный HTML-файл или результат выполнения скрипта.
PHP позволяет создавать качественные Web-приложения за очень короткие сроки, получая продукты, легко модифицируемые и поддерживаемые в будущем.
PHP прост для освоения, и вместе с тем способен удовлетворить запросы профессиональных программистов.
Язык PHP постоянно совершенствуется, и ему обеспечено долгое доминирование в области языков web -программирования, по крайней мере, в ближайшее время.
JavaScript
JavaScript -- объектно-ориентированный скриптовый язык программирования.
JavaScript обычно используется как встраиваемый язык для программного доступа к объектам приложений. Наиболее широкое применение находит в браузерах как язык сценариев для придания интерактивности web-страницам.
Основные архитектурные черты: динамическая типизация, слабая типизация, автоматическое управление памятью, прототипное программирование, функции как объекты первого класса.
NetBeans
NetBeans IDE -- свободная интегрированная среда разработки приложений (IDE) на языках программирования Java, JavaFX, Python, PHP, JavaScript, C++, Ада и ряде других.
MySQL
MySQL -- свободная система управления базами данных (СУБД).
Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей. Более того, СУБД MySQL поставляется со специальным типом таблиц EXAMPLE, демонстрирующим принципы создания новых типов таблиц. Благодаря открытой архитектуре и GPL-лицензированию, в СУБД MySQL постоянно появляются новые типы таблиц.
DreamCoder
DreamCoder для MySQL - это отличная программа для управления базами данных сервера MySQL. Программа идеальна для людей, которые только начинают изучать базы данных, и кому нужны базовые серверные функции.
DreamCoder для MySQL улучшает продуктивность и упрощает работу с базами данных. Программа имеет дружественный пользовательский интерфейс.
DreamCoder для MySQL работает со всеми версиями MySQL и поддерживает все функции MySQL включая планшеты, просмотры, процедуры, триггеры, расписания, InnoDB, UDFS, большие двоичные объекты и многое другое. Также включены более продвинутые функции, такие как работа с информацией, работа и экспортирование скриптов.
SQLyog
SQLyog -- это графический интерфейс пользователя для популярной системы реляционных баз данных MySQL. Программа создана компанией Webyog Softworks Pvt. Ltd.
Главные функции SQLyog:
· Конструктор запросов (доступен в BETA версии)
· Умное автозавершение
· Интеллектуальное дополнение кода
· Туннелирование HTTP и HTTPS
· Туннелирование SSH
· Соединения
· Инструмент миграции в виде wizard.
· Полноценная поддержка Юникода.
Denwer
Денвер (от сокр. Д.н.w.р -- джентльменский набор Web-разработчика) -- набор дистрибутивов и программная оболочка, предназначенные для создания и отладки сайтов (веб-приложений, прочего динамического содержимого интернет-страниц) на локальном ПК (без необходимости подключения к сети Интернет) под управлением ОС Windows.
Базовый пакет
· Веб-сервер Apache с поддержкой SSI, SSL, mod_rewrite, mod_php.
· Интерпретатор PHP с поддержкой GD, MySQL, SQLite.
· СУБД MySQL с поддержкой транзакций (mysqld-max).
· Система управления виртуальными хостами, основанная на шаблонах.
· Система управления запуском и завершением.
· Панель phpMyAdmin для администрирования СУБД.
· Ядро интерпретатора Perl без стандартных библиотек (поставляются отдельно).
· Эмулятор sendmail и сервера SMTP с поддержкой работы совместно с PHP, Perl, Parser и др.
· Установщик.
Возможности Denwer
Сразу после установки доступен полностью работающий веб-сервер Apache, работающий на локальном компьютере, на котором может работать неограниченное количество сайтов, что очень эффективно для разработки и отладки сценариев PHP без загрузки его файлов на удаленный сервер. Для запуска практически всех утилит «Денвера» используется приложение Run в подкаталоге /denwer (или /etc) корневого каталога установки «Денвера». При запуске создается виртуальный диск (по умолчанию Z:), где хранятся все файлы проектов.
Localhost
localhost (127.0.0.1--127.255.255.255) -- зарезервированный диапазон IP-адресов для обозначения так называемого «локального хоста», то есть для сети, состоящей только из одного компьютера. Как правило, используется всего один адрес -- 127.0.0.1, который устанавливается на специальный сетевой интерфейс «внутренней петли» (англ. loopback) в сетевом протоколе TCP/IP. При установке соединений в этой вырожденной «сети» присутствует только один компьютер, при этом сетевые протоколы выполняют функции протоколов межпроцессного взаимодействия.
Использование адреса 127.0.0.1 позволяет устанавливать соединение и передавать информацию для программ-серверов, работающих на том же компьютере, что и программа-клиент, независимо от конфигурации аппаратных сетевых средств компьютера (не требуется сетевая карта, модем, и прочее коммуникационное оборудование, интерфейс реализуется при помощи драйвера псевдоустройства в ядре операционной системы). Таким образом, для работы клиент-серверных приложений на одном компьютере не требуется изобретать дополнительные протоколы и дописывать программные модули.
Обычно адресу 127.0.0.1 однозначно сопоставляется имя хоста «localhost» и/или «localhost.localdomain».
В IPv6 локальному хосту сопоставляется IP-адрес :1/128 (0:0:0:0:0:0:0:1).
MasterHost
При выборе виртуального хостинга существовало несколько проблем:
- бесплатные хостинги (narod.ru) даже если предоставляют необходимые сферы услуг, через некоторое время вешают на сайт неразрешенную рекламу, зачастую нецензурного характера, таким образом сильно засоряя сайт.
- некоторые платные хостинги выставляют неоправданно высокую стоимость услуг, что ввиду бюджетности организации представляло некоторую проблему.
- другие платные хостинги не предоставляют полный пакет услуг, т.е. не поддерживались либо PHP, либо MySql.
Учитывая вышеописанную специфику проблем, в качестве наиболее оптимального варианта был выбран виртуальный хостинг - MasterHost и тарифный план - «Аспирант'11».
Компания .masterhost специализируется на предоставлении комплексных услуг по размещению и поддержке проектов различной сложности в Интернете.
.masterhost успешно оказывает тематические услуги с 1999 года и на сегодняшний день является лидером на российском рынке хостинга.
Компания работает с клиентами самого разного профиля: крупными инвестиционными компаниями и банками, корпоративными представительствами бизнес-центров, компаниями, специализирующимися на электронной коммерции, независимыми объединениями и частными лицами.
На серверных пространствах дата-центра .masterhost свои веб-проекты размещают более 68 000 клиентов, .masterhost поддерживает доступ к более чем 140 000 сайтов.
Виртуальные сервера заказчиков размещаются только на специализированном оборудовании с высокой степенью надёжности и скорости отдачи информации.
Особое внимание уделяется вопросам защиты информации от несанкционированного доступа. Виртуальные сервера клиентов находятся на независимых серверных пространствах и надёжно защищены от внешних проникновений.
.masterhost предоставляет наиболее полный из возможных в Интернете спектр услуг по проектировке динамических web-сайтов. В распоряжении клиентов все распространённые языки программирования, возможности шаблонирования и автоматической публикации данных, доступ к собственной системе биллинга и многое другое.
Что касается тарифа, был выбран наиболее оптимальный тариф - «Аспирант'11». Виртуальный хостинг такого типа разрешает размещения до 5 сайтов с динамичным содержимым (новости, форумы, галереи) и поддерживает самое необходимо для нашего приложения: MySQL и PHP.
Домены
* 5 доменов на площадке
* Поддержка DNS с возможностью редактирования
* Неограниченное количество псевдонимов (алиасов)
* Поддержка переадресации
* Поддержка доменов 3-го уровня (не более 200)
MySQL
* 5 баз данныx MySQL
* 5 пользователей MySQL
* Интерфейс управления базами данных phpMyAdmin
Программное обеспечение
* Возможность автоматической установки WordPress, Joomla
* Поддержка PHP, Perl5, C/C++, sh, TCL, awk
* Cron - запуск скриптов по расписанию
* SSH-доступ
FTP
* 5 FTP-доступов
Прочее
* Собственные страницы ошибок
* Статистика Openstat
* Доступ к log-файлам
* Периодическое резервное копирование (backup) информации.
4. Общая структура системы «Школа художественной гимнастики»
Структура дополнительного образования, в частности спортивных школ имеет иерархический вид. Рассмотрим такую структуру подробнее, на схеме:
Описанная схема представляет собой социальную структуру школ художественной гимнастики, на примере одной школы, одного тренера и его гимнаста.
В каждой стране существуют свои регионы (области, округа, штаты), в нашем случае, в России есть регион - Татарстан -> регионы в свою очередь подразделяются на города (Казань) ->в которых расположены несколько городов -> в некоторых из них есть спортивные школы художественной гимнастики -> в школе есть несколько тренеров -> у каждого тренера многочисленное количество гимнастов -> каждый гимнаст может быть звездой (призер школьных, городских, региональных соревнований, КМС, член сборной и т.д.) или пока не стал звездой -> а каждая звезда в свою очередь, может входит в состав сборной или не входить.
Это была описана социальная структура, с структурой соревнований дела обстоят значительно короче:
Размещено на http://www.allbest.ru/
4.1 Интерфейс
1. Главная страница. Стартовой для всех школ является страница «Всероссийской федерации художественной гимнастики». Для стартовой страницы подгружается собственное небольшое вводное меню, с помощью пунктов которого можно перейти на страницы с общей, глобальной информации о художественной гимнастике, о Чемпионатах мира, можно почитать историю художественной гимнастики, биографию Российских звезд мирового масштаба, посмотреть их фотографии, посмотреть информацию и главных тренерах страны, узнать условия приема в федерацию. В общем здесь находится все то к чему должен стремится каждый гимнаст.
На страницы расположены 1-2 актуальные новости из области художественной гимнастики.
На нижнем баннере можно увидеть Ссылку «Обратная связь», пройдя по которой можно написать любые вопросы, замечания предложения администратору сайта.
2. Нажав на пункт меню «Соревнования» выплывает дополнительный пункт «Календарь соревнований» пройдя по которому вы можете посмотреть когда будет или был ближайший «Чемпионат мира по художественной гимнастики», и почитать о нем информацию.
3. Из пункта меню «О федерации» выплывает четыре дополнительных пункта: «История художественной гимнастики», «Звезды художественной гимнастики» «Тренеры» «Фото галерея». Все перечисленные разделы относятся только к Федерации художественной гимнастики, Академии Ирины Винер (главного тренера России) и истории художественной гимнастики в целом.
4. Нажав кнопку в правом верхнем углу «Выбрать школу» вы проходите на список регионов и получаете список школ в выбранном регионе. Кликнув на кнопку «Выбрать школу» загружается выбранная вами школа.
5. Подгрузилась страница СДЮСШОР №11 «Грация». Пункты меню всех школ идентичны друг другу. Нажав первый пункт меню, вы можете вернуться на стартовую страницу.
6. Нажав пункт меню соревнования выплывает несколько подпунктов: последние соревнования разных масштабов (школа, город, Россия) и архив соревнований.
7. По пунктам меню последних соревнований вы сразу можете попасть на статью о выбранном соревновании. Так же на статью о ближайшем и прошедшем соревновании вы можете попасть через последний пункт в текущем разделе «Архив соревнований». После перехода в «Архив соревнований» вы попадаете на календарь, здесь вы можете выбрать интересующую вас дату и посмотреть не проводились или не проводятся ли в этот день какие-либо соревнования.
8. Выбрав пункт меню «О школе» выплывают все пункты с информацией о школе: «История школы», «Администрация», «Звезды школы», «Тренеры», «Гимнасты», «Условия приема», «Фото галерея».
9. Проходим по пункту меню «История школы» и видим две ссылки. Если на выбранный объект загружено больше одной статьи, на экране появляются ссылки, по которым можно перейти и посмотреть интересующую вас информацию. Если статья у объекта одна, тогда на экране появляется сразу текст и фотографии, если они есть. В данном разделе история у нас загружено две статьи о школе и соответственно на экран выходят две ссылки.
10. Пройдя по одной из ссылок получаем на экране статью.
11. Аналогичная система со статьями у остальных пунктов меню. Проходим, к примеру по пункту «Администрация». Здесь выгружается директор и заместитель директора школы.
12. Выбрав статью о директоре Гатиной Алсу Ильгизаровне, получаем статью со слайдом о директоре школы.(аналогично работает пункт «Тренеры»)
13. По пункту меню «Звезды» и «Гимнасты» на экране появляется список ссылок на характеристики гимнастов школы.
14. Статья со слайдом о гимнастке (звезде) Смирновой Дарье.
15. Условие приема в школу (статья о по данному разделу одна, поэтому по клику на пункт меню на экране сразу загрузился текст).
16. «Фото галерея». Здесь загружены две фото галереи. Пройдя по каждому из них, можно посмотреть интересующие вас фотографии.
17. Фото галерея «Школьный лагерь».
18. Нажав на любую фотографию, фотография увеличивается. Нажав еще раз на выбранную фотографию, он уменьшается обратно.
19. Статья о чемпионате мира из пункта меню «Чемпионат мира».
20. Объявления и новости для родителей можно найти, попав в пункт меню «Информация для родителей».
21. Любой интересующий вопрос можно задать администрации школы и обсудить между собой зайдя на форум школы, через пункт меню школа. Информация может редактироваться администратором школы.
22. Контакты школы расположены соответственно в пункте меню «Контакты».
4.2 Раздел администратора
1. Попав в раздел администратора Вы в любом случае изначально должны пройти авторизацию. Уникальный логин и пороль выдается администратору каждой школы при регистрации школы в системе. Данные выдается администратором всей системы.
2. Администратор вводит собственные данные (пороль и логин).
3. На экране выходит подтверждение об авторизации. Нажимаем кнопку «ОК» и заходим в систему.
4. По пункту меню «Инструкция по применению» вы можете пройти на подробное описание работы в разделе администратор.
5. Пункты меню начиная с пункта «Главная» соответствуют разделам на основной (пользовательской) части системы. Выбрав пункт меню «Главная» можно увидеть название новости, которая выгружена на главную страницу приложения. Если есть обязательные условия для конкретного пункта меню, то оно прописано в инструкции или на соответствующей странице, как в случае с главной страницей.
6. Чтобы добавить новость на главную страницу нужно нажать на кнопку «Добавить» и осуществится переход на страницу добавления. Здесь необходимо написать название статьи в соответствующем поле и загрузить статью со своего компьютера с помощью кнопки «Обзор» (формат текстового файла должен быть строго txt и в кодировке Юникод UTF-8, как это осуществить подробнее написано в пункте «Инструкция по применению»).
7. Итак, загрузив необходимую статью и написав ее название в поле «Название статьи» нажмите кнопку «ОК».
8. Если после нажатия кнопки «ОК» вылезло сообщение, о том, что загрузка прошла успешно, значит файл загрузился на главную страницу пользователя.
9. Загруженный файл всегда отражается и в системе администратора, это мы видим на экране - появилась вторая статья в данном разделе.
10. Для удаления статьи, нажмите на соответствующей кружок и нажмите кнопку «Удалить».
11. Выйдет сообщение о подтверждении удаления. Если вы действительно хотите удалить статью, тогда нажмите кнопку «ОК».
12. Статья удалена. Нажимайте «ОК». Если какие-либо описанные процессы не проходят, пишите администратору системы ( ссылка «Обратная связь» в администраторской части системы).
13. «Архив соревнований». Редактирование (Добавление/Удаление) производится аналогично.
14. «О школе». Соответственно администратор школы не имеет права удалять или добавлять новую школу, поэтому информацию о школе можно лишь редактировать.
15. На странице редактирования школы выгружается имеющаяся информация в соответствующих полях, данные можно затереть и написать новые. Здесь же можно загрузить фотографии и статьи о школе и удалить их. Внизу расположены два списка (на рисунке только один для статей), для обоих списков есть две кнопки «Удалить». Первый список - список статей прикрепленных к этой школе, любую из них можно выделить выбрав кружок соответствующий статье и нажать кнопку «Удалить». Аналогично с фотографиями, фотографиям соответствует вторая кнопка «Удалить».
16. «Тренеры». Пройдя по данному пункту меню выгружается список тренеров работающих в данной школе. Здесь есть кнопки Добавить/Редактировать/Удалить, процессы редактирования, добавления и удаления происходят аналогично предыдущим пунктам меню.
17. На странице Тренеров находятся еще фильтры списка. Если список большой, а поиск объекта занимает много времени, то список можно отфильтровать. Здесь тренеры прошли фильтрацию по фамилии, в поле ФИО было набрано «Ива».
18. С гимнастами операции редактирования проводятся аналогично.
19. Фильтрация гимнасток по членству сборной. В данном случае все гимнастке находятся в той или иной сборной. Не забывайте нажимать кнопку «Найти», после выбора параметра фильтрации.
20. «Информация для родителей». Можно добавить или удалить статьи в данного раздела.
5. Информационная структура web-приложения
Приложение состоит из двух основных частей:
1. Интерфейс - сам сайт (визуальная реализация программы). У сайта разработана статейная система. Т.е. сайт фактически состоит из одной страницы, которая в свою очередь состоит из двух баннеров верхнего и нижнего, интерактивного меню и статейной части. С помощью статейной структуры работа приложения реализуется следующим образом: при клике любого из пунктов интерактивного меню в статейную часть подгружаются выбранная статья. Практически вся информация базы в результате многих преобразований была приведена к такой системе. Выгрузка интересующей информации реализована с помощью Select-запросов.
2. Администратор - администраторская часть естественно организована самым доступным образом для человека, который будет заполнять сам сайт. Эта область разработана таким образом, что любой секретарь может заниматься заполнением сайта, что уменьшает денежные и временные затраты на его содержание или может быть привлечен один сотрудник удаленно занимающийся заполнением информации параллельно в нескольких школ города. При выборе первого пункта меню администратор попадает в раздел «Страница редактора» там подробно описана инструкция, того как пользоваться администраторской частью.
У каждой школы, естественно, своя область администрирования. Каждый администратор новоявленной школы получает свой уникальный логин и пароль. При переходи в административную часть работник вводит полученные им данные (логин, пароль) и попадает в свою область редактирования. С помощью тех же Select-запросов он имеет доступ только к информации, касающейся конкретной школы.
Обобщая вышесказанное, получаем, что редактирование происходит следующим способом: отредактированная администратором информация отправляется в базу данных, а из базы в свою очередь автоматически выгружается на сайт.
Итак, администратор с течение 2-3х минут может отредактировать (добавить, удалить, редактировать имеющуюся) любую статью, соответственно любую страницу.
5.1 База данных. Введение в понятие базы данных
База данных - это организованная структура, предназначенная для хранения информации. Управлять базами данных сегодня можно также с помощью систем управления базами данных (СУБД), которые позволяют размещать в своих структурах не только данные, но и методы (то есть программный код), с помощью которого происходит взаимодействие с потребителем или с другими программно-аппаратными комплексами. В современных базах данных хранятся не только данные, но и информация.
Под базой данных понимают хранилище структурированных данных. При этом данные должны быть непротиворечивы, минимально избыточны и целостны. База данных создается для хранения и доступа к данным, содержащим сведения о некоторой предметной области. Степень детализации информации определяется рядом факторов. Прежде всего, целью использования информации из баз данных и сложностью информационных процессов, существующих в пределах предметной области в конкретных условиях.
База данных для школы художественной гимнастики.
Схема:
1. Таблица «ADMINS».
Назначение: хранение информации об администраторе, для входа в административную часть.
Поля:
- id (уникальный ключ) - идентификационный номер администратора;
- login - уникальное имя администратора, оно выдается при создании школы;
- pass - пороль для входа администратора в систему;
- id_school - идентификационный номер школы, к которой привязан конкретно взятый администратор;
- rid - произвольное шестизначное число, которое формируется при входе в систему (каждой раз новое), для безопасности входа.
Типы данных:
2. Таблица «School».
Назначение: база регионов, для привязки школ.
Поля:
- id (уникальный ключ) - идентификационный номер региона;
- name - название региона.
Типы данных:
3. Таблица «Region».
Назначение: хранение контактной информации о каждой школе.
Поля:
- id (уникальный ключ) - идентификационный номер школы;
- name - название школы;
- city - город в котором расположена школа;
- idregion - номер региона, в котором находится школа;
- address - адрес школы;
- telephone - телефон школы;
- email - электронная почта школы.
Типы данных:
4. Таблица «Gymnasts».
Назначение: хранение информации о гимнастках.
Поля:
- id (уникальный ключ) - идентификационный номер гимнастки;
- name - ФИО гимнастки;
- gender - пол гимнастки;
- id_school - школа в которой в настоящее время занимается гимнастка;
- birthday - день рождения;
- star - принадлежность к гимнастки к категории звезды школы;
- team - принадлежность гимнастке к сборной команде;
- couch - тренер у которой занимается гимнастка.
5. Таблица «Coach».
Назначение: хранение информации о тренерах.
Поля:
- id (уникальный ключ) - идентификационный номер тренера;
- name - ФИО тренера;
- pol- пол тренера;
- id_school - школа в которой в настоящее время занимается гимнастка;
- position - должность преподавателя;
- experience - стаж работы преподавателем;
- administration - принадлежность тренера к администрации школы.
6. Таблица «Article».
Назначение: хранение информации о всех статьях (текстовой информации хранящейся в базе).
Поля:
- id (уникальный ключ) - идентификационный номер статьи;
- name - название статьи;
- type - тип статьи (её принадлежность к определенному элементу базы: гимнасту, тренеру, школе, условию приёма, фотографиям и т.д.);
- object_id - идентификационный номер соответствующий объекту (в его таблице), к которому привязана статья;
- address - ссылка на файл (статью);
Типы данных:
7. Таблица «Contests».
Назначение: хранение информации о соревнованиях различных масштабов.
Поля:
- id (уникальный ключ) - идентификационный номер соревнования;
- name - название соревнования;
- type - тип соревнования, его масштаб (школа, регион, страна, мир);
- date - дата проведения;
- object_id - привязка соревнования к определенной локации.
8. Таблица «Photo».
Назначение: база всех фотографий;
Поля:
- id (уникальный ключ) - идентификационный номер фотографии;
- id_article - привязка фотографии к статье;
- name - название фотографии;
- address - ссылка на фотографию.
Текущая схема данных соответствует статейной системе. Принцип действия такой схемы основан на хранении всей текстовой информации (статьи о гимнастах, тренерах, школе, соревнованиях) в одной таблицею. Связь статей с объектами осуществляется с помощью полей object_id (соответствует id гимнаста, тренера, школы ит.д.) и type, типы бывают следующие:
- gymnast (гимнаст);
- coach (тренер);
- history (история школы и др. подобные статьи о школе);
- photo (фото галерея);
- parents_info (информация для родителей);
- top (новость на главную страницу);
- conditions (условия приема);
- contests (соревнования);
- world_championship (чемпионат мира).
Прежде чем начала использоваться статейная система, ввиду большого количества связей «многие ко многим», часто приходилось применять таблицы связок. Некоторые из статьи, к примеру характеристики, история школы, условия приёма являлись атрибутами соответствующих таблиц (гимнаст, тренер, школа). Такого вида объемная структура усложняла работу с приложением, где вместо одного запроса приходилось прописывать два-три запроса, что значительно замедляло, стадию разработки приложения и работу самого приложения, где скорость работы играет достаточно важную роль. Так как приложение единовременно могут использовать несколько человек, что может итак замедлять процесс передачи данных, плюс ко всему у пользователя может быть маленькая скорость соединения, что будет значительно затруднять работу с приложением, процесс обработки данных и запросов в самом приложение должен быть максимально ускорен и облегчен.
Данная организация данных позволяет подгружать несколько статей к одному объекту, не замедляя процесс работы и не создавая избыточности информации, как уже говорилось ранее с помощью вспомогательных атрибутов (object_id и type)
5.2 Проблемы задачи и их решения
Пользовательский раздел:
Пользователь работает только с одной страницей, на которой при клике любого из пунктов меню отправляются параметры «тип страницы» и «id объекта» методом Get. Когда страница получает эти параметры. Страница показывает содержимое соответствующему типу.
Приемущесво такой структуры в том, что:
- структуру удобно использовать при разработке системы, тем что общая информация хранится в одном файле и не загромаждает код;
- т.к. Get параметры прописываются в командной строке, пользователь может сохранить текст интересующей его ссылки и подгружать только польезную или итересную для себя страницу.
В системе используется интерактивное меню, в котором всегда подгружаются последние по дате соревнования. Процесс совершается с помощью следующего SELECT-запроса:
<p> <a href="#" onclick="showLayer('contest');hiddenLayer('school') ">Соревнования</a></p>
<div style="padding-left:20px;font-size:14px;width:150px;font-style: italic;" id="contest">
<?$query1m="Select * FROM Contests where type='school' and day1=(select max(day1) from contests where type='school' and object_id='".$eng->school_id."' )";// школьное
$sql1m=mysql_query($query1m) or die(mysql_error());
$row1m=mysql_fetch_array($sql1m);
Система выгрузки статей.
При выборе через меню интересующего пользователя раздела идет проверка статей на их количество. Если по выбранному пунктц меню информации нет, то выгружается сообщение «статей по данному разделу нет»; если статья одна, тогда она сразу выгружается на страницу; если статей две и более, тогда выходит список ссылок на соответствующие статьи или фотографии.
Структура страниц построена с помощью тега <div>. Уход от стандартной структуры таблиц был обоснован тем, что выбранный метод построения дает странице более пластичные, гибкие решения. Объекты все располагаются справа относительно предыдущего элемента, т.е. каждый последующий объект находится сразу после левого элемента. Используемый метод расположение объектов (дивов) относительно друг друга осуществляется с помощью css стиля float: left, а расстояние между ними и внутри объектовопределялось с помощью свойст margin и padding.
СSS стили, для удобства и ухода от заграмождения кода были перенесены в отдельный файл, что значительно ускоряет процесс работы. Файлы со стилями подгружаются один раз и соответственно не требуют дополнительного времени загрузки.
Было достаточно не просто решить проблему со слайдами. Так как в базе хранятся, даже для одной школы достаточно большое количество фотографий, а слайдшоу требует много вычеслений и в донном случае занимало все процессорное время клиента. Что в результате тормозило работы всего приложения.
Теперь, если вспомнить, хоть одно упомянутое во введении, приложение, работующее с базой и обробатывающее большое количество информаии можно заметить, что очень редко используется слайд с автоматической прокруткой (в контакте везде идет ручная прокрутка). Если даже слайды используются, в качестве рекламы в Интернет-магазинах напрмер, то, во-первых, это может быть флэш анимация, во-вторых, даже если это слайд с автоматической прокруткой, на весь сайт только один слайдшоу и загружаются на него только две-три фотографии.
Отталкиваясь от всех вышеперечисленных проблем, было принято решение создать практически везде, кроме галереи, слайд с ручной прокруткой.
Осуществляется прокрутка с помощью функции Getslide().
function GetSlides($article,$adress,$number) {
if (!isset ($number)) {
$number=1;
}
$query7p="Select * from Photo where id_article=".$article." limit $number,1";
$sql7p=mysql_query($query7p);
$query8p="Select COUNT(id) from Photo where id_article=".$article;
$sql8p=mysql_query($query8p);
$row8p=mysql_fetch_assoc($sql8p);
?>
<?php
while($row7p=mysql_fetch_assoc($sql7p)) {
?>
<div style=" background-color: black; width: 700; height: 500; text-align: center;">
<? if($number>1) {?>
<a href="<?print $adress.($number-1)?>" style="float:left; color: grey;">Last</a>
<?}?>
<img src="<?print $row7p["adress"];?>" align="center" style="height: 500; text-align: center;">
<?if ($number<($row8p["COUNT(id)"]-1)) {
?>
<a href="<?print $adress.($number+1)?>" style="float:right; color: grey;">Next</a>
<?}?>
</div>
<?php }?>
<?php
}
Для фото галереи используется следующий принцип: загружается страница со всеми фотографиями по выбранной тематике, при нажатие на одну из этих фотографий загружается та же страница, только с выбранной фотографией в увеличенном виде. Галерея работает при помощи функции GetSlidesP().
function GetSlidesP($article) {
$query69="select * from Photo where id_article=".$article;
$sql69=mysql_query($query69)or die (mysql_error());
if (!isset ($number)) {
$number=1;
}
$query7p="Select * from Photo where id_article=".$article." limit $number,1";
$sql7p=mysql_query($query7p);
// $row7p=mysql_fetch_array($sql7p);
$query8p="Select COUNT(id) from Photo where id_article=".$article;
$sql8p=mysql_query($query8p);
$row8p=mysql_fetch_assoc($sql8p);
?>
<script type="text/javascript" src="http://localhost/diplom/js/highslide.js"></script>
<link rel="stylesheet" type="text/css" href="http://localhost/diplom/js/highslide.css" />
<script type="text/javascript">
hs.graphicsDir = 'http://localhost/diplom/js/graphics/';
hs.wrapperClassName = 'wide-border';
</script>
<?php
while($row69=mysql_fetch_assoc($sql69)) {
?>
<a href="<?print $row69["adress"];?>" onclick="return hs.expand(this)"><img src="<?print $row69["adress"];?>" width="250">
</a><?}?>
<?php
}?>
Для того чтобы в системе все тексты подгружались в необходимой кодировке, необходимо было поменять кодировку в базе данных, прописать в коде программы: <meta content="text/html; charset=UTF-8" http-equiv="Content-Type"> и как оказалось у Denwera есть свой файл где надо прописывать кодировку. Во всех вышеперечисленных местах по умолчанию стоит кодировка cp1251, которая работает только для русской версии Microsoft Windows.
В качестве допустимой кодировки была выбрана кодировка Юникод UTF-8. Юникомд (англ. Unicode) -- стандарт кодирования символов, позволяющий представить знаки практически всех письменных языков. Коды в стандарте Юникод разделены на несколько областей. Область с кодами от U+0000 до U+007F содержит символы набора ASCII с соответствующими кодами. Далее расположены области знаков различных письменностей, знаки пунктуации и технические символы. Часть кодов зарезервирована для использования в будущем.
Что касается текстовых файлов, при загрузке их на сервер, а загружаются данные именно на сервер, в базе хранятся только адреса файлов, можно прописывать, при неоходимости, html тэги, для форматировния текста.
Раздел администратора:
Авторизация. Администратору каждой школы в ситеме выдается логин и пороль. При входе в систему, если данные введены правильно, в COOKIE заносятся два параметра хеш методом MD5 от логина,даты+текущий час и пороля и в качестве второго параметра передаеся случайно сформированное случайное число.
Так как COOKIE хранятся в общедоступной области, такой способ авторизации позволяет максимально защитить систему от кражи авторизационной информации.
В школе одновременно может обучаться порядка пятисот учеников, поэтому без какой-либо фильтрации, поиск одного из них, для редактирования данных будет довольно трудоемким процессом, поэтому были внедрены фильтры (по имени, дате рождения, принадлежности к сборной и к звездному составу школы). Фильтрация происходит на уровне запроса.
Администраторский раздел системы должен был быть разработан максимально удобным и понятным образом, так как администрирование сайта школ планировалось отдать секретарям соответствующих школ. В связи с этим, для упрощения работы с формами редактирования, была организована выгрузка заполненных в полях данных. Выгрузка данных осуществлялась POST методом. После выбора объекта для редактирования, при нажатии кнопки «Редактировать», на сервер отправляется id выбранного объекта. В результате, отправки id определяется элемент для редактирования. К примеру, мы можем разместить, в поле ввода, имя выбранного тренера, которая недавно вышла замуж и сменила фамилию. Это организуется следующим образом, значению текстового поля ФИО присваивается значение переменной, которая была выбрана в результате Select-запроса, где id=$POST(elem).
ФИО:</b><input name="FIO" type="text" size="75" value="<?print $row['FIO']?>">
Данные в базе изменялись с помощью sql-запрос UPDATE.
$query="UPDATE couch
SET FIO='${_POST['FIO']}',
birthday=STR_TO_DATE('${_POST['birthday']}', '%d.%m.%Y'),pol='${_POST['pol']}',
id_school=(Select id_school from ADMINS
WHERE rid=${_COOKIE['rid']}),
position='${_POST['position']}', experience='${_POST['experience']}'
WHERE id=${_POST['elem']}";
Удаление элемента проходит аналогичным образом. После выбора элемента списка и нажатия кнопки «Удалить» POST методом передается id выбранного элемента и обрабатывается SQL-запросы.
$query="DELETE FROM Contests WHERE id=${_POST['id']}";
Аналогично программа работает с добавлением, только с использованием SQL-запроса UPDATE.
$query1="INSERT INTO couch (FIO, Birthday, pol, id_school,position, experience)
VALUES ('${_POST['FIO']}', STR_TO_DATE('${_POST['birthday']}', '%d.%m.%Y'), '${_POST['pol']}',(Select id_school from ADMINS where rid=${_COOKIE['rid']}), '${_POST['position']}', '${_POST['experience']}')";
6. Актуальность и сравнение с аналогами
Перед тем как начать разработку web-приложения, естественно необходимо было разобраться в структуре и специфике данного направления. Найти похожие web-приложения, сайты и изучить их плюсы и минусы, и по итогам разработать собственную концепцию приложения.
В результате просмотра сайтов была выявлена одна глобальная проблема - таковых практически не существует. Есть единственный более или менее функционирующий сайт - сайт «Всероссийской федерации художественной гимнастики» (www.vfrg.ru), естественно учитывая масштабность данной организации не могло быть иначе. И даже он полноценно начал функционировать лишь пару месяцев назад, будучи до тех пор на рестоврации. Сейчас сайт - динамичный, загрузки идут с базы, с достаточно высокой информативностью, периодически изменяется новости о проходящих соревнованиях. Ещё раз напомню информация на сайте только о «Всероссийской федерации художественной гимнастики» и смежной с ней организации, которая принадлежит президенту федерации, главному тренеру России - Ирине Винер, что касается соревнований, информация на данном сайте затрагивает только масштабные соревнованиях, такие как Чемпионаты, кубки мира, чемпионаты России. Таким образом, сайт всё же получается узкоспециализированным. Существует еще один сайт-база, в нем хранится контактная информация о многих школах художественной гимнастики различных регионов нашей страны и не более того (загрузка идет из базы данных). Что касается других сайтов, они совсем безжизненны, либо просто сайт-визитка разработанный исключительно с использованием html кода и никак не меняется в течении многих лет, либо какая-либо информация хранится на сайте, к примеру, нашей мэрии или универсиады или какого-нибудь стадиона, где помимо гимнастики, еще множество секций и ей как и им выделено немного места и информация там также статична, последние обновления были как минимум 2 года назад.
В результате всего этого информационного калапса возникло не мало проблем с поиском необходимой информации для нашего web-приложения.
Web-приложение, для школ дополнительного образования, должно, в достаточной степени, разрешить выявленную проблему. В нашем приложении при правильном и активном использовании, ребенок или родитель желающий занять своего ребенка чем-нибудь полезным, может зайти на сайт и посмотреть информацию о интересующей его школе. На сайте можно найти: контактную информацию, условие приема, историю школы, прочитать информацию о тренерах, узнать о их достижениях, узнать о достижениях гимнастов учащихся в этой школе в разделе «Звезды школы», посмотреть какие соревнования проходят в любой локации, будь то школьного или мирового масштаба, можно задать вопрос администрации в разделе «Вопрос/ответ» и узнать всю недостающую информацию. Приложение действует в масштабах всей страны, страница сайта динамична и при выборе региона и конкретной школы, подгружается индивидуальная информация для каждой школы, по всем пунктам меню (естественно, если такая школа существует в базе данных приложения). Вся информация хранится в одной базе.
Таким образом, сайт является универсальным информационным порталом для школ художественной гимнастики, для любой точки страны, что в перспективе можно преобразовать, для всех направлений дополнительного образования. Появление такого рода приложения должно повысить конкурентоспособность между учениками школы, так они будут в курсе всех заслуг их друзей знакомых - ЗВЕЗД их школы, что должно повысить желание и стремление профессионального роста. Соседние школы также будут знать о заслугах соперников, даже соперников других регионов, что тоже как-то должно стимулировать рывок к победе «Предупрежден значит вооружен!».
Подобные документы
Общее представление социальной сети для дополнительного образования. Информационная модель спортивных школ по художественной гимнастики. Общая структура системы "Школа художественной гимнастики". Разработка информационной структуры web-приложения.
дипломная работа [4,9 M], добавлен 11.11.2014Технологии создания web-страниц. Появление Active Server Pages. Разработка динамического web-сайта на asp.net. Создание дизайна и каркаса сайта с использованием стандартных HTML таблиц. Проектирование базы данных на основе ado.net и подключение к ней.
контрольная работа [2,4 M], добавлен 24.05.2019Описание логической структуры таблиц базы данных для разработки web-приложения с помощью технологий ado.net и asp.net. Система меню, программы и модули, используемые в работе сайта. Класс, выполняющий операции и связующий информацию сайта с базой данной.
курсовая работа [104,5 K], добавлен 26.09.2012Анализ систем для создания сайта "Интеллектика". Архитектура и структура сайта; технические требования. Выбор базы данных. Процесс разработки приложения авторизации для просмотра закрытых научных проектов. Техническая документация для администратора.
дипломная работа [2,0 M], добавлен 19.01.2017Выбор программной среды. Система управления базами данных MySQL. Детский клуб: Hypertext Preprocessor. Определение целевого сегмента пользователей, их функции. Проектирование структуры базы данных. Разработка интерфейса web-сайта и пользовательской части.
дипломная работа [5,0 M], добавлен 19.01.2017Проектирование структуры и информационного содержания сайта. Анализ поисковой статистики и подбор синонимов. Целевая аудитория сайта. Реализация каркаса сайта. Разработка навигации и дизайна сайта с использованием css. Реализация интерактивности.
курсовая работа [10,7 M], добавлен 01.09.2016Особенности создания страниц на языке APS.NET, создание и формы обращение к базам данных. Интерфейс автоматического вывода определнного столбца базы данных в элементы управления. Структура базы данных, принцип работы страниц сайта, настройка приложения.
курсовая работа [387,3 K], добавлен 02.03.2010Создание электронного учебника в программе Adobe Dreamweaver 9 CS4 и текстовом редакторе Notepad по дисциплине "Информационная безопасность". Разработка индивидуального дизайна учебника, его верстка. Описание работы сайта. Затраты на его рекламу.
дипломная работа [2,2 M], добавлен 07.07.2012Задачи и стадии разработки автоматизированной информационной системы художественной школы. Описание предметной области с помощью бизнес-моделирования, использование диаграмм потоков данных DFD. Спецификация системы, логическая структура базы данных.
курсовая работа [281,9 K], добавлен 12.07.2011Создание автоматизированной системы по сбору и анализу статистических данных сайта. Принципы сбора статистических данных. Исследование информационных потоков. Обзор современных СУБД и языков программирования. Логическая и физическая модель базы данных.
дипломная работа [3,0 M], добавлен 08.07.2012