Двадесет и шестото човешко право гласи – “Всеки има право на образование”. Всеки човек по света, без значение кой е и къде е трябва да получи шанса да развие таланта си. Нивата на неграмотност са застрашаващи и явно сегашната система на обучение се проваля. Време е за нов вид обучение. Време е да осъзнаем, че таланта не е само в училищата. Той е навсякаде. Учебните часове могат да се провеждат не само в класните стаи и ние смятаме, че модерното образование трябва да използва модерни методи. Време е да използваме технологиите, за да пренапишем правилата на обучението. Сега е момента всеки, който иска да знае нещо да го получи с две кликвания с мишката. Всички хора по света трябва да се обединят срещу неграмотноста, да получат място в Интернет, където без значение, какъв език говорят или къде живеят, да могат да се докоснат до красивите дълбини на човешкото познание. Точно това е идеята на нашата система – Eduow (Education over the world).

Целта на нашия проект е да играе ролята на посредник между потребителите и познанието. В него са интегрирани всички функции на една модерна уеб базирана система за обучение, като е осигурен и мултиезичен интерфейс. Нещата, от които се нуждае потребителят в една подобно приложение са няколко – удобно търсене на учебни материали, водене на записки, помагала, самопроверка, комуникация с другите потребители и други. Точно тези функции могат да бъдат открити в нашата система. Тя предоставя много удобен начин за търсене на материали като ги групира по тематика и/или по степен на трудност (клас), като всеки който има желание може да аранжира, редактира, споделя и създава свободно. Учениците могат да отсяват най-същественото от публикуваните материали и да го съхраняват в своите електронни тетрадки. Помагалата, също играят съществена роля при самоподготовката им, защото могат да изградят, доразвият или оценят техните качества и умения. Освен това, учениците могат да комуникират със съученици и преподаватели, което способства за обособяване на една по приятна работна среда, повишаваща качеството на учебния процес. И не на последно място всеки може да ползва системата с удобен за него език.
Разработването на приложението премина през няколко етапа. Първата стъпка беше точно формулиране на целите на проекта, анализ на предвидените проблеми и намиране на оптималното им решение. Втората стъпка беше изграждането на дизайн, проектирането на потребителския интерфейс и написването на основните JavaScript модули за навигация. Четвъртата стъпка беше конфигурирането на Yii Framework. След това бяха изградени модел (model) класовете. Шеста стъпка беше написването на контролерите(controller) със съответните им действия(методи) и съответстващите изглед файлове(view). След което бяха конфигурирани нужните филтри, Като предпоследна стъпка остана конфигуриране на кеширането. И за финал бяха извършени мероприятия по дебъгване и контрол на сигурността.
Първия проблем, който трябваше да решим е изграждането на максимално интуитивен и удобен потребителски интерфейс. Нашата цел не е да запознаваме хората с нова тенденция в уеб навигацията, а да им предоставим лесен достъп до нужната им информация. Постигнахме това, като опростихме дизайна максимално, избягвайки използването на големи по обем графични обекти. При проектирането се обърна голямо внимание на използваемостта, с което да се подобри драстично преживяването на потребителя, ползващ приложението. За зареждане на отделните части на сайта използваме технологията AJAX, която използва скрити за потребителя XMLHttpRequest заявки, които извличат само полезната информация, без да се презарежда страницата. Това увеличава бързодействието и добавя интерактивност на системата. В процеса на разработка се появиха някои недостатъци – браъзърът не пазеше история за дейността на потребителя, нямаше възможност за отбелязване на страници и други. За щастие успяхме да преодолеем вички недостатъци на AJAX интерфейса, като това само подобри работата на нашето приложение. При изключване или неналичие на JavaScript на клиентската машина, приложението може успешно да изпълнява основните си функции.

