Jak zrobić zarabiającą stronę w dwa dni

 

W tym artykule pokażę jak stworzyć gotową stronę internetową z zaimplementowanym modelem biznesowym w jeden dzień, przy użyciu ogólnie dostępnych narzędzi. Strona będzie przygotowana pod SEO.

Artykuł ten zawiera ogólne idee, bez zagłębiania się w szczegóły implementacyjne.

Co będzie zawierała strona?

Listę połączeń lotniczych na najbliższy tydzień oraz strony ze szczegółami poszczególnych połączeń. Dodatkowo wyświetlimy zdjęcia miast docelowych.

Tak będzie docelowo wyglądała strona pojedynczej oferty:

Demo możecie zobaczyć tutaj: http://dokad-poleciec.pl/

Tylko dwa dni?

Mi stworzenie całości zajęło dwa dni, z czego jeden dzień to backend i analiza różnych API i bibliotek, a drugi dzień to frontend. 

Tobie będzie łatwiej, ponieważ wiele problemów które napotkałem rozwiązałem i w tym artykule przedstawiłem wybrane przeze mnie rozwiązania.

Wszędzie tam gdzie dało się użyć gotowych rozwiązań zrobiłem to (API, szablon, zdjęcia, biblioteki).

Oczywiście każdy pracuje w innym tempie, ale myślę, że dwa dni to jest dobry średni czas stworzenia tego serwisu.

Co musisz umieć?

Musisz znać podstawy Laravela (lub innego frameworka), umieć korzystać z bibliotek oraz API, znać podstawy bootstrapa, znać podstawy baz danych i umieć umieścić stronę na serwerze.

Na czym będziemy chcieli zarobić?

Na polecaniu połączeń lotniczych z serwisu kiwi.com.

Jakich technologii użyjemy

Krok pierwszy – stawiamy laravela

Instrukcję jak postawić Laravela znajdziecie na stronie https://laravel.com/docs/5.6/installation. Po pomyślnym utworzeniu projektu, warto sobie od razu skonfigurować bazę danych.

Krok drugi – pobieramy dane o połączeniach lotniczych

Zapoznaj się z dokumentacją API kiwi.com na stronie https://docs.kiwi.com/. Następnie będziesz musiał napisać migracje, które utworzą tabele potrzebne do przechowywania danych. Ja stworzyłem dwie tabele: flights i cities – pierwsza przechowuje połączenia lotnicze, druga informacje o miastach (wraz ze zdjęciami).

