BLOG_koduje_bo

IT Times: Release Notes Begin

Styczeń 5, 2018

No ale weź do nich napisz, do Vikingów — niech wiedzą, co się dzieje tam w piwnicy!

Ves heill, Vikingowie!

Ostatnio ktoś życzliwy podsunął moim oczom fragment tekstu, którego pointa brzmiała z angielska i następująco: „Nobody wants to read your shit”. Nie ukrywam, że trochę zrażony, ale postanowiłem czytać dalej, a były tam rady, jak powinien wyglądać artykuł stojący w zupełnej opozycji do wspomnianego wcześniej. Niestety karuzela negatywnych odczuć związanych z owym nagłówkiem spowodowała, że sprawdziłem tylko pierwszy punkt, a mianowicie: „Przeczytaj sam to, co chcesz opublikować”. Mam nadzieję, że wiecie, co było dalej. Dokładnie tak — utwierdziłem się, że jednak ktoś będzie to czytał, chociażbym miał to być tylko ja, i mogłem położyć się spokojnie, śnić o Pulitzerze w kategorii Release Notek i takich tam…

Ale żarty na bok.

Na imię mi Mikołaj i chciałbym zaprosić Was w podróż pełną przygód, siedzenia na krześle, kawy i pizzy, czyli IT Mobile Vikings (nie Virgin, nie Play, nie Plus, nie Orange, nie T-Mobile, nie …).


Od Vikingów z miłością,
czyli co się zmieniło w ostatnim czasie

TL;DR

PoprawkiUsprawnieniaFiczery
  • Znasz zakładkę z kuponami od naszych partnerów? Czasem jeden kafel nie rozwijał się jak trzeba. Naprawione.
  • Jeśli polecasz naszą sieć jak należy, to musisz znać ambasadorską stronę — maile się nie wysyłały… Ale już są! Sprawdź.
  • Niektórzy z Was nie mogli pobrać super teł do manifestowania swojej vikingowej natury. Nigdy więcej — tła dla każdego! Ustawisz?
  • Podpowiedzi dotyczące pakietów (podczas doładowywania) nie wyświetlały się najlepiej na niektórych smartfonach.
  • Kojarzysz ikonkę pękniętego hełmu na koncie Vikinga? My też nie. Okazało się, że kiedy ktoś z Was nie doładował konta już bardzo długo, informacja o tym była dosyć brzydka. Naprawiliśmy, a Ty nie sprawdzaj, bo nie warto.
  • Nie zobaczysz już błędu 404 przy próbie przejścia z bloga do sekcji regulaminów.
  • Coś poszło nie tak i zabrakło nam kilku angielskich tłumaczeń na stronie potwierdzającej złożenie zamówienia. Problem solved.
  • Oby pakiet Internetu w roamingu nigdy Ci się nie skończył! Gdyby jednak tak się stało — link, który dostaniesz od nas wówczas w SMSie, już działa.
  • Kilka mniejszych błędów w naszym wewnętrznym Systemie Obsługi Vikinga, ale o tym może innym razem…

  • Zintegrowaliśmy się bardziej z API naszego partnera transportowego, dzięki czemu proces przeniesienia numeru przyspieszył o kilka dni! Chodźcie do nas!
  • Znasz kogoś, kto chciałby przenieść się na nasz pokład, ale nie jest pewien? Powiedz mu, żeby zostawił nam swój kontakt na tej stronie (na której poprawiliśmy formularz), a na pewno zadzwonimy i rozwiejemy wszelkie wątpliwości.
  • Usunęliśmy z dokumentów do przeniesienia numeru informację o „czytelnym” podpisie — sami dobrze wiemy, że nie można mieć wszystkiego i albo coś jest podpisane albo czytelne.
  • Bloga traktowaliśmy trochę po macoszemu, ale skoro będziemy widywać się tu częściej, trzeba było odświeżyć go, aby bardziej przypominał naszą stronę.
  • Formularz zamówienia karty nabrał rumieńców i wygląda iście vikingowo! Najlepiej sprawdzić przechodząc wszystkie kroki do końca.
  • Stworzyliśmy system generowania kuponów promocyjnych, dzięki któremu możemy zrobić wszystkie zniżki świata! Śledź nas, żeby żadnej nie przegapić.
  • Czy wiesz, że kiedy skończy Ci się jakiś pakiet, albo doładujesz konto kanałem innym niż nasza strona i chcesz uruchomić No Limit, możesz zrobić to wysyłając krótki SMS na numer 234? Bo teraz już możesz.
  • Podobno podróże kształcą, ale nawet na zagranicznych wojażach trzeba czasem wyjaśnić kogoś, kto ewidentnie nie wie jak jest… Dlatego pakiety Internetowe powinny być duże i tanie – takie też udostępniliśmy Vikingom!
  • Na naszej stronie głównej mamy teraz jeden szczególny kafelek, ponieważ zmienia się on dynamicznie w zależności od tego jakim jesteś człowiekiem. Żartuję, ale zawsze warto dmuchać na zimne i lepiej być… Vikingiem. Wiesz, który to kafel?