Друг проблем, който решихме, беше локализирането на основната рамка на приложението и интернационализацията й. Нашият екип допринесе много за локализацията на Yii, като направи българският език един от най-добре поддържаните езици след английския. При проектиране на приложение наблегнахме на използването на принципа I18N, който позволява лесното адаптиране на приложението към различни езици, което ни помогна много при имплементирането на многоезичност на системата.
Друг проблем, на който обърнахме голямо внимание, беше SEO оптимизацията и популяризацията на сайта. За постигане на това сме използвали добре познати техники за SEO оптимизация, които комбинирани с регистрацията на сайта в голям брой каталози и портали, допринасят за неговата популяризация и развитие. Успяхме да се преборим с всички перипети, които се появяваха пред AJAX интерфейса от гледна точка на SEO оптимизацията.
Приложението е изградено от няколко модула. Първият е за управление на потребителите, аутентикация и ауторизация. Втория модул е за управление на публикациите – позволява свободно редактиране, аранжиране, достъп до съдържанието от всеки регистриран потребител на системата. Следващият модул е за комуникация със социалните мрежи, Неговата цел е да пренесе портала в любимите на потребителите приложения. Изграден е и модул за комуникация между потребителите вътре във системата. Важна част от системата е модула за водене на записки от потребителите, който им позволява да систематизират уроците си в удобен за тях вид, така че усвояването на учебния материал да бъде по-ефикасно. Те могат да водят собствен блог, който другите може да четат на персоналната им страница. На разположение на потребителите е и модул с функциите на органайзер, за да могат да организират по-добре ежедневието си. Полезен модул е и така наречения “Колектор”, който осигурава един интерфейс на потребителите, с който да търсят в трите най-известни търсачки. Той е реализиран с помощта на Yahoo query language.
Както вече споменахме приложението е стриктно обектно-ориентирано. Използван е шаблона за дизайн сек (singleton) с MVC. Сек се използва за стартиране на основния клас на Yii(приложение), който задвижва MVC шаблона. Той дешифрира заявки и зарежда съответните контролери, които зареждат модели и сглобяват изгледи. По този начин се постига голяма преизползваемост на кода, което спестява време при разработването и повишава ефективността на самото приложение. Интересно е, че се използва така наречения похват lazy loading (мързеливо зареждане), при което даден клас не се включва, докато той не бъде повикан. Това се осъществява посредством магическите методи на класовете в PHP 5 и помага за изключително голямото бързодействие на приложението. Теоретически с включването на APC (Alternative PHP Cache) приложението може да обработва до 600 заявки за секунда.
Кодът на приложението е добре структуриран, подреден, документиран. Постарали сме се да спазваме всички норми за именуване на променливите и коментиране на кода. Всеки клас със своите методи и свойства е добре документиран. Освен това приложението има и голяма преносимост. Използва абстрактен слой за връзка с базата от данни, което помага за лесната миграция между отделните хостове. Също така се използва и добре балансирано кеширане на няколко нива, което драстично увеличава бързодействието на системата. Обърнато е и внимание на сигурността, като е разположена така наречената периметърна защита. Входните данни се филтрират, а изходните се декодират, което осигурява защита, както на потребителя така и на самия портал. Използват се prepared statements, което помага за по-надеждната защита от SQL инжекции, които са особено опасни за самата система. За защита от XSS атаки използваме вградените функции на рамката на приложението, които филтрират опасните тагове от данните въведени от потребителя. Освен това използвамe разширението HtmlPurifier, което е особено ефективно при защита от XSS атаки и подобряване на семантиката на кода. Бисквитките биват подписвани с помощта на HMAC.
С много труд завършихме този проект имащ за цел да направи достъпа до знанието бърз и удобен. Решихме много добре поставената си от нас задача и в крайна сметка се получи продукт, който лесно може да бъде използван от всеки любознателен човек. Надяваме се тази система да е една малка крачка към развитието на образователните технологии.
Здравейте. Проекта изглежда невероятно
може ли да дадете някакъв линк, за да го видя на живо?
Да аз най-важното съм забравил… Заповядай – http://eduow.com
Мерси
14:31
Замислете се как може да се представи тази ваша работа. Има два варианта. Като разработчици, ако вие предоставяте услугата безплатно, не само от гледната точка на потребителите, ами и извършвате безплатна поддръжка и текат постоянни доработки, то тогава наистина eduow е услуга.
От маркетингова гледна точка Eduow е един продукт, който би могъл да стане широко ползваем и да носи пари. Знам, че целта ви не е този проект да носи пари. Сигурно го знам доста по-добре, отколкото го знаят хората, които са гледали кода и са били на презентацията и защитата. Но…може да се държи малка такса за поддръжка, адаптация и доработка. Сигурно знаете, че това, което сте направили няма да стигне до очите на властимащите. Знаете го. Няма да стигне до правилните очи, защото вие сте разработчици и там ви е силата. Ако намерите правилен човек или екип, в който ентусиазма е в пъти повече, отколкото идеята за печелене на пари, сигурен съм, ще успеете да наложите рано или късно.
Има вероятност когато започнете работа да не ви остава време за този продукт. За жалост не мога да дам пример за подобен продукт, който издържа разработчиците си. Сигурно няма. Вероятно няма и да има дълги години напред.
Тъй като имам познати, които са млади и нахъсани като вас, обаче в маркетинг сферата, дайте да опитаме нещо. Свържете се с мен по имейл, аз ще задвижа нещата и ще започна процес по издирване на хора, които искат да представят вашата идея…пък да видим, може да излезе нещо. Може да излезе и нещо голямо. Може и нищо да не излезе. Правилен подход може да промени образователната система…и да спести едни 52 милиона на държавата. Знам, че звучи сюрреалистично, но един кабинет, в който да има GNU/Linux и Eduow звучи далеч по-привлекателно, отколкото Windows и нищо-кой-знае-колко-полезно. GNU/Linux, защото изисква по-малко грижи и нула пари и Eduow, който да движи почти всички неща. Знам, че си учил в специализирано училище и много пъти си се питал дали има алтернативи на използваните софтуери от сорта на *cad, чертане на схеми и мрежи…и сигурно си намирал алтернативи, които се държат и по-стабилно
Помислете с колегата. Мога да ударя едно рамо в концепцията и ще отделя време за разписването, пък онези хора, за които писах по-горе ще се опитат да придвижат разписаното към горните етажи. Не е задължително да се получи, но само заради опита си струва. Човек трябва да се опитва докато е млад, колкото и утопична да е каузата.
Пиши ми на мейла.