
Компютърните мрежи ни заобикалят всеки ден и са част от живота на модерния човек. Те ни помагат да общуваме, работим, обменяме идеи с хора от целия свят. Липсата на място в българското киберпространство, където да бъде намерена информация за тях, ни накара да създадем удобен портал за всички интересуващи се. Той е подходящ, както за начинаещи, така и за напреднали мрежови администратори. Основната идея е съдържанието да бъде свободно. Потребителите могат да четат свободно, да променят съдържанието, да добавят ново, да коментират и да дават идеи. По този начин покрай сайта може да се оформи активно общество, което да го обогатява, както информационно, така и културно. Портала може да бъде намерен на адрес networks-bg.net
Целта на този сайт е да бъде място с богата информация на тема компютърни мрежи. Тази информация е свободна във всеки смисъл на думата. Всеки може да я чете, редактира и да добавя нова. Комбинирахме това с удобен потребителски интерфейс и се получи едно приложение с голяма използваемост.
Разработването на приложението премина през няколко етапа. Прпва стъпка беше изграждането на дизайн и проектирането на потребителския интерфейс. Втора стъпка беше конфигурирането на Yii Framework. След това бяха изградени “модел”(model) класовете. Четвърта стъпка беше написването на контролерите(controller) със съответните им действия(методи) и съответстващите изглед файлове(view). След което бяха конфигурирани нужните филтри, Като предпоследна стъпка остана конфигурирането на кеширането. И за финал бяха извършени мероприятия по дебъгване и контрол на сигурността.
Системата е изградено от няколко модула. Първият е за управление на потребителите, аутентикация и ауторизация. Втория модул е за управление на публикациите – позволява свободно редактиране, аранжиране, достъп до съдържанието от всеки регистриран потребител на системата, като промените по съдържанието се одобряват от администратор или автора на съответната публикация. Следващият модул е за комуникация със социалните мрежи. Неговата цел е да пренесе портала в любимите на потребителите приложения. Последния модул управлява галерия от скриптове полезна на системните администратори.
При разработване на системата, изпозлвахме няколко модерни популярни технологии за уеб разротка – xHTML, CSS, JavaScript(AJAX), PHP, MySQL, Adobe Flash(Action Script) и XML. Приложението е стриктно обектно-ориентирано. Използван е шаблона за дизайн сек(singleton) с MVC. Сек се използва за стартиране на основния клас, който задвижва MVC шаблона. Той дешифрира заявки и зарежда съответните контролери, който зареждат модели и сглобяват изгледи. С този подход се постига голяма преизползваемост на кода, което спестява време при разработването и повишава ефективността на самото приложение. Интересно е, че се използва така наречения похват lazy loading(мързеливо зареждане), при което даден клас не се включва, докато той не бъде повикан. Това се осъществява посредством магическите методи на класовете в PHP 5 и помага за изключително голямото бързодействие на приложението. Теоритически с включването на APC(Alternative PHP Cache) приложението може да обработва до 600 заявки за секунда.
Първия проблем, който трябваше да решим е изграждането на максимално интуитивен и удобен потребителски интерфейс. Нашата цел не е да запознаваме хората с нова тенденция в уеб навигацията, а да им предоставим лесен достъп до нужната им информация. Постигнахме това, като опростихме дизайна максимално, избягвайки използването на големи по обем обекти. При проектирането се обърна голямо внимание на използваемостта с което да се подобри драстично преживяването на потребителя ползващ приложението. Има една горна лента с връзки към основните компоненти на системата и удобно падащо меню за бърза навигация между категориите съдържащи информация. От ляво се намира меню, което свързва потребителя с основните функционалности. То може да бъде скрито, при желание на потребителя да увеличи пространството за ефективна информация. Друг проблем, на който обърнахме голямо внимание беше SEO оптимизацията и популяризацията на сайта.
Кода на приложението е добре структуриран, подреден, документиран. Постарали сме се да спазваме всички норми за именуване на променливите и коментиране на кода. Всеки клас със своите методи и свойства е добре документиран. Освен това приложението има и голяма преносимост. Използва абстрактен слой за връзка с базата от данни, което помага за лесната миграция между отделните хостове. Също така се използва и добре балансирано кеширане на няколко нива, което драстично увеличава бързодействието на системата. Обърнато е и внимание на сигурността, като е разположена така наречената периметърна защита. Входните данни се филтрират, а изходните се декодират, което осигурява защита, както на потребителя така и на самия портал. Използват се prepared statements, бисквитките се подписват с HMAC, а сесиите за защитени от атаки за тяхното фиксиране.
В крайна сметка се получи едно бързо, сигурно и надеждно приложение с голяма разширяемост, скалируемост и капацитет да бъде доразвито в бъдеще. Портала може да намери широко приложение в учебния процес в сферата на българското образование, както в училищата, така и в университетите. За тази цел то е предоставен за свободно ползване от всички потребители.