Dariusz Grochocki Web Developer

Wykorzystuję WordPress do tworzenia zaawansowanych i dostępnych cyfrowo stron internetowych.

kontakt: gronix@gronix.pl

Moje specjalizacje

  • Tworzenie dostępnych stron internetowych (WCAG)
  • Integrowanie strony z usługami zewnętrznymi (API)
  • Systemy płatności online dla platform ecommerce (Stripe)
  • Wdrażanie niestandardowych modułów i mechanizmów

Tworzenie dostępnych stron internetowych (WCAG)

Zajmuję się tworzeniem dostępnych cyfrowo templatek, motywów i szablonów stron (dla niektórych są to po prostu synonimy) z wykorzystaniem WordPress i Bootstrap w najnowszej wersji, lecz bez korzystania z narzędzi typu "page builder".

Najlepiej pracuje mi się z projektem graficznym strony wykonanym w aplikacji Figma.

W projekcie graficznym potrzebuję design system z typografią dla mobile i desktop oraz stanami hover, activei focusdla interaktywnych elementów.

 

Szczegóły techniczne strony www

Niestandardowe pola (custom fields)

W celu tworzenia customowych struktur treści na frontend, definiuję niestandardowe pola w edycji treści za pomocą MetaBox. Ten framework daje deweloperowi większe możliwości niż ACF oraz zapewnia wyższą wydajność (performance) poprzez lepszy sposób zapisywania danych w tabelach bazy danych. Niestandardowe pola tworzę w PHP z wykorzystaniem odpowiednich funkcji filtrów (hooks).

Generowanie plików PDF

Do tworzenia mechanizmu automatycznego generowania plików PDF używam biblioteki mPDF, która umożliwia budowanie wzorca pliku PDF z dynamicznymi treściami przekazywanymi np. w formie parametrów $_GET.

Przykładowe implementacje, jakie realizowałem:

  • Po opłaceniu zamówienia w sklepie jest automatycznie generowana faktura PDF.
  • Po zakupie biletu na wydarzenie użytkownik otrzymuje bilet PDF.
  • Po przejściu przez wszystkie etapy kursu e-learningowego użytkownik otrzymuje certyfikat PDF.

Zarządzanie serwerem i domenami

Poradzę sobie z administrowaniem każdego hostingu strony i prawie każdego VPS. Niektóre czynności administracyjne wykonuję w konsoli za pomocą połączenia SSH.

Mogę zająć się zarządzaniem domenami, a zwłaszcza dodawaniem rekordów do strefy DNS. Niejednokrotnie różne usługi Google czy operatorów newslettera wymagają dodania jakiegoś rekordu TXT, MX czy CNAME.

W zależności od założeń projektu tworzę stronę internetową z nastawieniem na realizację celu

  • WCAG

    Strona dostępna cyfrowo dla jak największej liczby użytkowników.

  • RWD

    Strona responsywna, której struktura i layout dostosowują się do szerokości (a niekiedy i wysokości) okna przeglądarki na urządzeniu użytkownika. Jest to milczące założenie każdego projektu, gdyż dzisiejszym standardem jest "mobile first".

  • SEO

    Uwzględnienie w tworzonym kodzie zasad optymalizacji strony pod wyszukiwarki internetowe np. struktura nagłówków, dane strukturalne, przekierowania typu 301. Podstawowe zasady SEO są również milczącym założeniem każdego projektu.

  • Performance

    Działania na każdym etapie tworzenia strony mające na celu szybkie i sprawne funkcjonowanie strony, m. in. wybór rodzaju serwera (Apache, Nginx, LiteSpeed), wersji PHP, możliwości pamięci podręcznej cache (OPcache, Redis), sposób implementacji, optymalizacja kodu, jakość kodu (W3C).

Czasami wymienione aspekty tworzenia strony wyrażają się w tych samych czynnościach i zasadach tworzenia kodu. Przykładowo: odpowiednia struktura nagłówków w HTML dotyczy zarówno WCAG, jak SEO.

Integrowanie strony z usługami zewnętrznymi (API)

Zajmuję się integracjami w technologii JS i PHP.

 

cURL i API

Wysyłanie żądań HTTP za pomocą biblioteki cURL w celu uzyskiwania dostępu do zasobów interfejsu API.

Przykład: pobieranie aktualnych ustawień i treści wybranego produktu z sklepu w celu jego prezentacji na zewnętrznej stronie landing page.

 

Fetch API dla JavaScript

