O cmsRS

Wiele firm, które zajmują się tworzeniem stron internetowych, chwali się autorskim systemem zarządzania treścią (CMS - content management system), innymi słowy stroną internetową, którą można konfigurować wg własnych upodobań i potrzeb. Jest także wiele innych systemów tego typu dostępnych w postaci "open source", które są rozwijane od lat (np. WordPress, Joomla!). Ja także postanowiłem stworzyć swój system CMS z możliwością dodania wielu języków (np. angielski i polski) oraz z modułem sklepu internetowego. System ten jest w pełni darmowy, a kod źródłowy można pobrać ze strony https://github.com/cmsrs/cmsrs3. Aby zapoznać się z możliwościami tego systemu polecam zobaczyć wersję demo, także ta strona jest przykładem wykorzystania tego systemu. W odróżnieniu od innych systemów dedykowanych podobnym potrzebom, ta cechuje się stosunkowo łatwą rozbudową, dzięki temu, że kod został napisany wg określonych standardów:

  • frontend został oddzielony od backendu, serwer wystawia REST-owe API (dotyczy to panelu administracyjnego),
  • po stronie serwera używam Laravel-a, a od frontu React-a i Redux-a (w panelu administratora),
  • napisałem testy jednostkowe i integracyjne dla kodu po stronie serwera (Laravel),
  • na froncie (strony wyświetlane dla użytkownika) używam Vue.js.

Strona ta stanowi także szkielet aplikacji, który w sposób modułowy można rozbudowywać o kolejne funkcjonalności. Możliwości mojego CMS-u to m.in.:

  • zarządzanie treścią (dodawanie i edycja),
  • dodawanie zdjęć oraz tworzenie miniaturek zdjęć,
  • zarządzanie menu,
  • możliwość komentowania artykułów,
  • możliwość skonfigurowania strony tak, aby była przyjazna wyszukiwarkom internetowym (takim jak Google), kluczowymi elementami są m.in.: odpowiedni dobór linków (w zależności od języka są różne url-e) oraz tytułu strony.

Natomiast moduł sklepu internetowego daje możliwość:

  • dodania produktów w panelu administratora,
  • dodanie produktów do koszyka na stronie frontowej,
  • zalogowania użytkownika do strefy klienta i wyświetlenie zawartości koszyka i zamówień,
  • integracja z PayU - utworzenie płatności za pomocą PayU.

Dzięki mojemu cms-owi można w sposób stosunkowo prosty stworzyć stronę internetową nie znając się na programowaniu, aby utworzyć stronę www w moim cms-ie, w dużym uproszczeniu należy wykonać następujące czynności:

  • utworzyć menu,
  • utworzyć stronę i podłączyć ją do utworzonego wcześniej menu, opcjonalnie można dodać zdjęcia oraz treść dla danej strony.

Swój system polecam wszystkim, którzy w przyszłości mają w planach rozwijać swoją stronę. System został pokryty testami jednostkowymi co zapewnia lepszą jakość kodu i łatwiejsze wprowadzanie zmian w przyszłości. Aktualnie napisałem 141 testy jednostkowe, które pokrywają kod modeli w około 90%, szczegóły można znaleźć na stronie test pokrycia. Dodatkowo logika (Laravel - patrz: REST API) została oddzielona od warstwy prezentacji (ReactJS), co w znacznym stopniu uprasza złożoność aplikacji.
Jeśli planujesz mieć stronę w wielu językach, to dobrze jest już podjąć tą decyzję na samym początku projektowania, ponieważ późniejsze zmiany wiążą się z dużą przebudową aplikacji. CmsRS jest pod tym względem bardzo elastyczny. Strona może być napisana w jednym języku np. po angielsku lub też w wielu językach np. po angielsku i polsku, jak to jest zrobione na tej stronie. W każdym z tych przypadków url-e są odpowiednio spreparowane co jest bardzo ważne dla wyszukiwarek internetowych (takich jak Google).

Natomiast, jeśli planujesz stworzyć sklep internetowy to ten system jest dobrym punktem wyjściowym, ponieważ uważam, że dodanie nowych funkcjonalności lub rozbudowa istniejących jest prostrza od innych złożonych systemów, przede wszystkim dzięki: testom jednostkowym i integracyjnym, użyciu Laravela jako bazowego framework-a po stronie serwera i oddzieleniu frontu od backendu w panelu administracyjnym. Ponadto uważam, że rozbudowa mniej złożonego systemu jest lepszym pomysłem, niż skomplikowanego systemu np. z dużą ilością wtyczek. Kod napisany w prosty sposób jest łatwiejszy w utrzymaniu, a to może mieć także znaczący wpływ na szybkość i wydajność strony oraz mniejsze frustracje developerów zmieniających aplikację w przyszłości.

Więcej informacji na temat konfiguracji i instalacji cmsRS znajdziesz na stronie GitHub-a.