Post Mortem

Какво се случва с този сайт?

Казвам се Никола Ганчев и съм главният разработчик на този сайт. За жалост, той няма да бъде използван от ППМГ "Гео Милев" като главен в бъдеще. В тази статия ще опиша как се стигна до този момент.

Предистория

През април 2023 година, сайтът на ППМГ "Гео Милев" беше хакнат, свален и изтрит. Поради липсата на резервни копия и други трудности беше взето решението да се смени сайта на училището. След дълга поредица от успехи на състезания, задачата беше възложена на мен. Събрах екип с други двама - Пламен Желев и Михаил Михов и се захванахме за работа.

Планиране

Първо си разпределихме задачите по сайта. На Пламен беше възложен дизайнът, на Мишо - хостинг и devops, а на мен - да напиша кода.

След това с Михаил започнахме разговори за архитектурата на сайта.

И на двамата ни беше ясно, че сайта, който създадем, няма да бъде програмно поддържан след завършването ни на 12 клас. Стигнахме до консенсуса, че сайтът трябва да изпълнява следните изисквания:

  1. Да може да издържи до около 15 години без никакви промени в кода
  2. Да изглежда и да се държи по същия начин като в момента на създаване дори след тези 15 години
  3. Все пак цялата информация в сайта да може да се променя, ако училището си смени името (отново), логото (отново) или каквото и да е друго
  4. Разработката да е максимално бърза, така че да се впишем в сроковете без да жертваме важни функции
  5. Да не бъде хакнат в рамките на 2 години поради неактуална операционна система на сървъра и поради неактуални инструменти за хостинг
  6. Да изпълнява всички очаквани изисквания като използваемост на мобилни устройства, достъпност, бързина. За бързината си поставихме за цел да гоним най-стария сайт на гимназията, в който всяка страница се състоеше от около 200 реда .html файл и зареждаше почти мигновено.
  7. Да се различава от дизайна на сайтовете на други училища

Взехме следните решения съгласно тези цели:

  1. Няма да използваме WordPress
  2. Няма да използваме готови шаблони за дизайна или готови CSS библиотеки
  3. Няма да позволяваме сайтът да се хоства на сървър поддържан от училището на каквато и да е цена

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

Спряхме се на PayloadCMS, който е headless cms, което означава, че няма инструменти за редакция на потребителския интерфейс. С други думи, администраторския панел е колекция от полета (формуляр), които се попълват от администратора. Потребителският сайт чете тази информация и я представя по определени от нас правила, които не могат да бъдат променяни.

Михаил се захвана с изграждане на инфраструктура в Google Cloud. В момента сайтът върви на Cloud Run на най-ниска цена, което означава, че ако няма заявки към него за известно време, сървърът заспива. Ако някога си зареждал този сайт и е отнело много време, то най-вероятно си чакал да се стартира сървърът.

Разработката

Разработката беше относително спокоен период въпреки наближаващия краен срок. Даже имахме време да мислим за улесняване на администраторите.

Например, в Shkolo администраторът трябва да напише цялата програма ръчно - клас по клас, ден по ден, час по час, предмет по предмет и учител по учител. Изградих система за нашия сайт, която приема форматиран .csv файл със седмичната програмата, експортиран от Excel, и извлича цялата нужна информация за потребителския интерфейс. Подобна система беше изградена и за учебниците.

Трябваше също да осигуря и попълването на сайта, което включваше писане на статии, работа с Ученическия съвет и дори пътешествие до Регионална библиотека "Захарий Княжески" за историческа справка и някои снимки на старата сграда на гимназията.

Между другото, въпросните снимки бяха дадени с уговорката, че заедно с тях ще бъде споменавана библиотеката, така че препоръчвам администраторите на новия сайт да актуализират "За нас" страницата си.

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

Какво стана?

Този септември се върнахме на училище и работата продължи. През лятото бях наблюдавал трудностите по поддръжката на сайта и директно започнах работа по оправянето им и по добавянето на нови функции.

Това продължи до 26 октомври, когато рано сутринта ми беше съобщено, че нашият сайт е заменен. Появи се https://pmgsz.com/, нов сайт, с информация напълно копирана от нашия. Отидох шокиран в дирекцията.

Оказа се, че администраторИ на сайта няма как да има. Той е само един, като освен администратор на сайта, лицето е също и администратор на Shkolo, още няколко платформи и работи като учител. Нямал е време да чете документация или да се занимава с новата технология, която ние използваме, и е предпочитал познатия WordPress.

Някъде през лятото, училището е било информирано, че се изготвя дарение - сайт на WordPress от трето лице. Дадени са инструкции за информационна база да се ползва нашия сайт - от разпределение на страниците, до самите текстове.

