Všetky projekty

PrácaITM2026

Institute of Lung Diseases

Prepis webu verejného zdravotníckeho inštitútu od nuly: natvrdo zapísané stránky a mŕtvy layout z roku 2019 nahradil Laravel portál, ktorý zamestnanci naozaj vedia spravovať.

Rola
Full-stack
Stav
Prebieha
Jazyky
AZ · EN

01Prehľad

Vedecko-výskumný inštitút pľúcnych chorôb je verejná právnická osoba v Baku s koreňmi siahajúcimi k protituberkulóznemu inštitútu z roku 1944. Jeho web etacxi.az je miesto, kde občania hľadajú štruktúru inštitútu, jeho vedenie, správy a praktické informácie pred návštevou.

Web, ktorý dnes stojí, vznikol v roku 2019 a odvtedy sa nepohol. Prepisujem ho od nuly: tá istá inštitúcia, tá istá verejná úloha, ale platforma, ktorú zamestnanci udržia aktuálnu bez vývojára.

02Problém

Sekcia správ nie je sekcia. Každá správa má vlastnú natvrdo zapísanú cestu - /xeber1, /xeber2, /xeber3 - takže čokoľvek zverejniť znamená upraviť kód a nasadiť. Najnovšia položka je z roku 2023, čo sa stáva, keď je publikovanie úlohou vývojára.

Odkazy v pätičke sú zástupné texty, ktoré doteraz hlásia "link 1" až "link 6" a nevedú nikam. Stránka sa deklaruje ako anglická, hoci podáva azerbajdžančinu. Beží po nezabezpečenom HTTP.

Obsah sedí v šablónach namiesto v databáze, takže sa nedá vypísať, filtrovať, vyhľadávať ani zobraziť vo viacerých jazykoch bez duplikovania šablóny.

03Architektúra

Obsah sa sťahuje zo šablón do databázy. Všetko, čo návštevník číta, sa stáva záznamom, ktorý vlastní redaktor, a verejný web je tenká vykresľovacia vrstva nad ním.

Návštevníci

Občania

Služby, kontakty, vedenie, správy

Médiá a partneri

Oznamy, galéria, medzinárodné vzťahy

Verejný web

Blade šablóny

Responzívny layout, postavený nanovo

Jazykové cesty

/az a /en z jedného obsahového modelu

Aplikácia

Laravel kontroléry

Stránky, správy, galéria, kontaktný formulár

Administrácia

Prihlásený CRUD pre každý typ obsahu

Validácia

Form requesty, CSRF, kontaktný formulár chránený pred spamom

Dáta

MySQL

Stránky, správy, zamestnanci, galéria, preklady

Úložisko médií

Nahraté obrázky a dokumenty

04Komponenty

Obsahový model

Zo stránok sa stávajú záznamy

  • Statické stránky - všeobecné informácie, vedenie, štruktúra, medzinárodné vzťahy - sa menia na editovateľné záznamy namiesto šablón.
  • Záznam o vedení nesie fotku, funkciu a životopis, takže zmena riaditeľa je formulár, nie commit.
  • Každé textové pole je pre daný jazyk, takže azerbajdžančina a angličtina sú ten istý záznam, nie dve kópie stránky.

Laravel · MySQL

Správy a oznamy

Náhrada natvrdo zapísaných ciest

  • Jedna tabuľka správ s dátumom zverejnenia, slugom a stavom, vypísaná so stránkovaním a čitateľná na stabilnej URL.
  • Koncepty zostávajú neviditeľné až do zverejnenia, takže redaktor si môže správu pripraviť dopredu.

Administrácia

Kto web udržiava pri živote

  • Prihlásenie oddelené podľa rolí: redaktori zverejňujú správy a galériu, administrátor spravuje stránky, zamestnancov a používateľov.
  • Nahraté obrázky sa zmenšujú a ukladajú mimo kódu, takže médiá nikdy nie sú súčasťou nasadenia.

Služby pre občanov

To, prečo ľudia naozaj prídu

  • Praktické stránky - povinné zdravotné poistenie, kontakty, adresa a telefónne čísla - dostávajú vlastnú štruktúru namiesto toho, aby boli pochované v texte.
  • Kontaktný formulár sa validuje na serveri a má obmedzenie frekvencie; správy sa ukladajú aj odosielajú mailom.

Frontend

Layout, ktorý prežije telefón

  • Ručne písané HTML, CSS a JavaScript, postavené responzívne nanovo namiesto záplat na starom markupe z čias jQuery.
  • Externé vloženia, ktoré starý web načítaval na každej stránke, sú preč; galéria a video sekcie sa obsluhujú lokálne.

HTML · CSS · JavaScript

05Ako to funguje

  1. 1

    Redaktor píše

    Zamestnanec vytvorí správu alebo upraví stránku v administrácii, v oboch jazykoch.

  2. 2

    Validovať a uložiť

    Form request skontroluje vstup; text ide do MySQL, obrázky do úložiska médií.

  3. 3

    Zverejniť

    Nastavenie stavu na zverejnené okamžite zaradí záznam do verejných výpisov.

  4. 4

    Požiadavka

    Návštevník príde na jazykovú cestu; kontrolér načíta záznam pre daný jazyk.

  5. 5

    Vykreslenie

    Blade vykreslí stránku v layoute inštitútu, responzívne až po šírku telefónu.

06Návrhové rozhodnutia

Prepis namiesto nového vzhľadu

Problémom nie je, ako web z roku 2019 vyzerá. Problémom je, že obsah žije v kóde - nový náter CSS by nechal inštitút rovnako neschopný publikovať ako dnes.

Laravel pre verejnú inštitúciu

Dlhodobo udržiavateľný PHP stack, ktorý si vedia ľudia inštitútu prevziať a prevádzkovať, s už vyriešenou autentifikáciou, validáciou, migráciami a administračnou vrstvou.

Dvojjazyčnosť dátami, nie duplikovaním

Preklady sú stĺpce záznamu, nie druhá kópia webu. Práve to bráni azerbajdžanskej a anglickej verzii rozísť sa tak, ako sa rozišla tá stará.

HTTPS a poriadne nastavenie domény

Verejná zdravotnícka inštitúcia, ktorá pýta od občanov kontaktné údaje po nezabezpečenom HTTP, je neprijateľná; TLS je súčasťou prepisu, nie neskoršou úlohou.

07Technológie

Backend
PHPLaravelMySQL
Frontend
HTMLCSSJavaScriptBlade
Prevádzka
NginxGit

08Ďalšie kroky

  • Migrovať existujúce stránky, archív správ a galériu do nového obsahového modelu.
  • Dokončiť anglickú jazykovú verziu, aby oba jazyky vyšli naraz.
  • Prejsť prístupnosť - verejný zdravotnícky web musí fungovať pre ľudí, ktorí s ním najmenej vládzu bojovať.

Ďalšia prípadová štúdia

EduVision

Adaptívny inteligentný tútorský systém s neuro-symbolickou architektúrou.