[PL] DSP 2017 – Projekt Aggregator – Zaczynamy!

Daj się poznać!

Właśnie ruszyła tegoroczna edycja konkursu Daj się poznać, pora więc zakasać rękawy i wziąć się również za rozwój mojego projektu. Oznacza to, że przez kolejne 10 tygodni będę tu opisywał etapy powstawania Aggregatora, czyli prostego narzędzia do gromadzenia i nadzorowania treści (z ang. content curation). Dokładny zakres projektu nie jest jeszcze w 100% ustalony, nie to jest jednak najważniejsze. W dużo większym stopniu niż na samych funkcjonalnościach chciałbym skupić się na pokazaniu procesu powstawania projektu opartego na Umbraco CMS, od podstaw, do zaawansowanych scenariuszy. Czym jest Umbraco i dlaczego akurat je chciałbym wykorzystać dowiesz się niżej.

Umbraco

Dlaczego Umbraco CMS? Przede wszystkim dlatego, że to projekt w 100% open source, i mówiąc najzupełniej szczerze, uważam, że każdy .Netowy web dev powinien przynajmniej wiedzieć o jego istnieniu. No dobra, ale dlaczego? Daruję sobie opisywanie funkcji typowych dla CMSów, jak każde inne narzędzie tego typu pozwala bowiem wygodnie zarządzać treścią, zapisuje historię edycji, umożliwia nadawanie uprawnień użytkownikom, itd. Co zatem sprawia, że Umbraco jest wyjątkowe? Pozwól, że odniosę się krótko do początków mojej programistycznej kariery.

Dawno, dawno temu, w czasach, gdy zaczynałem przygodę z komercyjnym tworzeniem aplikacji internetowych, a Visual Studio nosiło dumnie numer 2005, dane mi było pracować przy powstawaniu kilku CMSów. Ba! Jednego, działającego do dzisiaj na produkcji, stworzyłem nawet sam. To co już wtedy dało mi do myślenia to fakt, ile czasu i pracy, należy włożyć by taki system działał stabilnie, był wolny od bugów i na dodatek nadążał za wciąż rozwijającym się rynkiem. Pogodzenie utrzymywania i rozwijania swojego CMSa z pracą nad nowymi projektami wydawało się wręcz nie możliwe bez dedykowanego zespołu. I wtedy przyszło olśnienie. “Hej, przecież gdzieś tam (konkretnie w Danii) jest ekipa, który cały swój czas i skupienie poświęca tylko i wyłącznie na pracę nad takim CMSem. Robią to w pełni open source, nie chcą za to żadnych pieniędzy, a na dodatek stymulują rozwój niesamowitej społeczności. Po co mamy atem tracić czas na wymyślanie koła na nowo skoro większość projektów i tak ma wspólny “fundament”? Treści, użytkownicy, pliki multimedialne, itd.”. Nagle to wszystko okazało się takie oczywiste. Żeby jednak jeszcze bardziej naświetlić Wam zalety Umbraco, pozwólcie, że zamieszczę poniżej listę rzeczy, które miały największe znaczenie z mojego punktu widzenia.

Użytkownicy

Umbraco posiada wbudowane moduły zarządzania zarówno użytkownikami strony, jak i użytkownikami panelu administracyjnego. Obie te grupy są zupełnie niezależne, dzięki czemu możemy zastosować np. zupełnie inny rodzaj uwierzytelniania czy nadawania uprawnień. Najlepszym przykładem będzie tutaj chyba sytuacja gdzie użytkownicy administracyjni logują się do panelu wykorzystują po prostu login i hasło, natomiast użytkownicy witryny korzystają z OAuth 2.0.

Wyszukiwanie

To co urzekło mnie szczególnie to wbudowane wyszukiwanie pełnotekstowe. Przeszukiwać można wszystko: treść, użytkowników, pliki z mediami, a nawet samodzielnie zdefiniowane dane. Za tym wszystkim stoi Lucene, czyli narzędzie, które napędza również ElasticSearch używany m.in. przez Githuba do przeszukwiania kodu.

Elastyczność

Z biegiem czasu, i wraz z co raz większym zgłębieniem się w kod Umbraco, zaskoczyło mnie jak bardzo, naprawdę, bardzo elastyczne jest nastawienie całego projektu do budowania na nim własnych aplikacji. W Umbraco “wpiąć” się można niemal w każdy element systemu, w każdy proces i każde zachowanie. Podmienić można nie tylko providery dla Ról czy Członkostwa, ale również dla systemu plików(!), i to w kilku prostych krokach. Oznacza to np. że wrzucając na stronę plik, możemy zapisać go na dysku, wysłać do naszego CDNa lub do Azure Blob, praktycznie bez pisania dodatkowego kodu, po prostu podmieniamy provider, z którego korzysta nasz projekt i voilà, wszystko działa.

Panel administracyjny

Kolejną z rzeczy wyróżniających Umbraco jest bardzo łatwo rozszerzalny panel administracyjny. Jest to tak naprawdę niezależna aplikacja stworzona w Angularze, pozwalająca na dopinanie własnych kontrolek, dashboardów, sekcji i modułów. Ponowie widać tu nastawienia na umożliwienie programistom jak najprostszego dokładania swoich “klocków” i obudowywania fundamentu jakim jest Umbraco. W swojej karierze programistycznej nie raz widziałem sytuacje, gdy, o ile aplikacja webowa od strony zwykłego użytkownika była dopracowana i wymuskana bardzo pieczołowicie, to panel administracyjny traktowany był po macoszemu. Działo się tak głównie ze względu na to, że przeważnie miało do niego dostęp raptem kilka osób, nie było więc “sensu” poświęcać na niego zbyt wielu zasobów. Wykorzystując Umbraco sytuacja się niejako odwraca, otrzymujemy w pełni funkcjonalny, dopracowany panel administracyjny, a sami możemy skupić się na rozwoju frontu aplikacji, bez pozostawiania technologicznego długu.

Społeczność

Społeczność Umbraco to przede wszystkim forum, które aż huczy od o ludzi starających się pomóc każdemu kto tej pomocy potrzebuje. To również wszelkiego rodzaju meetupy i konferencje, których również w Polsce, z roku na rok, zaczyna przybywać (przy okazji zapraszamy do Białegostoku na Żumbraco :))

Wasze wsparcie

Mimo, że teoretycznie jest to konkurs, w którym walczymy o wartościowe nagrody, mi zależy przede wszystkim na tym, aby pokazać Umbraco szerszemu gronu i umożliwić osobom chcącym zgłębić ten temat gładkie wejście w świat duńskiego CMSa. Dlatego z tego miejsca chciałbym Was prosić o wsparcie. Jeżeli jest jakaś kwestia, którą chcielibyście żebym opisał, coś Was nurtuje lub wahacie się czy Umrbaco “da radę” w waszym przypadku, dajcie mi proszę znać w komentarzach lub na pawel@polarbits.co. Dla mnie będzie to doskonały sygnał, w jakim kierunku powinienem rozwijać swoje wpisy, a powstała treść może pomóc nie tylko Wam, ale też innym osobom borykającym się z podobnymi pytaniami.

Zatem do dzieła, przed nami pracowite 10 tygodni 🙂

Linki

Mój projekt na Github

Umbraco na Github

Zdjęcie w nagłówku pochodzi z pexels.com




Related articles

  • Kamil Hadas

    Będę podglądać, Powodzenia! 🙂

  • Mac

    I co? Projekt padł?

    • niestety z przyczyn niezależnych musiał zostać odłożony w czasie, będzie kontynuowany już poza DSP