# Spis treści
- Architektura projektu
- UI
- Repozytorium interfejsu
- Architektura części wspólnej CSS
- Architektura komponentów
- Walidacja propsów
- Przyjęte praktyki
- Ikonki
- Formularze
- Tłumaczenia
- ...
- Dokumentacja
- Deployment
- Front
- Konfiguracja aplikacji frontendowej
- Zmienne środowiskowe
- Założenia modułu nuxt-typo3
- Podłączenie paczki UI
- Integracja dodatkowych pluginów UI
- Architektura content elementów
- Praca z właściwościami appearance
- Obsługa błędów
- Obsługa error page
- Obsługa błędów w kontekście komponentów
- Praca z ServiceWorker
- Techniki optymalizacyjne
- Tłumaczenia
- ServerMiddlewares
- Dokumentacja
- Deployment
- Znane problemy
- Reloading chunków podczas deploymentu
# 1. Architektura projektu
# 1. Podział na część aplikacyjną oraz część interfejsu
Opis dlaczego, jakie korzyści się z tym wiążą oraz limitację. Jak wygląda wymiana informacji pomiędzy dwoma paczkami.
# 2. Organizacja monorepo z użyciem yarn workspaces
Dlaczego monorepo, a nie osobne paczki npm, dlaczego yarn workspaces nie lerna, co daje nam monorepo w kontekście zarządzania paczkami npm, jakie problemy omijami dzięki takiej organizacji
# 3. Standardy językowe, IDE
Wszystkie standardy dotyczącę eslinta, stylelinta, standard js, dodatkowe presety do babela, ustawienia nvm dla projektu, ustawienia vsc,
# 4. README
Szablon pliku README leżącego na głównym poziomie. Co powinien zawierać (instrukcję krok po kroku od postawienia proejektu do deploymentu)
# 2. UI
# 1. Podstawowa konfiguracja repozytorium interfejsu
Podstawowy kickstart projektu vue + konfiguracja storybooka, ustalmy jaki format chcemy wspierać MDX vs JS
# 2. Architektura części wspólnej CSS
Opis aktualnego boilerplate, który można znależć w aktualnych projektach + działamy nad nowym (uproszczonymm). Nie wiem czy w tym momencie powinniśmy zastanawiać się nad tym czy to postcss czy scss, ważne aby zbudować architekturę styli działającą w każdej technologii tak samo.
W opisie powinniśmy zawrzeć podejscie do typografi, nazewnictwa zmiennych, domyślnego resetu itd.
# 3. Architektura komponentów
# 1. Podział komponentów (ContentElements, UI)
Czym są i czym się charakteryzują, np. ContentElement to zbiór kilku komponentów UI budujący pewien moduł do wypuszczenia pod aplikacje frontowegoą, a UI to atomiczne komponenty typu button, ikonka, modal, nawigacje itp.
# 2. Budowa komponentów
Każdy komponent ma swój folder, w którym leży index.js eksportujący dany komponent ( tak aby nie trzeba było dublować nazwy pliku przy imporcie ), obok komponentu leży plik story oraz inne dotyczące tego jednego komponentu np. mockup data
# 3. Dokumentacja komponentów
Krótki opis storybooka, przykładowe story z knobsami itp.
# 4. Przykłady
Przykład dobrze napisanych komponentów (wraz ze stories) oraz komponentów źle napisanych w konktekście UI - niereużywalne, albo ich logika jest powiązana z logiką biznesową (czyli nie jest komponentem UI).
# 4. Eksport komponentów z paczki UI
Przykład pliku index.js jako plik główny paczki z eksportem komponentów, przykład definicji w package.json
# 5. Przyjęte praktyki
Opis praktyk, które nam się sprawdziły i chcemy je kontynuować w dalszych projektach np.
# 1. Ikonki
Czyli opis jak działamy, 1. Ikonki svg, 2. mamy skrypt, który eksportuje je do JS, 3. Jak używamy je w UI oraz jak instalujemy je na froncie.
# 2. Formularze
# 3. Tłumaczenia
Komponenty UI nie wiedzą o dostępnych tłumaczeniach, jeżeli mają być one tłumaczone to przyjmują odpowiedni props "labels".
# 6. Dokumentacja
Szablon pliku README, instrukcja jak działać z paczką,
# 7. Deployment
Możemy zawrzeć przykładową instrukcję deploymenty na gitlab pages jako deployment projektu UI.
# 2. Front
# 1. Konfiguracja aplikacji frontendowej
Kilka głwonych założen konfigugracji aplikacji nuxt + modułu nuxt-typo3.
# 2. Zmienne środowiskowe
Ustawienie zmiennych środowiskowych przez pliki .env + opis odpalenia budowania z podmienionymi ustawieniami
# 3. Założenia modułu nuxt-typo3
Główne założenia modułu, po co i jak działa, reszta w formie odnośników do dokumentacji
# 4. Podłączenie paczki UI
Jak podłączyć paczkę UI w kontekście monorepo, jakie problemy mogą wyniknąć (problem z wersją core-js), jak doładować globalne zmienne np. scss z paczki UI, dodatkowa transpilacja
# 5. Integracja dodatkowych pluginów (UI)
W jaki sposób dodajemy pluginy w nuxt, integracje np. i18n z nuxt-typo3, dodatkowa integracja z paczką UI - np. ikonki, czy generalna integr
# 6. Architektura content elementów
Czym jest content element- wrapper po stronie frontu na komponent ui, przyjmuje odpowiednie propsy i przekazuje(mapuje) je do UI. Minimum logiki UI po stronie frontu, dodatkowa logika biznesowa (np. odbieranie danych) po stronie frontu
# 1. Praca z właściwościami appearance
Jak pracujemy z appearance, możliwości wykorzystania layoutów w komponentach, spacingów, czy dodatkowych pól.
# 7. Obsługa błędów w kontekście komponentów
Przykład customowej strony error page.
# 8. Techniki optymalizacyjne
Np. ładowanie asynchroniczne komponentów, lazy hydration
# 9. Tłumaczenia
Jak działają tłumaczenia w aplikacji nuxt-typo3, jak zintegrować customową paczkę i18n z nuxt-typo3
# 10. ServerMiddlewares
Jak można wykorzystać np. Nagłówki HTTP z poziomu aplikacji JS
# 11. Dokumentacja
Szablon pliku README, instrukcja jak działać z paczką, konfiguracja.
# 12. Deployment
Opis budowania, jakie kroki muszą zostać spełnione aby zbudować aplikację
# 13. Znane problemy
Opis probłemów z które znamy i w jakiś sposób już sobie z nimi radziliśmy