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 niestanda rdowych 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.
Realizacje
Strony stworzone przeze mnie we współpracy z Kinaole
- Biuro Wsparcia Osób z Niepełnosprawnościami Uniwersytetu im. A. Mickiewicza w Poznaniu Strona otwiera się w nowym oknie
- Kampania Przeciw Homofobii Strona otwiera się w nowym oknie
- Fundacja Aktywizacja Strona otwiera się w nowym oknie
- Kinaole - Dostępność, Badania, Inkluzywne projektowanie stron Strona otwiera się w nowym oknie
- Unbounded Way - Zmieniamy świat restauracji na dostępny Strona otwiera się w nowym oknie
- Wrocławski Klub Formaty Strona otwiera się w nowym oknie
- EcoMS - consulting i doradztwo biznesowe Strona otwiera się w nowym oknie
Strony stworzone przeze mnie w ramach pozostałych projektów