Sporo się dzieje, cały czas działam. Z ważniejszych rzeczy to mam już za sobą dodanie całego modułu dla kategorii i componentu po stronie frontendu. Póki co mam 164 kategorie. Zastanawiałem się jak to ugryźć od strony bazy danych, bo kategoria może być podkategorią innej kategorii i moja pierwsza myśl to było stworzenie tabeli categories i innej tabeli dla podkategorii, ale szybko się z tego pomysłu wycofałem.

Ostateczne rozwiązanie to prosta tabela, która składa się z:
id, parent_category_id, name, slug.

Oczywiście parent_category_id jest w relacji 'wiele do jednego' z
@itfind: w NoSQL zrobiłem sobie parent, ale też dodatkowe rzeczy.
Jesli baza ma text search to wystarczy:
np. Glowna > Mniej główna > jeszcze inna > najbardziej szczegółowa
Jesli baza nie ma text search to trzeba
  • Odpowiedz
Wczoraj udało mi się zaimplementować używanie Interceptorów, które odpowiednio przerabiają mi dane przed wysłaniem do widoku.

Problem od którego wszystko się zaczęło to fakt, że zwracałem kwotę z dokładnością do 4 miejsc np. 12.5000 (tak również przechowuje w bazie dla lepszej precyzyjności) i podczas próby aktualizacji zbiórki walidacja zwracała błąd (ponieważ z widoku można wysłać tylko poprawną kwote z dwoma miejscami po przecinku np. 12.50). Czyli teraz z bazy wyciągam kwotę i interceptor automatycznie przed wysłaniem do widoku ją przerabia.

Super się sprawdziło to rozwiązanie i od razu stworzyłem sobie drugi interceptor, który transformuje mi wszystkie zwracane dane do obiektu data. Tutaj chodziło mi o spójność w endpointach, żeby zawsze dane były umieszczone w obiekcie "data". W przyszłości może jak będę potrzebował to dodam coś więcej np. żeby dane zawsze wyglądały w ten sposób:

