- szablon zakłada architekturę SPA + API bez Server Side Renderingu
Szablon przygotowany z myslą o pracy w środowisku:
-
node 22.14.0
-
yarn 4 (jest cześcią repo)
-
Bazowa struktura: vite.dev
-
Frontend:
- react
- Style: CSS Modules
- Wykonywanie zapytań do serwera: Axios HTTP
- Obsługa komunikacji z serwerem: TanStack Query
- Routing: react Router
- Podstawowe Komponenty: React Aria
- Obsługa formularzy: React Hook Form
-
Backend:
- Podstawowa bilbioteka: Expressjs
- Obsługa zapytań CORS: cors
- Baza danych: MongoDB
- Biblioteka: mongoose
- Podgląd w środowisku developerskim: mongo-express
- Podstawowa bilbioteka: Expressjs
-
Testy:
- Wizualne: Storybook
- Jednostkowe: Vitest
- Mockowanie komunikacji z serwerem Mock Service Worker
- UI: React Testing Library
- Testy obsługi zapytań: supertest
- Testy operacji na bazie danych: vitest-mongodb
yarn dev- serwer developerski frontenduyarn server:dev- server developerski backenduyarn storybook- server developerski Storybookyarn test- testy jednostkowe frontend + backendyarn test:all- testy jednostrowe frontend + backend + storybook
Szablon zakłada że developer ma lokalnie uruchomionego Dockera
Inicjalizacja bazy danych:
docker compose -p template-project -f ./.docker/dev/docker-compose.yml up --build -d
Jeżeli kożystamy z VS Code i mamy zainstalowaną wtyczkę "Auto Snippet" (jest na liście zalecanych w ustawieniach projektu) to po stworzeniu nowego pliku *.stories.ts(x) zostanie do niego dodane podstawowy kod.
Przykład: src\components\widgets\name-form\name-form.tsx
Przykłady:
src\network\requests\get-todolist.test.tssrc\network\requests\post-todolist-item.test.ts
Przykład: src\modules\todolist\use-todolist.test.tsx
Przykład: server\api\router.test.ts
Przykłady:
server\selectors\get-todolist.test.tsserver\selectors\add-todolist-item.test.ts