O cmsRS

CmsRS to system CMS nowej generacji, zaprojektowany jako alternatywa dla przeładowanych rozwiązań, które z czasem stają się trudne w rozwijaniu i utrzymaniu. Zamiast dziesiątek dodatków i skomplikowanych zależności otrzymujesz przejrzystą architekturę opartą na sprawdzonych technologiach.

Jego architektura opiera się na klarownym podziale odpowiedzialności: Laravel jako API po stronie serwera oraz Vue.js jako panel administracyjny. Warstwa frontendowa pozostaje elastyczna — może być realizowana zarówno w oparciu o Blade, jak i w trybie headless (np. z wykorzystaniem Nuxt).

Taki podział pozwala utrzymać porządek w systemie, ułatwia jego rozwój, testowanie i dostosowywanie do przyszłych potrzeb.

Dotyczy to nawet struktury bazy danych, która jest prosta i oczywista, co eliminuje kolejną warstwę złożoności (patrz: Schemat bazy danych). Dzięki solidnemu pokryciu testami jednostkowymi i integracyjnym oraz użyciu PHPStan, nawet aktualizacja do nowszych wersji PHP czy Laravela staje się procesem bardziej przewidywalnym i mniej bolesnym.

CmsRS oferuje natywną obsługę wielu języków (np. angielskiego i polskiego) i zawiera dedykowany moduł sklepu internetowego. System ten jest w pełni darmowy, a kod źródłowy można pobrać ze strony GitHub-a. 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 oraz strony frontowej),
  • po stronie serwera używam Laravel, a na froncie Vue.js i Pinia (w panelu administratora) - znajomość tych technologii jest wystarczająca, aby rozwijać system w przyszłości,
  • napisałem testy jednostkowe i integracyjne dla kodu po stronie serwera (Laravel) i testy dla panelu administracyjnego (Vue.js),
  • używam PHPStan do statycznej analizy kodu, co znacząco wpływa na jego wysoką jakość i niezawodność,
  • frontend aplikacji (widoczny dla użytkownika) jest zbudowany w oparciu o szablony Blade z wykorzystaniem Vue.js lub za pomocą Nuxt.
cmsrs_diagram technologie
Architektura cmsRS: Laravel (backend/API) + Vue.js (panel administracyjny) + elastyczna warstwa frontendowa (Blade lub Nuxt).
cmsrs_diagram tworzenie
Proces administracyjny cmsRS – obejmuje CMS i moduł sklepu

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 co zapewnia lepszą jakość kodu i łatwiejsze wprowadzanie zmian w przyszłości. Aktualnie napisałem 271 testów jednostkowych i integracyjnych, które pokrywają kod serwisów powyżej 90%, szczegóły można znaleźć na stronie test pokrycia. Logika panelu administracyjnego (Laravel API) i jego interfejs (Vue.js) są od siebie niezależne, komunikując się przez udokumentowane endpointy REST (patrz: REST API). Dodatkowo wykorzystanie Nuxt, który również komunikuje się z backendem przez API, upraszcza logikę aplikacji oraz zwiększa elastyczność w budowie warstwy frontendowej. To sprawia, że rozwój i utrzymanie aplikacji są znacznie prostsze.
System ma wbudowaną obsługę języków bezpośrednio w core – nie wymaga to instalowania zewnętrznych, często problematycznych wtyczek. 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 oraz rozdzieleniu frontendu od backendu – zarówno w panelu administracyjnym, jak i na froncie. 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.

Jednak w moim systemie, aby osiągnąć pełną funkcjonalność sklepu, należy rozważyć funkcjonalności opisane pod adresem: https://github.com/cmsrs/cmsrs3/issues/21. Wiele z tych zagadnień wymaga współpracy z klientem i analizy, czy są zgodne z celami biznesowymi.

Więcej informacji na temat konfiguracji i instalacji cmsRS znajdziesz w dokumentacji.

Zainstaluj system, uruchom demo i przekonaj się, jak prosto można z nim pracować.

Przed instalacją możesz również zobaczyć system w akcji. Pełna seria filmów instruktażowych jest dostępna tutaj.