{
itfind - Wczoraj udało mi się zaimplementować używanie Interceptorów, które odpowiedn...

źródło: comment_16069117616lSyJFIdZaFJOr1E02iA4P.jpg

Pobierz
ponieważ z widoku można wysłać tylko poprawną kwote z dwoma miejscami po przecinku np. 12.50

Czyli teraz z bazy wyciągam kwot


@itfind: Dlaczego kwotę zapisujesz z miejscami po przecinku zamiast przerobić to na grosze/centy/itp ? Po co w kwocie dokładność do 4 miejsc po przecinku? Planujesz opłaty za pół grosza?

Tutaj chodziło mi o spójność w endpointach, żeby zawsze dane były umieszczone w
  • Odpowiedz
@Narrorek: @budyn: W żadnym wypadku nie trzymam jako string, trzymam jako DECIMAL(19,4). To dobra praktyka, możliwe, że w przyszłości będę potrzebował trzymać w bazie wynik jakiegoś działania (np. dzielenia), gdzie dokładność będzie miała znaczenie i wtedy 2 miejsca po przecinku nie są wystarczające.

Oczywiście, że są różne sposóby na ogarnięcie tego, ale sporo się na ten temat naczytałem i to rozwiązanie jest popularne i używane. Po wpisaniu w
  • Odpowiedz
Aj nie jestem najlepszy w tworzeniu regularnych wpisów, ale spróbuje się poprawić ( ͡° ʖ̯ ͡°)

Ogólnie od czasu ostatniego wpisu do października dużo nie zrobiłem ze względu na sprawy rodzinne, ale ostatni miesiąc cisne mocno i jestem zadowolony z efektów. W sumie w 1 miesiąc zrobiłem więcej niż w ciągu ostatnich kilku miesięcy.

Krótkie podsumowanie:
- jako, że ostatni wpis był o CSRF to wypada mi wspomnieć, że jednak wróciłem do CSRF tokena, bo przerzuciłem się z bearer tokena do cookie (ze względu
itfind - Aj nie jestem najlepszy w tworzeniu regularnych wpisów, ale spróbuje się pop...

źródło: comment_1606775509drd01dygJoy56HL9yU7VWV.jpg

Pobierz
  • Odpowiedz
#startupzwykopem #programowanie

Dzisiaj na szybko wywalam CSRF token ze swojej aplikacji, bo nie stosuje authentication po cookies, tylko przez bearer token, więc to wystarczy na ataki CSRF.

Wcześniej twierdziłem, że dodatkowa warstwa zabezpieczenia nie zaszkodzi, ale męczyłem się troche z bugiem związanym z invalid csrf token jak biłem z postmana, więc doczytałem jeszcze i teraz mam pewność, że mogę to wywalić.

Bug fixed ( ͡° ͜ʖ
#startupzwykopem
To nie tak, że porzuciłem swój projekt. Brakuje czasu, ale walcze tak jak dzisiaj chociaż z 30min przed snem. Niedługo dam znać co przez ten czas zrobiłem. Dzisiaj chce skończyć upload obrazków. Ze względu na czas, w MVP postanowiłem zapisywać je lokalnie, nie na s3. Nie wiem czy to dobry wybór, ale na pewno szybszy w realizacji.
  • Odpowiedz
Hejo,

wolno idzie, brakuje czasu. Mam już pełny widok logowania oraz rejestracji (razem z logiką backendową, ale ciągle bez finalnych styli na froncie) + wysyłanie emaila aktywującego konto z wygenerowanym wcześniej unikatowym hashem. Za dużo chyba postanowień sobie dałem na nowy rok i nie wyrabiam czasowo ()

Dzisiaj chce napisać mały komponencik, który będę wyświetlał żeby powiadomić użytkownika jak jakaś akcja się wykona, taki NotificationBar. Póki co planuje go użyć jak user aktywuje konto z emaila i przekieruje go na stronę logowania - wtedy się pojawi coś w stylu "Gratulacje, aktywowałeś konto i
  • 1
@itfind powodzenia, szczególnie, że portal charytatywny!
Pamiętaj, że zawsze możesz zatrudnić 10 stażystów, którzy zrobią to w tym samym czasie co Ty ( ͡º ͜ʖ͡º)
  • Odpowiedz
Hej, drugi update z #startupzwykopem

Mam widok logowania i rejestracji, ale jeszcze w wersji roboczej bez dopracowanych styli. Ciężko troche mi się pracuje z Nestem, ale zawsze tak mam na początku jak dopiero poznaje jakiś większy framework. Udało się go też połączyć z nextem, więc mam już SSR.

Zrobiłem pierwszą walidacje z użyciem ValidationPipe z Nest.js i podoba mi się to, że jedną walidację mogę mieć po stronie frontu i backendu. Tzn. nawet jak jakiś cwaniaczek ominie walidacje po stronie JS na froncie to i tak ta sama go zatrzyma na backendzie :D Używam też paczki class-validator (która zresztą jest wspomniana w dokumentacji) i muszę przyznać, że śmiga bardzo miło. Kilka lat temu jaka jeszcze coś pisałem w backendzie to zazwyczaj sam pisałem proste walidacje, ale chyba dorosłem do tego żeby używać gotowych i sprawdzonych rozwiązań :D Dla ciekawych podsyłam link do dokumentacji jak taka walidacja wygląda https://docs.nestjs.com/techniques/validation

Teraz
itfind - Hej, drugi update z #startupzwykopem

Mam widok logowania i rejestracji, a...

źródło: comment_b0JmxXFqLEfu8wRj2LfBcKIddZpaZRUJ.jpg

Pobierz
  • Odpowiedz
Hej wypok,

Ruszam z pewnym projektem, trochę taki #startup i pomyślałem sobie, że mogę tutaj wrzucać update jak mi idzie tworzenie i z czym się zmagam podczas #programowanie (jeśli będzie chociaż kilka osób chętnych do czytania).

Ogólnie sam pomysł mam w głowie już od kilku lat, ale jako, że będzie to w pewnym rodzaju charytatywny portal czekałem na odpowiedni moment żeby go zacząć robić. Wiecie, chciałem być już ustawiony finansowo i życiowo żeby nie kusiło mnie zarabianie na tym i ustanawianie sporych prowizji. Jednak po kilku latach dotarło do mnie, że taki idealny moment nigdy w życiu nie nadejdzie (,) Zawsze będzie coś do czego się dąży, czego brakuje..