Dynamiczne przesyłanie danych do aplikacji zewnętrznej, gdzie posłużą do rozpoczęcia jakiegoś procesu lub dalszego przetwarzania danych.

Przykład: przekazywanie wartości jakichś zmiennych dotyczących zamówienia produktu do operatora płatności Stripe, w celu dostosowania strony płatności dla użytkownika, i zarządzania dalszymi etapami przebiegu transakcji online.

 

Stripe API

Tworzenie bramek w modelu płatności natychmiastowych, odroczonych ("buy now, pay later") oraz subskrypcji. Dostosowywanie stron płatności hostowanych na serwerze Stripe. Dotyczy zarówno platform ecommerce, jak i organizacji społecznych zbierających darowizny.

 

WooCommerce REST API

Tworzenie, odczytywanie, aktualizowanie i usuwanie danych WooCommerce przy użyciu żądań w formacie JSON i metod uwierzytelniania WordPress REST API oraz standardowych metod żądań HTTP.

Przykład: tworzenie zamówienia po wypełnieniu niestandardowego formularza zakupu z opcjonalnym zapisaniem się do newslettera i edycją różnych metadanych umożliwiających wyświetlenie użytkownikowi podczas dokonywania zakupu dedykowanych treści.

 

DirectAdmin API

Wykorzystując HTTPsocket można zdalnie wykonać na serwerze akcję np. stworzenia konta użytkownika ze wskazaną domeną, adresem e-mail czy kontem FTP.

Przykład: po zakupie usługi hostingu w sklepie WooCommerce tworzone są odpowiednie zasoby na serwerze, które udostępniane są kupującemu.

 

Narodowy Bank Polski

Web API do pobierania aktualnego kursu walut.

Przykład: podczas generowania faktury PDF dla zagranicznego kontrahenta jest przeliczana kwota transakcji, pierwotnie wyrażona w walucie obcej, na złotówki wg kursu walut NBP z ostatniego dnia roboczego poprzedzającego dzień zakupu.

 

API REGON

Pobieranie danych podmiotów gospodarczych z Głównego Urzędu Statystycznego.

Przykład: w wyniku wpisania NIP do formularza "dane do faktury" i zatwierdzeniu akcji "pobierz dane", poszczególne pola tego formularza zostaną automatycznie uzupełnione danymi pobranymi z GUS, jak np. nazwa firmy, adres siedziby: ulica, miasto, kod pocztowy.

 

MAILERLITE API, MAILCHIMP API

Tworzenie formularzy subskrypcji do newslettera na dowolnej domenie z wykorzystaniem klucza API do autoryzacji połączenia ze wskazanym kontem w serwisie operatora newslettera.

 

Google Maps API

Tworzenie map z zdefiniowanymi markerami, mapy z kolorowymi warstwami w dowolnym stylu.

 

Google Charts API

Tworzenie dynamicznych wykresów i tabel na podstawie zmiennych danych agregowanych w arkuszu Google.

 

Google reCAPTCHA

Implementacja captcha umożliwiającej ochronę formularza przez spamem. Zastosowanie captcha do dowolnego formularza z walidacją JS i PHP.

 

Pixabay API

Umożliwienie użytkownikowi w usługach domenowych przeglądanie zdjęć i filmów z biblioteki Pixabay oraz ich bezpośrednie wykorzystywanie w tworzonych treściach. W ten sposób pominięty jest etap ręcznego pobierania mediów z serwisu Pixabay.com i ich wgrywanie do usług domenowych.

Systemy płatności online dla platform ecommerce (Stripe)

Wdrażam systemy płatności w technologii JS i PHP.

 

  • Tworzenie bramek w modelu płatności natychmiastowych (np. karta płatnicza, Blik, Przelewy24, Google Pay, Apple Pay, Link.com) i płatności odroczonych ("buy now, pay later", np. Klarna).
  • Tworzenie subskrypcji i zarządzanie nimi na poziomie konta użytkownika w usługach domenowych.
  • Inicjowanie z poziomu domeny customowego formularza płatności ("checkout page") hostowanego na serwerze Stripe.
  • Przekazywanie wartości (wykorzystując Fetch API dla JavaScript) jakichś zmiennych dotyczących zamówienia produktu do operatora płatności Stripe, w celu dostosowania "checkout page", i zarządzania dalszymi etapami przebiegu transakcji online (np. transfer środków do kont partnerskich Stripe).
  • Obsługa zdarzeń (webhooks), np. przyjęcie płatności w systemie Stripe powoduje zmianę statusu zamówienie w sklepie.
  • Organizacja sieci kont partnerskich (connected accounts), np. dzielenie się zyskami ze sprzedaży.