MVP, czyli trochę smaczków dla tych z apetytem

Autodoładowanie jakie jest (super) każdy widzi. Ale nie raz i nie dwa pisaliście do nas, że może przystopowalibyśmy z tymi SMSami i mailami, że „Jutro autodoładowanie”, albo że już wszystko działa. Dlatego też postanowiliśmy ograniczyć ten spam i tak właśnie…

Powiadomienia w Mobile Vikings

W Mobile Vikings możemy komunikować się z Wami na kilka sposobów:

  • mailowo
  • SMS-owo
  • telefonicznie
  • powiadomienia push na telefon/przeglądarkę internetową

Maile

Dzień dobry Adam” — dobrze znasz ten nagłówek, prawda? No chyba, że nie jesteś Adamem, to wyloguj się z konta Adama 🙂
Maile, które dostajesz od nas z adresu helpdesk@mobilevikings.pl to podstawowe źródło komunikacji z Tobą. Piszemy do Ciebie w wielu sprawach — przyznaliśmy Ci Punkty Vikinga, bonusowe GB za autodoładowanie, zmieniliśmy ofertę itd. W razie pytań możesz na nie odpowiadać, a my rozwiewamy wątpliwości.

SMSy

To metoda, której używamy, kiedy chcemy powiedzieć Ci o czymś bardziej istotnym, a Ty nie musisz mieć dostępu do Internetu, żeby się o tym dowiedzieć — np. żebyś pamiętał, że jutro zostaniesz Vikingiem, albo potwierdzamy, że doładowałeś konto. SMSy od nas dostajesz z dwóch numerów: 234 i 856. Te z pierwszego są wysyłane bezpośrednio przez nas, z drugiego — dzięki uprzejmości naszego partnera infrastrukturalnego. Dodatkowo na 234 możesz wysyłać wiadomości, żeby aktywować pakiety, a jeśli dodasz swoją kartę płatniczą — doładować numer.

Ring ring

Staramy się dawać Ci święty spokój, jednak czasem wydarzy się coś niespodziewanego, na co mieliśmy mniejszy albo większy wpływ, np. wystąpiły poważniejsze problemy po stronie naszego partnera od transakcji internetowych, albo coś jest nie tak z przeniesieniem Twojego numeru — wtedy wolimy zadzwonić i po prostu Cie uspokoić. Nie martw się — nie jest to nagminne.

Push na telefon/przeglądarkę internetową

Jakiś czas temu wprowadziliśmy nową metodę komunikacji — powiadomienia push na telefon/przeglądarkę. Żeby otrzymywać te pierwsze, musisz mieć zainstalowaną naszą aplikację (a warto, bo przecież wiesz, że pracujemy nad nią i już niedługo będzie NAJLEPSZA, ale ćśśśś). Na przeglądarce zaś musisz wyrazić na to zgodę, kiedy pojawi Ci się odpowiednia prośba na naszej stronie głównej. Obiecujemy, że nie będziemy tego nadużywać!

Szczerze mówiąc, nie mam pojęcia jak bardzo rozpisać się w tej części wpisu, więc po prostu napiszę co nieco, a rozbudowywać to będziemy już przy okazji kolejnych wydań tego formatu.

 

Jakkolwiek duże Mobile Vikings by nie było, naturalnie nikt nie siedzi i nie wysyła tych powiadomień ręcznie 🙂
U backendowych podstaw naszego stacku technologicznego leży Django. Nasz system powiadomień opiera się głównie na stworzonej przez nas abstrakcji, pozwalającej w łatwy sposób dodawać kolejne sposoby. Flow w skrócie:

Channel -> NotificationMethod -> NotificationHandler -> NotificationLog -> Notifier

Dla ustalenia uwagi proponuję wyobrazić sobie nowy sposób powiadomień nazwany na przykład „blog” (bez wnikania w szczegóły czym ten byt jest). Co w uproszczeniu należałoby zrobić, żeby móc wysłać za jego pomocą jakąś informację?

Definiujemy nowy kanał:

class Channel(object):
    SMS = 'sms'
    ...
    BLOG = 'blog'
    ...

    @classmethod
    def items(cls):
        return (
            (cls.SMS, 'SMS'),
            (cls.BLOG, 'BLOG'),
            ...
        )

Dodajemy nową metodę:

class NOTIFICATION_METHOD(object):
   SMS = 'sms'
   ...
   BLOG = 'blog'

Handler — zwróć uwagę, że dziedziczy on po BaseHandler — w którym najistotniejsze jest zdefiniowanie ścieżki z templatkami (struktura analogiczna do proponowanej przez Django) do powiadomień i implementacja samej metody wysyłającej:

