оформление курсовой:
введение, (для чего нужен сайт: оформить читательское требование, бла бла) (3-5 страниц)
проектная часть
(как выглядит)
из чего состоит проект, настройки, взаимодействие, структура сайта, какие модули, как он устроен,
скриншоты сайта, описать что видит пользователь на сайт, уделить основное внимание поиску и регистрации,
написать про электронный каталог
технологическая часть (как сделано)
документирование сделанных шагов
диаграммы uml \
диаграммы использования, классов, последовательности
диаграмма компонентов
например диаграмма компонентов интерфейсной части то, что отображается на сайте: дерево компонентов, например блок новостей, в нем новости
блок поиска и т.д.; сервер mysql, apache, как применяется ajax, диаграмма компонентов на поиск, одна на регистрацию
диаграмма клаоссов: класс интерфейс, отображает выбранные данные в браузер клиента;
например читатель: может входить, имеет такие то привелегия
Файловая структура электронной библиотеки
Электронная библиотека состоит из следующих типов файлов:
-
Файлы с расширением .php. Имеют 3 ключевых особенности.
Содержат php код.
Определяют маршрутизацию внутри веб-приложения. Каждая страница сайта электронной библиотеки соответствует php файлу.
К .php файлам обращается только браузер, из чего следует, что каждый .php файл в ЭБ имеет используемую точку входа.
Файлы с расширением .php являются основой ЭБ. Их задача по заданным пользователем параметрам сформировать html страницу или вернуть результат ajax запроса.
-
Файлы с расширением .inc.
Содержат .php код.
Не содержат кода, исполняемого при подключении файла, за исключением задания глобальным переменным значений по умолчанию.
.inc файлы используются как подключаемые библиотеки, содержащие код модулей ЭБ, таких как конфигурационный модуль, модуль работы с smarty шаблонами и так далее.
Файлы с расширением .tpl. Содержат html код с вставками php-подобного smarty синтаксиса для вывода динамического содержимого. Используются для отделения логики получения данных от логики их представления пользователю, а также для повторного использования элементов интерфейса.
Файлы с расширением .js. Содержат javascript код. Используются для реализации интерфейсной части. В частности для создания функциональной формы поиска, формирования читательских требований и выполнения поиска без обновления страницы.
Файлы с расширением .css. Содержат css код. Используются для реализации интерфейса сайта ЭБ.
Корневой каталог
В Корневом каталоге находятся php файлы соответствующие страницам ЭБ, а также обработчик pdf документов pdfimages.exe и внутренняя база данных ЭБ internal_sqlite.db3. Далее приведено функциональное описание каждого из файлов.
Таблица 1 Корневой каталог электронной библиотеки
Имя файла
|
Заголовок страницы
|
Комментарий
|
Book.php
|
Просмотр документа
|
Страница просмотра документов
|
Book_provide.php
|
Книгообеспеченность
|
|
Catalog.php
|
Электронный каталог
|
Страница, содержащая формы поиска документов
|
Codex.php
|
Кодекс профессиональной этики
|
|
Contact.php
|
Контактная информация
|
|
Ebs.php
|
Электронно-библиотечные системы
|
|
Elzal.php
|
Правила пользования электронным залом библиотеки ЯГТУ
|
|
Eb_database.db3
|
|
База данных, содержащая новости сайта НТБ
|
exhibitions.php
|
Тематические выставки
|
|
Handler.php
|
|
Скрипт, формирующий результат поиска документов
|
Hours.php
|
Часы работы
|
|
Index.php
|
Научно-техническая библиотека
|
Заглавная страница
|
Join.php
|
Добро пожаловать в НТБ ЯГТУ
|
Страница входа в аккаунт пользователя
|
Logout.php
|
|
Скрипт выхода из аккаунта пользователя
|
Missions.php
|
Миссия
|
|
Pdfimages.exe
|
|
Консольное приложение, используемое для выборки страниц из pdf файлов.
|
Newbooks.php
|
Новые поступления
|
|
News.php
|
|
Страница просмотра выбранной новости
|
Rules.php
|
Правила пользования
|
|
Services.php
|
Платные услуги
|
|
Service_database.db3
|
|
База данных НТБ, содержащая логи
|
Site.php
|
О библиотеке
|
|
Site_news.php
|
Новости
|
|
Structure.php
|
Структура библиотеки
|
|
Оставленные без комментария php файлы представляют собой оболочку для статических html страниц. Ссылки на эти страницы есть в меню сайта ЭБ. Стоит отметить, что страницы site_news.php, exhibitions.php, newbooks.php содержат собственные динамически создаваемые списки новостей. Новости выводятся по 10 на одной странице. Для навигации используются ссылки «Следующая страница -->» и «<-- Предыдущая страница». Ссылка «Следующая страница -->» отображается на первой странице, если количество новостей больше 10, на второй – если количество больше 20,… на n-ной – больше n*10. Ссылка «<-- Предыдущая страница» отображается на всех страницах новостей, кроме первой. Для каждой новости отображается заголовок, содержимое и дата создания новости. Чтобы можно было сослаться на конкретную новость, каждый заголовок содержит гиперссылку на страницу с содержимым данной новости. Создание, редактирование и удаление таких новостей производится в административной панели ЭБ.
Book.php – отображает страницу выбранного в электронном каталоге документа для просмотра пользователем. Также отображает количество страниц в данном документе и включает инструменты для перехода на другие страницы. В частности имеет кнопку «Перейти к странице №», поле для ввода номера страницы, кнопки «Предыдущая», «Следующая» для перехода по страницам документа. В качестве входных данных принимает номер страницы и зашифрованный путь к документу на локальном сервере. Входные данные задаются в get переменных веб-страницы.
Catalog.php – страница ЭБ, содержащая формы поиска документов. Поддерживает 2 способа поиска: простой и расширенный. В обоих случаях поддерживается поиск документов по одному или нескольким критериям. Критерий задается в графе «поле поиска». Далее опишем работу простого поиска. Выбрав критерий, пользователь вводит в графу «Терм поиска» текст, при помощи которого производится фильтрация документов
. При поиске можно использовать несколько критериев, для этого существует кнопка «Добавить» добавляющая дополнительную строку с полем и термом поиска. Если строка становится не нужна, ее можно удалить нажатием кнопки «Удалить» соответственно. Отношения между критериями поиска устанавливаются при помощи поля «знак» которое появляется, когда пользователь добавляет вторую строку и последующие. Возможные значения поля «знак»: «И», «ИЛИ», «НЕ». По умолчанию установлено значение «ИЛИ», что означает, что при поиске будут выведены результаты соответствующие одному критерию вместе с результатами, соответствующими другому критерию. В случае, когда выбрано значение «И», при поиске будут выведены результаты, соответствующие одновременно первому и второму критерию. В случае, когда выбрано «НЕ», при поиске будут выведены результаты, соответствующие первому критерию за исключением результатов, соответствующих второму. Расширенный поиск отличается от простого тем, что каждая строка помимо полей «поле поиска» и «терм поиска» содержит поле «условие». «Условие» позволяет интерпретировать «терм поиска» одним из предустановленных способов. Список значений, которое может принять поле «условие»: «Начинается с», «Не начинается с», «Включает», «Не включает», «Равно», «Не равно», «Больше», «Больше или равно», «Меньше», «Меньше или равно», «Нет значения», «Есть значение». При этом интерпретация поля «условие» в «простом поиске» соответствует значению «Включает» т.е. документ удовлетворяет критерию поиска, если содержимое «терма поиска» включено или другими словами является частью содержимого «поля поиска» по данному документу. По такому же принципу работают другие условия. {{Могут возникнуть проблемы с описанием всех пунктов}}
Для получения результатов поиска по заданным критериям используется кнопка «Найти». Результаты поиска представлены в виде списка, каждый элемент которого может содержать следующую информацию: номер в списке, полочный индекс, авторский знак, список авторов, заглавие, место издания, год издания, серию, ключевые слова, количество страниц (объем), вид литературы, физический носитель (what??), ISBN, цена, тираж, источник. Кроме того, авторизованным пользователям доступны гиперссылки на чтение оцифрованных документов. Максимальное количество документов, возвращаемых при поиске – 100, причем на одной странице результатов поиска выводится не более 10. Для переключения между страницами используются ссылки «<<< Предыдущая», «Следующая>>>» расположенные внизу блока вывода результатов поиска.
Eb_database.db3 – база данных, предназначенная для хранения значимого контента. Файл с этой базой данных подлежит резервному копированию. При переносе сайта НТБ на другой хостинг данный файл, в отличие от всех остальных должен быть перенесен непосредственно, а не выкачан из репозитория. В данном файле содержаться формируемые администратором сайта НТБ новости.
Handler.php – обработчик поиска документов. Данная страница не содержит пользовательского интерфейса и вызывается с использованием javascript. Получает в качестве входных данных форму поиска с введенными пользователем критериями запроса. Возвращает массив документов с необходимыми данными по документам в формате json. Примеры возвращаемых полей: Автор, заглавие, ключевые слова, место издания.
Join.php – Страница входа в аккаунт пользователя. Содержит поля «Фамилия», «Номер читательского билета» по которым в соответствии с библиотечной базой происходит авторизация пользователя. Ссылка на эту страницу находится в верхнем меню на всех страницах сайта НТБ. После успешной авторизации пользователь браузер пользователя перенаправляется на страницу, с которой была произведена маршрутизация. Авторизованный пользователь может просматривать книги в online режиме. Для этого нужная оцифрованная книга ищется при помощи формы поиска во вкладке «Ресурсы» - «Основной ЭК». Оцифрованные книги будут содержать ссылку «Открыть» которая открывает окно со страницей просмотра книги.
Logout.php - Данная страница не содержит пользовательского интерфейса и вызывается с использованием javascript. При обращении производится выход пользователя из аккаунта в случае, если вход был произведен.
News.php – страница, на которой отображается конкретная динамическая новость, созданная администратором сайта НТБ. Содержит заглавие, содержимое, дату добавления новости. Страница необходима для возможности сослаться на конкретную новость.
Pdfimages.exe – утилита командной строки, предназначенная для извлечения изображений из PDF файлов. Оригиналом является утилита «pdfimages», входящая в пакет xpdf-utils. Данный пакет предназначен для работы с pdf файлами и входит по умолчанию в состав многих дистрибутивов Linux. Используется скриптом book.php для получения страниц в формате jpg изображений из pdf файлов. При этом для корректной работы необходимо следующее условие: все файлы книг должны представлять собой набор изображений, причем каждое изображение должно представлять собой оцифрованную страницу.
Service_database.db3 – вторая база данных сайта НТБ, предназначена для хранения служебной информации. Содержит логи сайта.
Каталог includes
Данный каталог содержит серверные модули, представляющие собой php код, оформленный в виде вызываемых классов и функций. Каждый файл каталога includes имеет расширение .inc и инкапсулирует некоторую серверную функцию. В таблице 2 приведено краткое описание всех файлов каталога.
Имя файла
|
Назначение
|
Config.inc
|
Конфигурационный файл, в котором задаются данные для подключения к базе данных и административной панели сайта НТБ.
|
Global.inc
|
Конфигурационный файл, в котором задаются переменные, определяющие работу поиска книг, а также названия и пути к внутренним базам данных.
|
Logger.inc
|
Класс, инкапсулирующий работу с ведением логов по сайту НТБ. Содержит методы добавления, удаления и выборки записей логов из внутренней БД.
|
Login.inc
|
Класс, инкапсулирующий процесс авторизации пользователя на сайте НТБ. Содержит методы авторизации и выхода из аккаунта пользователя.
|
MarcWrapper.inc
|
Класс-обертка к базе данных электронной библиотеки ЯГТУ. Обращения к базе данных marc_stud идут через данный класс. Цель данного класса уменьшить сложность перехода на другую версию базы данных за счет концентрации всех обращений к ней в одном месте.
|
News.inc
|
Класс, инкапсулирующий работу с пользовательскими новостями, создаваемыми в административной панели.
|
PdfWork.inc
|
Класс, инкапсулирующий работу с pdf документами. Содержит метод для выбора изображений страниц из pdf документа, а также метод определения количества страниц в документе.
|
Smarty.inc
|
Собранный в одном файле набор функций, упрощающий работу со smarty. В данном файле собраны все функции связывающие серверную логику (php код) и логику представления (шаблоны содержащие html код со вставками smarty синтаксиса).
|
SqlWork.inc
|
Класс, инкапсулирующий работу с драйвером, связывающим MSSQL и PHP. Содержит метод выборки массива данных и метод экранизации строк запросов.
|
|