Hej,
planuje w ramach nauki paru technologii, które chciałem poznać stworzyć bardziej złożony projekt, chciałbym Was prosić o konstruktywną krytykę jeśli chodzi o dobór technologii/narzędzi.
Sam pomysł na aplikacje jest jeszcze inprogress, na ten moment myślałem o aplikacji do zarządzania finansami, ale z taką to wiadomo, że nikt z tego nie będzie korzystać z wielu względów (chociażby takich, że nie zintegruje tego z żadnymi aplikacjami bankowymi, nie będzie to apka mobilna i trzeba dużo pisać i uzupełniać).
Chciałem się do tego zabrać tak porządnie, tzn. zanim usiądę w ogóle do kodu to będę to wszystko rozplanowywać, diagramy komponentów etc., projektować prototypy/mockupy, później rozpisywać backlog (sprintów nie będzie, będzie kanban XD)
inb4: wiem, że to będzie bardzo duży overengineering, ale tak jak pisałem robię to tylko w ramach nauki
No więc:
-
Planuje stworzyć monorepo przy pomocy nx i yarn workspaces,
-
Po stronie klienta chce wykorzystać:
-
Po stronie serwera chce wykorzystać:
- Node.js
- NestJS i API GraphQL
-
DB:
- mongoDB stojące jako kontener dockerowy
Założenia jakie sobie przyjąłem:
- Zrobić najlepszy DX (developer experience) jaki się tylko da:
- lintery,
- odpalanie husky i sprawdzanie linterów etc. przy każdym commicie
- automatyzacja różnych procesów za pomocą github actions takich jak testy / deploy po mergu do odpowiedniego brancha i po przejsciu testów
- Zrobić SSO login za pomocą google/facebooka i fajnie by było też apple, ale z tego co się orientowałem to dużo zachodu z tym ( i tu się zastanawiam czy nie iść na "łatwizne" i wykorzystać firebase jedynie do autentykacji i niczego więcej w apce - czy to dobra praktyka czy srogie nadużycie?)
- Chce mieć w aplikacji panel administratora do sprawdzania różnych statystyk z apki i możliwością zarządzania użytkownikami:
- (bany / usuwanie kont / zmiana rodzaju konta - dostęp do większej ilości funkcjonalności - takie różne poziomy konta premium)
- wykresiki XD poznałem ChartJS i mi się tak spodobała, że chce się nimi pobawić
- Chce mieć i18n i możliwość zmiany języka (NextJS to bardzo fajnie oferuje i znalazłem dwa przydatne narzędzia i18next i i18nexus )
- Chciałem też wykorzystać CMS do wyświetlania różnych większych ilości tekstu i z tego co patrzyłem to Storyblok też zapewnia i18n, ale to już będzie nieco przesada xD i za dużo źródeł prawdy
- Pisanie unit testów
- Sentry do monitorowania błędów
I to chyba tyle na ten moment, proszę o rady/uwagi, dzięki.
PS. Jeśli post jest umieszczony w złej kategorii to proszę o przeniesienie, tak samo z tagami jeśli jakichś nadużyłem to proszę o usunięcie/dodanie.
PSS. Planowałem wrzucać tu update na random czy gdzieś indziej gdzie by to pasowało i założyć swój tag do czarnolistowania (o ile jest w ogóle taka możliwość?), ale nie widzę możliwości stworzenia własnego tagu.