Решението на училището спрямо ситуацията е разбираемо. Най-големият проблем за мен е, че на нас нищо не ни беше казано относно това. Цялата случка беше като гръм от ясно небе.

Какво ще се случи сега?

Този сайт няма да бъде изхвърлен. Вместо това ще бъде ребрандиран в сайт на "ученическата общност". Ще бъде премахната цялата административна информация от него - документи, бланки и други. Администрацията ще премине в ръцете на Ученическия съвет, който да публикува новини за клубовете си, сладки базари и други подобни.

Спрямо това, аз не мога да дам никакви гаранции за бъдещето на сайта. Ученическият съвет е променлива и нестабилна структура. Преди 4 години е имал 3 редовни члена, а сега - 20. Въпреки сегашната исторически рекордна сила на организацията, засега съветът дава сигнали, че няма наличен човек, който да се занимава с администрация на сайта.

Дори и да има такъв човек, не мога да гарантирам пълната функция на всички инструменти. Например:

  • за актуализиране на седмичната програма е нужна началната Excel таблица, а не каченият .pdf документ на сайта, тоест тя трябва да се набави от точния учител
  • калкулаторът за пресмятането на БАЛ в страницата Прием трябва да се следи и съобразява с най-новите промени
  • формулярът в страницата Контакти трябва да се проверява редовно за нови подадени съобщения

Дори и сайтът да се държи актуален, не мога да гарантирам, че ще има смисъл. Някои ученици не са сигурни дали ще е нужно да посещават нашия сайт, при положение че цялата важна информация ще бъде качвана в главния.

Спрямо тази информация, искам да обявя, че спираме активната разработка на сайта. Изключение правят поправките на критични бъгове и функциите, по които вече сме работили, но още не са достигнали сегашната версия.

Сайтът ще бъде преместен на https://pmgsz.org/ или на поддомейн на https://pmgsz.com/

Разходите по хостинга на сайта ще бъдат поети от училището.

Какво остана?

При положение прекъсването на разработката на сайта, публикувам списъка с нови функции, които щяха да се появят през идните месеци:

  • Известия - всеки потребител с поддържан браузър щеше да може да се абонира за известия на теми като "прием 4 клас", "прием 7 клас", "седмична програма" и да получава уведомления за новини за тях на телефона или на десктопа си
  • Търсене на новини - щеше да има пълно текстово търсене на новини и филтриране на категории
  • Пълна поддръжка на формуляра в страница Контакти - формуляртът щеше да получи пълна защита против спам и други атаки, а запитванията попълнени чрез него щяха директно да се изпращат по имейл на администратора/ръководството
  • Документация в администраторския панел - цялата документация щеше да се интегрира директно в страниците на администраторския панел, вместо да се търсят индивидуални теми в Word документа с 30 страници
  • Предварителен преглед - в момента администраторите не могат да виждат как ще изглеждат промените им в дизайна на страницата, която редактират, защото не ни остана време за тази функция
  • Улеснен текстови редактор за администраторите
  • Създаване на нови страници - измислихме начин за създаване на нови страници без да се нарушава дизайнът на сайта

...и много други.

Възможно е някои от тези функции все пак да намерят пътя си до сайта. За да се случи това, трябва да са били изпълнени следните условия:

  • в някой час съм си свършил работата рано
  • имал съм достъп до компютър
  • бил съм в настроение за работа по сайта на училището, дори и без директна мотивация за това
  • не съм имал нищо по-важно за правене

Можеш ли да направиш нещо?

Най-вероятно не. Ако много ти харесва нашия сайт, можеш да го посещаваш, било то за да видиш дали Ученическият съвет е публикувал нещо.

В кръга на шегата, можеш да накараш родителите ти да звънят в дирекцията и да се оплакват, но горещо не препоръчвам тази опция.

Можеш да пробваш да намериш свободен учител, който да е навит да се научи да поддържа този сайт и съвестно да го прави. Освен това трябва да е постоянно на линия, за да може да качва важните новини. След това можеш да уговориш нашият сайт отново да стане главен. Ако поемеш по този път, ти пожелавам късмет, защото ще ти трябва. Ние вече опитахме.

Относно новия сайт - оказва се, че на много ученици не им харесва леко шаблонния полъх, идващ от него и избрания цвят. Можеш да подадеш обратна връзка, но не съм сигурен къде.

Край

Често ме питат дали съм ядосан относно случилото се. Отговорът по-скоро е "не". Не съм първият, който опитва да смени сайта на училището, нито последният. Знам какво се е случило с повечето предишни опити. Очаквах нещо подобно да се случи. Всъщност, спрямо много от предишните опити, ние имаме късмет. Единствено бях ядосан, че не бяхме уведомени по-рано за идващия нов сайт, така че да можем спокойно да завършим разработка и всичко да не е толкова... внезапно.

На добър час!

- Никола Ганчев