Моего проекта по специализации

Вид материалаКурсовой проект

Содержание


1. Описание предметной области
2. Описание данных
Описание выходных данных
3 Описание базы данных
Схема функционирования программного средства
5. Руководство пользователя
Подобный материал:
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ


ВЫСШИЙ КОЛЛЕДЖ ИНФОРМАТИКИ


структурное подразделение

НОВОСИБИРСКОГО ГОСУДАРСТВЕННОГО УНИВЕРСИТЕТА


КАФЕДРА ИНФОРМАТИКИ


ПРОЕКТИРОВАНИЕ САЙТА ДЛЯ ПОДДЕРЖКИ, ОРГАНИЗАЦИИ И ПРОВЕДЕНИЯ НУЧНЫХ КОНФЕРЕНЦИЙ

(база данных и панель администрирования)


Курсовой проект

на квалификацию техник-программист


Научный руководитель

Зав. Сектором археологической теории

и информатики ИАЭТ СО РАН,

д.и.н., академик РАЕН Холюшкин Ю.П.

21 декабря 2006 г.


Студент группы 303б1 Зинченко В.В.

21 декабря 2006 г.


Новосибирск

2006

СОДЕРЖАНИЕ


ВВЕДЕНИЕ………………………………………………………………………..3
  1. ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ…………………………………...5
    1. Постановка задачи……………………………………………………...5
    2. Используемое программное обеспечение……………………………..6
  2. ОПИСАНИЕ ДАННЫХ…………………………………………………….....7
    1. Описание входных данных…………………………………………….7
    2. Описание выходных данных…………………………………………...7
  3. ОПИСАНИЕ БАЗЫ ДАННЫХ…………………………………………….....8
  4. СХЕМА ФУНКЦИОНИРОВАНИЯ ПРОГРАММНОГО СРЕДСТВА…...10
  5. РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ………………………………………..12

ЗАКЛЮЧЕНИЕ………………………………………………………………….13

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ……………………………14

ПРИЛОЖЕНИЕ………………………………………………………………….15


ВВЕДЕНИЕ

Тема моего проекта по специализации –

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

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

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

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


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


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

Для разработки вышеописанной базы данных мной была использована СУБД MySQL 4, входящая в пакетный продукт Denwer.

Разработка web-интерфейса панели администрирования был использован язык PHP, а в качестве среды разработки - ZendStudioClient 5.1.0

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

Работа со всеми перечисленными программными продуктами проводилась в среде операционной системы Windows XP Pro.


1. ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ
    1. Постановка задачи

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

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

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

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


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

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

За текущий семестр мной была выполнена следующая работа:
  1. Полностью перепроектирована база данных сайта. Устранены ошибки в проектировке базы данных, из-за которых некоторые функции сайта были недоступны при переносе на постоянный хостинг. Устранена ошибка при регистрации участников, связанная с неправильной структурой таблиц, в которых хранились регистрационные данные.
  2. Добавлена база данных, которая вкупе с работающим с ней веб-интерфейсом позволяет пользователям подписываться на рассылки или отказываться от них.
  3. Разработан и расширен новый интерфейс администратора – теперь можно управлять рассылками, создавая новые списки рассылок, редактировать рассылки, сохранять или удалять их, и, конечно же, отправлять подписанным пользователям.
  4. Сделано изменение цветовой схемы панели администрирования.



    1. Использованное программное обеспечение.


Для написания проекта было использовано следующее ПО:

- ZendStudioClient 5.1.0 – среда, в которой производилась работа с PHP. Данное ПО выбрано по причине его удобства.

- Пакет ПО Denwer, включающий в себя Apache 1.3.33, который был использован для тестовой веб-сервер, а также СУБД MySQL 4, которая использовалась для создания базы данных. Использование этого пакетного ПО обусловлено его быстротой настройки и удобством использования на любой машине.

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


2. ОПИСАНИЕ ДАННЫХ


2.1. Описание входных данных

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

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

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

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

Администратор добавляет на сайт информацию о новых конференциях, событиях в их рамках и о их участниках.

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

    1. Описание выходных данных

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


3 ОПИСАНИЕ БАЗЫ ДАННЫХ


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

Структура таблицы `admins` (таблица для хранения администраторских Логинов и паролей)

`id` int(11) NOT NULL auto_increment,

`name` text NOT NULL,

`password` text NOT NULL,

PRIMARY KEY (`id`)

Структура таблицы `conferentions` (здесь хранится информация о конференциях, организаторах конференций, описание, даты начала и конца)

`id` int(11) NOT NULL auto_increment,

`name` text NOT NULL,

`description` text NOT NULL,

`place` text NOT NULL,

`organization` text NOT NULL,

`start` int(11) NOT NULL default '0',

`end` int(11) NOT NULL default '0',

PRIMARY KEY (`id`)

Структура таблицы `events` (таблица для хранения событий, проводящихся в рамках определенной конференции)

`id` int(11) NOT NULL auto_increment,

`name` text NOT NULL,

`start` int(11) NOT NULL default '0',

`conf_id` int(11) NOT NULL default '0',

PRIMARY KEY (`id`)

Структура таблицы `news` (в эту таблицу заносятся новости, после того, как администратор вписывает их в формы добавления новостей в панели администрирования)

`id` int(11) NOT NULL auto_increment,

`title` text NOT NULL,