class BlogNotificationHandler(BaseHandler):

    template_path = 'notifications/blog/'

    def send_message(self, user, subscription, template, dictionary,
                     context_instance, **kwargs):
        from vikingpl.notifications.models import NotificationLog

        blog = Blog(
            settings.BLOG_REST_API_KEY,
            settings.BLOG_APP_ID
        )

        # Blog message context
        dictionary = dictionary.copy()
        dictionary.update({'template': template})
        
        # Render template
        context_instance.push()
        template = self.get_template(template, dictionary, context_instance)
        message = unicode(template)
        context_instance.pop()

        # Send blog message
        try:
            blog.create_notification(contents=message)
        except BlogError:
            logger.warning(u'Problem with sending blog message')
        else:
            # Create log entry for blog message
            NotificationLog.objects.create_blog_log(message_body=message)

W tym momencie już niemalże możemy wysłać wiadomość — stwórzmy jednak jeszcze wpis w naszej bazie o wysłanej informacji. W tym przypadku będzie to dodanie wywołanej u góry metody „create_blog_log” do managera „NotificationLog”:

class NotificationLogManager(models.Manager):
    ...

    def create_blog_log(self, **kwargs):
        self.create_log(
            channel=Channel.BLOG,
            **kwargs
        )

Na koniec, aby nie powtarzać swojego kodu, zdefiniujemy klasę najwyższego poziomu, która będzie odpowiadać konkretnej wiadomości wysłanej kanałem „Blog”:

class BlogHello(UserNotifier):
    methods = (NOTIFICATION_METHOD.BLOG,)
    user_configurable = False
    name = 'blog-hello'
    template = 'blog-hello'
    description = _(u'Example of abstract blog-channel message')

 

Ciekawostka: moglibyśmy w tym miejscu zaznaczyć, że notyfikacja „BlogHello” korzysta również z innych metod, np. „SMS” — w tym celu musielibyśmy dodać „NOTIFICATION_METHOD.SMS” do pola „methods”.

Pozostało jedynie znaleźć odpowiednie miejsce, aby puścić wiadomość w świat:

BlogHello.trigger_notifier()

Teraz już masz zajawkę tego, jak to u nas działa. Pozwolę sobie jeszcze nadmienić, że np. w przypadku powiadomień push na smartfony, korzystamy z platformy OneSignal.

Powiadomienia przy okazji autodoładowania

Od teraz jedyne powiadomienia jakie możecie otrzymać od nas, korzystając z autodoładowania, to:

  • SMS z numeru 856 z informacją o tym, że Twoje konto zostało doładowane
  • mail informujący o przyznanym bonusie
  • SMS/mail z informacją o nieudanym autodoładowaniu albo o jego wyłączeniu (np. z powodu nieważnej karty albo niewystarczających środkach na koncie)

Co należało zrobić, aby to osiągnąć? Prześledzić kod w poszukiwaniu triggerów notyfikacji do usunięcia — część była bezpośrednimi następstwami pewnych procedur, inne były zaplanowane już miesiąc wcześniej (paczka klucz: django-triggers) — usunąć je i wyczyścić kod z pozostałości, np. definicji konkretnych Notifier. Następnie zmodyfikować istniejące już testy, tzn. usunąć sprawdzanie czy dana notyfikacja została wysłana albo wręcz sprawdzić czy nie została wysłana 🙂

 

Wybór Vikingów

Fajnie, że zrobiliśmy coś, czego chcieliście? No pewnie, że fajnie. A my czujemy się z tym jeszcze lepiej, dlatego postanowiliśmy, że od tego roku będziemy co miesiąc dostarczać Wam to, czego chcecie.

Jak to ma działać?

  1. Kontaktujecie się z nami wszystkimi dostępnymi kanałami — komentarze pod Release Notkami (zwłaszcza!), mail na helpdesk@mobilevikings.pl, Facebook, Twitter, piszecie, dzwonicie — i mówicie, że już jest vikingowo, ale jeszcze lepiej byłoby, gdyby np. stopka na stronie głównej www.mobilevikings.pl była czerwona.
  2. My zbieramy wszystkie Wasze propozycje i wybieramy kilka, których stosunek ważność/moc przerobowa w najbliższym sprincie jest najwyższy i poddajemy pod Wasze głosowanie.
  3. Wy głosujecie i wybieracie to, co jest według Was najważniejsze.
  4. Ogłaszamy wyniki, patyk między zęby i wiosłujemy, żeby dostarczyć Wam dokładnie to, czego oczekiwaliście.
  5. W kolejnych Release Notkach opowiadamy Wam co i jak.

To wszystko i jeszcze więcej działo się u nas w ciągu ostatnich kilku tygodni.

Będę do Was pisał częściej, pewnie raz na miesiąc — nie łamcie mi serca, dajcie jakiegoś lajka i napiszcie co sądzicie o takich Release Notkach. Komentarze pozostają do Waszej wyłącznej dyspozycji.

 

Na zawsze Wasz,
M

 

Wasze komentarze:

Sprawdź oferty