Brewlog v3
Opublikowano: 10.07.2020
Ostatnia modyfikacja: 07.02.2024
Dziś poszedł pierwszy commit do gałęzi v3 najstarszego mojego projektu. Długa droga do kolejnego kamienia milowego właśnie się rozpoczęła.

Projekt Brewlog odpaliłem w 2012 roku, gdy poczułem potrzebę posiadania serwisu, w którym w nieco bardziej ustrukturyzowany sposób niż na forum piwo.org mógłbym zapisywać swoje dokonania piwowarskie. Nie żaden serwis z projektowaniem receptur, tylko zapiski piwowarskie. Przez ponad 2 lata prowadziłem je na papierze, ale okazało się to całkowicie nieprzenośne - wymagało mozolnego przepisywania na forum, żeby mieć link do dokumentu który można byłoby komuś udostępnić.
Projekt zyskał status live w 2013 roku i od tamtej pory okazjonalnie coś w nim dłubałem, a to coś zaktualizowałem, a to wymieniłem przestarzały kod na nieco bardziej współczesny, a to dostosowałem do ewoluującego krajobrazu narzędzi. Największym skokiem była aktualizacja frontendu do Bootstrap 4, ale ogólnie aplikacja wiele się nie zmieniła. Kilka mało używanych funkcji poszło w pioch, nic jednak nie przybyło. Stack również zasadniczo się nie zmienił: Flask, SQLAlchemy, WTForms na backendzie, Bootstrap na froncie. I tak dobrnęliśmy do wersji 2.0, która przynosi jedną znaczącą zmianę.
Początkowo nie za bardzo przejmowałem się prywatnymi danymi użytkowników. Nie były oczywiście nikomu udostępniane, ale aplikacja miała (i jeszcze jakiś czas będzie mieć) jedno nasty feature - identyfikacja użytkownika odbywała się przez logowanie w serwisach społecznościowych oraz OAuth2. Oznaczało to, że osoby niepokorne, którym serwis społecznościowy np. zawiesi konto na jakiś czas za nieprawomyślne wypowiedzi, mogą utracić dostęp do swoich danych. Przynajmniej na jakiś czas, jeżeli akurat wtedy wypadnie czas wygaśnięcia sesji. I nie da się go odzyskać, jeżeli jednocześnie dwaj członkowie tego oligopolu postanowią jednocześnie odesłać człowieka na kwarantannę.

Z tego właśnie powodu w Brewlog v2 identyfikacja użytkownika jest lokalna. Jest tradycyjne hasło (spokojnie, zapisane jako całkiem bezpieczny skrót PBKDF2_SHA256), jest potwierdzanie własności adresu email. Bez tego ostatniego można żyć - do momentu kiedy zapodzieje się hasło, bo wtedy dostęp do konta będzie niemożliwy do odzyskania. Ale jak ktoś używa dobrego managera haseł, to powinno być do przejścia. To znaczy, co mogłoby pójść źle?
I z takim bagażem wkraczam na ścieżkę prowadzącą do v3. Cele są ambitne:
- wyłączenie logowania przez sieci społecznościowe w grudniu 2020
- pozbycie się Bootstrapa i jQuery
- reaktywny formularz wprawadzania i modyfikacji danych warki
- reaktywny formularz wprowadzania i modyfikacji metadanych warki (notatki z degustacji, operacje przy wyszynku, itp)
Między innymi oznacza to, że aplikacja przestanie być dostępna dla użytkowników przeglądarki Internet Explorer, ale kto by się nimi w ogóle przejmował w 2020 roku.
Kiedy? Mamy 10 lipca 2020, więc ostrożnie zakładam połowę września 2021. Pośpiech jest wskazany tylko przy łapaniu pcheł.