Создаем собственную систему отслеживания ошибок на PHP

Владимир | | Ajax, CodeIgniter, JavaScript, MySQL, PHP, Web разработка.

Приветствую всех!

Это первая статья о создании полнофункционального web приложения, которое будет представлять собой систему отслеживания ошибок (bug tracking system).

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

Система отслеживания ошибок (англ. bug tracking system) — прикладная программа, разработанная с целью помочь разработчикам программного обеспечения (программистам, тестировщикам и др.) учитывать и контролировать ошибки (баги), найденные в программах, пожелания пользователей, а также следить за процессом устранения этих ошибок и выполнения или невыполнения пожеланий.

Почему именно баг трекер?

Очень хороший вопрос 🙂 Вообще-то, причин две.

Первая – это приложение не «hello world». И на его примере можно показать совместное использование PHP, JavaScript, AJAX, работу с базой данных и т.д.

Вторая – такое web приложение можно сделать достаточно простым (реализовать минимум функций), но в то же время вполне работоспособным. Ведь основная задача этого цикла статей – показать пример создания полноценного приложения, но в тоже время хотелось бы удержать его объем в каких-то разумных рамках 😉

Постановка задачи.

Это, наверное, самый сложный этап. И дело не в том, что сложно составить перечень функций, для этого можно просто почитать описание к любой существующей bug tracking системе. Проблема в том, как сократить его до минимума, и в тоже время сохранить работоспособность.

После нескольких неудачных попыток у меня получился такой эскиз.

bug_tracker

Давайте рассмотрим его подробнее.

Прежде всего, хочу отметить, что наше приложение будет одностраничным. Т.е. все функции, в т.ч. и пагинация (перелистывание) будут реализованы с помощью AJAX запросов.

Теперь обратите внимание на выделенные красным цветом пункты. Они будут доступны только в режиме администратора, их мы реализуем в последнюю очередь.

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

Форма для отправки сообщений о багах. Содержит 4 поля: заголовок, имя автора, категорию ошибки и её описание.

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

Ответы также можно будет сворачивать и разворачивать. Удалять их и сообщения о багах смогут только администраторы.

Кстати, обратите внимание на ссылку «Ответить». При клике на неё появится форма отправки ответа.

Теперь пару слов об инструментах.

Для серверной части скрипта будем использовать PHP, фреймворк CodeIgniter и, конечно, MySQL.

На клиентской – JavaScript и библиотеку jQuery.

Кроме того, при необходимости, будем использовать и другие библиотеки. Например, HTML Purifier.

В следующий раз мы рассмотрим установку фреймворка, создадим базу данных и подробно разберем её структуру.

Продолжение следует…

P.S. Любые советы, замечания и предложения всегда приветствуются 🙂