Wdrażanie niestandardowych modułów i mechanizmówWdrażanie niestandardowych modułów i mechanizmów

Niestandardowe rzeczy na frontend i backend wdrażam w technologii JS i PHP.

 

Przykładowe niestandardowe rzeczy (poza wyżej wymienionymi), jakie miałem okazję wdrażać.

Generowanie certyfikatów PDF i repozytorium certyfikatów

Generowanie certyfikatów PDF z poziomu usług domenowych, których unikalny numer i klucz znajdują się w osobnej bazie danych MySQL. System jest tak skonstruowany, że baza danych nie musi zawierać danych osobowych, gdyż nie ma takiej konieczności (RODO).

Osoba, której chwalisz się swoim certyfikatem (np. pracodawca), może zweryfikować autentyczność dokumentu za pomocą dedykowanego formularza (numer i klucz widoczne są w pliku PDF). Serwer w odpowiedzi na zapytanie wyświetli informacje przypisane do danego certyfikatu, np. imię i pierwsza litera nazwiska, nazwa szkolenia, data rejestracji, nazwa organizatora szkolenia.

Generowanie biletu PDF z unikalnym kodem QR i aplikacja do skanowania kodów QR

Generowanie biletu PDF z unikalnym kodem QR po wykonaniu płatności online w sklepie. Numer unikalnego kodu przechowywany jest w bazie danych i skojarzony z konkretnym zamówieniem klienta. Następnie po zeskanowaniu kodu QR za pomocą dedykowanej aplikacji, baza danych jest odpytywana w poszukiwaniu pasującego biletu. Jeśli bilet został opłacony można za pomocą aplikacji wykonać akcję "check in". Bilet otrzymuje status "zameldowany", co uniemożliwi jego ponowne wykorzystanie przez osoby trzecie.

Aplikacja do skanowania kodów QR jest aplikacją wewnętrzną aktywującą się w przeglądarce internetowej po zalogowaniu na swoje konto w usługach domenowych. Nie ma konieczności instalowania żadnej zewnętrznej aplikacji na swoim urządzeniu mobilnym. Skaner kodów wykorzystuje aparat wbudowany w telefon.

System organizacji i sprzedaży kursów e-learningowych bez żadnych wtyczek

Wykorzystując środowisko WordPress można bez żadnych dodatkowych wtyczek (nawet bez WooCommerce) stworzyć system sprzedaży dostępu do kursów e-learningowych w modelu subskrypcyjnym.

  • Sprzedaż dostępu do kursów w modelu subskrypcyjnym obsługiwana jest przez operatora płatności Stripe. Opłata za nowy okres rozliczeniowy jest pobierana automatycznie z karty płatniczej użytkownika, np. co miesiąc.
  • Użytkownik w ustawieniach swojego konta na platformie e-learningowej zarządza swoją subskrypcją. Może anulować subskrypcję w dowolnym momencie. Dostęp do kursów pozostanie aktywny do końca bieżącego okresu rozliczeniowego.
  • Każdy kurs e-learningowy podzielony jest na mniejsze jednostki (etapy). Po zapoznaniu się z materiałem (np. po obejrzeniu filmu) użytkownik oznacza etap jako zakończony.
  • Mechanizm może wymuszać na użytkowniku, aby zatwierdzał ukończenie etapów jeden po drugim zgodnie z układem kursu lub w sposób asynchroniczny, gdzie można zatwierdzać ukończenie etapów kursu w dowolnej kolejności.
  • Po zakończeniu wszystkich etapów kursu użytkownik może wygenerować i pobrać certyfikat PDF na swoje urządzenie.

WordPress Multisite (lub WordPress Multi Network) z oddzielną bazą danych dla każdej subdomeny

Wykorzystując DirectAdmin API oraz możliwości HyperDB do partycjonowania baz danych mogę stworzyć platformę na jednej instancji WordPress, gdzie każda nowa subdomena stworzona przez użytkownika będzie posiadać własną niezależną bazę danych MySQL.

Platforma może umożliwiać użytkownikom rejestrację subdomen różnych domen. Użytkownik posiada jedno konta, w ramach którego ma dostęp do panelu administracyjnego każdej swojej subdomeny.

Przykładowy system płatności

  • Płatności za stworzenie nowej subdomeny w modelu płatności natychmiastowych.
  • Płatności za dostęp do funkcjonalności platformy w modelu subskrypcyjnym.