Problēma

Projekta sākumā klientam bija tradicionāla vietnes satura vadības sistēma (CMS), kurā lapu rediģēšana notika formu veidā administratīvajā panelī, un katrs lauks atbilda kādam blokam lapā. Lietotājiem šī pieeja bija pilnībā nepārskatāma un apgrūtināja vietnes pārvaldību. Turklāt sarežģītākiem vietņu elementiem (tarifu tabulām, veidlapām u.c.) klients izmantoja uzņēmuma pakalpojumus, kas izstrādāja/ieviesa tajā laikā izmantoto sistēmu. Tas noveda pie tā, ka jebkuras vietnes izmaiņas, pat teksta, aizņēma ļoti ilgu laiku un bija dārgas. Tādēļ klients pieņēma lēmumu izstrādāt savu CMS ar intuitīvu WYSIWYG satura pārvaldību, ar kuru varētu viegli stādāt arī ne tehniskais personāls.

Risinājums

Tika izstrādāts mehānisms, lai veidotu saturu, izmantojot pielāgojamus velkamās un nometamās vizuālās komponentes (logrīkus), kas kalpo kā lapas veidošanas bloki. Kopā ar klientu tika izveidots saraksts ar nepieciešamajām komponentēm, tādām kā: formu veidotājs, tabulu un tarifu konstruktors, komponents ar karti, ar slaideri, ar paralaksu, ar galeriju un citiem vizuāliem elementiem un to kombinācijām. Sistēmas izmantošanas laikā saraksts ar komponentēm tika papildināts, tādējādi paplašinot redaktoru iespējas.

Papildus satura veidošanas mehānismam tika izveidots CMS vadības panelis, kurā iekļautas šādas funkcijas:

  • Dažāda veida lapu pārvaldība: rediģēšana, metadati, publicēšana;
  • Valodas pārvaldība: valodas konteksti, valodas konstantes, lapu tulkojumi;
  • Lietotāju un viņu tiesību pārvaldība;
  • Failu pārvaldība: mapju struktūra, lejupielāde/dzēšana, metadati;
  • Izvēlnes vadība: struktūra, līmeņi.

Tehniskais apraksts

Sistēmas arhitektūra sastāv no trīs daļām:

  • Servera puse, izveidota izmantojot .NET, kas atbild par lapu attēlošanu, maršrutēšanu, drošību, formu apstrādi, e-pastu sūtīšanu, integrāciju ar citām sistēmām, API administrēšanu u.t.t..
  • Lapu konstruktors – AngularJS pielikums, kas lietotājiem ļauj veidot lapu WYSIWYG režīmā, izmantojot pielāgojamus vilkšanas un nomešanas vizuālajām komponentēm (widgetiem).
  • Vadības panelis – lapas aizmugure, kas uzrakstīta AngularJS. To izmantojot ir iespējams konfigurēt un pārvaldīt vietni kopumā.

Lai īstenotu projektu, tika izvēlēta standarta .NET Framework versija, jo projekta sākšanas brīdī .NET Core joprojām bija beta testēšanas posmā, bet, projekta īstenošanai, uzticamība un stabilitāte bija svarīgāka nekā starpplatforma, kā arī .NET Core jauninājumi nebija tik nozīmīgi.