Samo pobieranie zrealizowałem następująco:

  • utworzyłem klasę App\Services\ExternalApis\KiwiComApi, która pobiera połączenia lotnicze według podanych parametrów. Do przechowywania parametrów utworzyłem dodatkowo klasę App\Services\ExternalApis\KiwiComFlightsParameters
  • utworzyłem komendę artisana (https://laravel.com/docs/5.6/artisan) , która przy pomocy wymienionych klas pobiera dane o połączeniach z polskich lotnisk w najbliższych siedmiu dniach. Polecenie to odrzuca połączenia z Polski do Polski.
  • dodałem komendę artisana do laravelowego schedule i utworzyłem wpis w cronie (https://laravel.com/docs/5.6/scheduling)



Krok trzeci – wyświetlamy połączenia

Ja użyłem darmowego szablonu bootstrap’a ze strony https://startbootstrap.com/template-categories/all/

Następnie do kontrolerze zrobiłem pobieranie listy lotów wraz z paginacją i w szablonie użyłem pętli, aby wyświetlić połączenia.

Dodatkowo stworzyłem regułę routingu do wyświetlania stron konkretnych połączeń. Zarówno lista połączeń jak i strona detali wyświetlają dane pobrane wcześniej do bazy z API kiwi.

Krok czwarty – pobieramy zdjęcia

Do pobrania zdjęć poszczególnych miast użyłem Google Places API i biblioteki https://github.com/alexpechkarev/google-maps

Pobranie zdjęcia odbywa się dwuetapowo:

  1. używam metody `textsearch` do znalezienia miasta (szukam na podstawie nazw miast i krajów uzyskanych z kiwi)
  2. Pobieram zdjęcie przy pomocy `placephoto`

Po pobraniu zdjęcia zapisuję je używając laravelowego magazynu (https://laravel.com/docs/5.6/filesystem) oraz wstawiam link do zdjęcia do tabeli `cities` w bazie danych. Dodatkowo zapisuję wartość `html_attributions` z odpowiedzi api google.

Tutaj należy dodać, że API google jest płatne i w darmowej wersji mamy mocno limitowaną ilość requestów dziennych. Jednak jeśli jeszcze nie rejestrowałeś się w google api, dostaniesz na start $300 do wykorzystania, co powinno w zupełności wystarczyć do pobrania potrzebnych zdjęc.

Zdjęcia na stronie wyświetlam wiążąć tabelę flights z cities i pobierając z tej ostatniej url zdjęcia. Dodatkowo obok zdjęcia (a właściwie na nim – dzięki pozycji absolutnej elementu) wyświetlam dane z pola `html_attributions`, bo takie jest wymaganie google.

Dodatkowo zrobiłem sobie skalowanie zdjęć do potrzebnych rozmiarów, żeby ograniczyć ilość danych przesyłanych przy wczytywaniu strony. Użyłem do tego metody resize z biblioteki Itervention Image (http://image.intervention.io/api/resize)

Tak wyglądają teraz oferty na liście:

Krok piąty – SEO i social media

Ja dodałem dwie rzeczy związane z SEO i social media:

  1. Bibliotekę dodającą tagi dla open graph i twittera (https://github.com/artesaos/seotools)
  2. Bibliotekę wyświetlającą przyciski do udostępniania treści w social mediach (https://github.com/jorenvh/laravel-share)

Krok szósty – linki afiliacyjne

Jeśli nie mamy jeszcze wartości `partner` dla API kiwi, musimy zuzyskać nasz klucz partnera (https://www.kiwi.com/en/pages/content/partner). Po uzyskaniu naszego klucza partnera (jest to zwykły string, np. nazwa projektu) dodajemy go do wszystkich requestów jakie ślemy do kiwi (oczywiście trzymając klucz w plikach konfiguracyjnych). Po wykonaniu tych czynności, kiwi zacznie nam zwracać wartość w polu `deep_link` i to jest właśnie link, który musimy w wyraźny sposób pokazać na stronie, ponieważ to właśnie on ma generować nasze przychody.

Ja przed zapytaniem o klucz partnera zainstalowałem stronę na serwerze, żeby móc pokazać pracownikom kiwi, gdzie będą wyświetlane linki afiliacyjne.

Co dalej?

Teraz, gdy już mamy gotową stronę z zaimplementowanym modelem biznesowym, który potencjalnie może nam generować przychód, musimy się zacząć promować. Strona jest przygotowana pod wyszukiwarki i media społecznościowe, więc warto pomyśleć o utworzeniu profili naszej strony w social-mediach i analizowaniu stanu indeksowania w wyszukiwarkach. Na pewno nie zaszkodzi wydanie paru groszy na reklamę, tylko pamiętaj że reklama musi być przemyślana, a strona w pełni działająca, żeby zachęcić użytkowników nie tylko do wejścia na stronę, ale również do powracania na nią.

Ja planuję również w przyszłości utworzyć aplikację mobilną dla mojej strony i być może poszukam kogoś kto pisałby atrakcyjne posty na stronie aplikacji w social-mediach, podlinkowane do stron konkretnych lotów.

Koszty i profity

Koszty to domena, serwer, ewentualnie koszty google places API o których pisałem i które wyniosą maksymalnie kilka USD.

Profity – to zależy jak ile osób wykupi lot z Twojego polecenia, a więc w głównej mierze zależy to od jakości strony i jej promocji. Istotnym czynnikiem jest też procent ze sprzedaży jaki uzyskasz jako polecający. Na stronie https://www.kiwi.com/en/pages/content/partner jest podane 3%, może wynegocjujesz więcej?

Skomentuj