`text` text NOT NULL,

`author` text NOT NULL,

`addtime` int(11) NOT NULL default '0',

PRIMARY KEY (`id`)

Структура таблицы `participants` (Здесь хранятся данные об участниках. Одна запись – один участник. В записи хранятся личные данные – ФИО, дата рождения, ученая степень и так далее)

CREATE TABLE `participants` (

`id` int(11) NOT NULL auto_increment,

`name` text NOT NULL,

`born` text NOT NULL,

`organization` text NOT NULL,

`nz` text NOT NULL,

`us` text NOT NULL,

`city` text NOT NULL,

`email` text NOT NULL,

`doc` text NOT NULL,

`access` int(11) NOT NULL default '0',

`accesstime` text NOT NULL,

`conf_id` int(11) NOT NULL default '0',

`sec_id` int(11) NOT NULL default '0',

PRIMARY KEY (`id`)

Структура таблицы `sections`

`id` int(11) NOT NULL auto_increment,

`name` text NOT NULL,

`conf_id` int(11) NOT NULL default '0',

PRIMARY KEY (`id`)

Структура таблицы `siteinfo`

`title` text NOT NULL,

`keywords` text NOT NULL,

`description` text NOT NULL,

`developertext` text NOT NULL,

`devcomment` text NOT NULL,

`developer` text NOT NULL

Для реализации системы рассылок, была создана база данных с именем “dispatch”.

База данных рассылок состоит из следующих таблиц:
  • mailing_list
  • ruser
  • sessions
  • subscribes
  • Subscribes_tmp
  • Таблица mailing_list используется для хранения в ней отправленных рассылок.

- subject - тема рассылки.

- message - текст посланный в письмах.
  • Таблица ruser хранит в себе данные об администраторах рассылок.

- first_name - имя администратора.

- last_name - фамилия администратора.

- login – логин администратора, вводимый им при входе в систему.

- pass – пароль администратора, вводимый им при входе в систему.

- email – адрес электронной почты администратора.
  • Таблица subscribes содержит информацию о всех e-mail адресах подписавшихся или пытавшихся подписаться на рассылки.

- email – адрес электронной почты подписавшегося

- is_active – принимает значение 1 или 0, 1 означает, что пользователь активировал свою подписку, введя правильный код активации, 0 – соответственно означает, что подписка не была активирована.
  • Таблица subscribes_tmp создана для хранения адресов, пользователи которых ввели адрес, но не активировали свою подписку.

- email – адрес электронной почты подписчика.

- code – высланный подписчику код активации.

- date – дата подписки пользователя. На основе ее отсчитывается 14 дне со дня отправки кода активации. При его введении подписчиком на сайте, либо по истечении данного срока, соответствующая запись в таблице удаляется, и пользователю, если ему это необходимо, придется подписываться заново.


  1. СХЕМА ФУНКЦИОНИРОВАНИЯ ПРОГРАММНОГО СРЕДСТВА

Рассмотрим схему взаимодействия компонентов моего проекта.

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

К базе данных делаются запросы. Вот основные их виды:

- запрос из файла index.php на отображение новостей. Администратор из панели администрирования заполняет форму добавления новости, затем эта информация вносится в базу данных. После этого по SQL-запросу из БД выбираются поля с новостями и отображаются на главной странице.

- запрос пользователя на заполнение заявки. Выводятся поля для заполнения. Введенная информация заносится в базу данных с ключом, значение которого соответствует заявке непросмотренной. Как только администратор просматривает запись, он одобряет заявку или отклоняет ее, после чего из базы данных по SQL-запросу отбирается e-mail адресанта заявки и на него отсылается письмо о том, одобрена или отклонена его заявка, а сама запись, в которой хранится информация, введенная потенциальным участником – или удаляется из БД в случае отказа администратора, или у нее меняется ключ – на тот, который означает одобренную заявку (в случае одобрения администратора), а сам участник становится «видимым» в списке участников определенной конференции.

Графическая схема взаимодействия приведена ниже:


5. РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ


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

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

–добавление новостей, добавление конференции, добавление участников, добавление событий, работа с массовыми рассылками.

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

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

Если потенциальный участник отослал на сервер какую-либо работы в виде файла, администратор видит ссылку на этот файл,

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

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


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


ЗАКЛЮЧЕНИЕ


За семестр мною была проделанная работа по усовершенствованию и дополнению сделанного в прошлом семестре проекта.

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

Разработка новых структур БД и новых разделов панели администрирования для выполнения следующих функций разрабатываемого сайта:
  • Заполнение участниками заявок на проживание и отсылка их администратору
  • Организация рассылки новостей в виде RSS-потоков
  • Система автоматического сбора информации с сайтов с ее последующей модерируемой публикацией.


Объем исходного кода составляет ~250 строк

Данный проект будет иметь практическое применение, будучи размещенным на хостинге Института Археологии и Этнографии СО РАН. Как и говорилось ранее, он будет служить как система информационного обеспечения участников и организаторов научных конференций.




















СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ.


1.Мазуркевич А.М., Еловой Д.С. PHP: настольная книга программиста. ООО «Новое знание», 2003 – 480 с.

2.Аткинсон Л. MySQL. Библиотека профессионала.: Пер. с англ. — М.: Издательский дом "Вильяме", 2002. — 624 с.

3. Интернет-архив документации ссылка скрыта