diff --git a/exercises/01.basics/01.problem.install-and-configure/package.json b/exercises/01.basics/01.problem.install-and-configure/package.json deleted file mode 100644 index d2c7f32..0000000 --- a/exercises/01.basics/01.problem.install-and-configure/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "name": "exercises_01.basics_01.problem.install-and-configure" -} diff --git a/exercises/01.basics/README.mdx b/exercises/01.basics/README.mdx deleted file mode 100644 index a5e602c..0000000 --- a/exercises/01.basics/README.mdx +++ /dev/null @@ -1 +0,0 @@ -# Basics \ No newline at end of file diff --git a/exercises/01.basics/01.problem.install-and-configure/README.mdx b/exercises/01.fundamentals/01.problem.install-and-configure/README.mdx similarity index 100% rename from exercises/01.basics/01.problem.install-and-configure/README.mdx rename to exercises/01.fundamentals/01.problem.install-and-configure/README.mdx diff --git a/exercises/01.fundamentals/01.problem.install-and-configure/package.json b/exercises/01.fundamentals/01.problem.install-and-configure/package.json new file mode 100644 index 0000000..a00a70d --- /dev/null +++ b/exercises/01.fundamentals/01.problem.install-and-configure/package.json @@ -0,0 +1,3 @@ +{ + "name": "exercises_01.fundamentals_01.problem.install-and-configure" +} diff --git a/exercises/01.basics/01.problem.install-and-configure/tsconfig.json b/exercises/01.fundamentals/01.problem.install-and-configure/tsconfig.json similarity index 100% rename from exercises/01.basics/01.problem.install-and-configure/tsconfig.json rename to exercises/01.fundamentals/01.problem.install-and-configure/tsconfig.json diff --git a/exercises/01.basics/01.solution.install-and-configure/README.mdx b/exercises/01.fundamentals/01.solution.install-and-configure/README.mdx similarity index 100% rename from exercises/01.basics/01.solution.install-and-configure/README.mdx rename to exercises/01.fundamentals/01.solution.install-and-configure/README.mdx diff --git a/exercises/01.basics/01.solution.install-and-configure/package.json b/exercises/01.fundamentals/01.solution.install-and-configure/package.json similarity index 61% rename from exercises/01.basics/01.solution.install-and-configure/package.json rename to exercises/01.fundamentals/01.solution.install-and-configure/package.json index 5fa9319..1c8fe4d 100644 --- a/exercises/01.basics/01.solution.install-and-configure/package.json +++ b/exercises/01.fundamentals/01.solution.install-and-configure/package.json @@ -1,5 +1,5 @@ { - "name": "exercises_01.basics_01.solution.install-and-configure", + "name": "exercises_01.fundamentals_01.solution.install-and-configure", "scripts": { "test:e2e": "playwright test" }, diff --git a/exercises/01.basics/01.solution.install-and-configure/playwright.config.ts b/exercises/01.fundamentals/01.solution.install-and-configure/playwright.config.ts similarity index 100% rename from exercises/01.basics/01.solution.install-and-configure/playwright.config.ts rename to exercises/01.fundamentals/01.solution.install-and-configure/playwright.config.ts diff --git a/exercises/01.basics/01.solution.install-and-configure/tests/epicweb.test.ts b/exercises/01.fundamentals/01.solution.install-and-configure/tests/epicweb.test.ts similarity index 100% rename from exercises/01.basics/01.solution.install-and-configure/tests/epicweb.test.ts rename to exercises/01.fundamentals/01.solution.install-and-configure/tests/epicweb.test.ts diff --git a/exercises/01.basics/01.solution.install-and-configure/tsconfig.json b/exercises/01.fundamentals/01.solution.install-and-configure/tsconfig.json similarity index 100% rename from exercises/01.basics/01.solution.install-and-configure/tsconfig.json rename to exercises/01.fundamentals/01.solution.install-and-configure/tsconfig.json diff --git a/exercises/01.basics/02.problem.running-the-app/.env b/exercises/01.fundamentals/02.problem.running-the-app/.env similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/.env rename to exercises/01.fundamentals/02.problem.running-the-app/.env diff --git a/exercises/01.basics/02.problem.running-the-app/.env.example b/exercises/01.fundamentals/02.problem.running-the-app/.env.example similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/.env.example rename to exercises/01.fundamentals/02.problem.running-the-app/.env.example diff --git a/exercises/01.basics/02.problem.running-the-app/.github/PULL_REQUEST_TEMPLATE.md b/exercises/01.fundamentals/02.problem.running-the-app/.github/PULL_REQUEST_TEMPLATE.md similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/.github/PULL_REQUEST_TEMPLATE.md rename to exercises/01.fundamentals/02.problem.running-the-app/.github/PULL_REQUEST_TEMPLATE.md diff --git a/exercises/01.basics/02.problem.running-the-app/.github/workflows/deploy.yml b/exercises/01.fundamentals/02.problem.running-the-app/.github/workflows/deploy.yml similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/.github/workflows/deploy.yml rename to exercises/01.fundamentals/02.problem.running-the-app/.github/workflows/deploy.yml diff --git a/exercises/01.basics/02.problem.running-the-app/.gitignore b/exercises/01.fundamentals/02.problem.running-the-app/.gitignore similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/.gitignore rename to exercises/01.fundamentals/02.problem.running-the-app/.gitignore diff --git a/exercises/01.basics/02.problem.running-the-app/.npmrc b/exercises/01.fundamentals/02.problem.running-the-app/.npmrc similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/.npmrc rename to exercises/01.fundamentals/02.problem.running-the-app/.npmrc diff --git a/exercises/01.basics/02.problem.running-the-app/.prettierignore b/exercises/01.fundamentals/02.problem.running-the-app/.prettierignore similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/.prettierignore rename to exercises/01.fundamentals/02.problem.running-the-app/.prettierignore diff --git a/exercises/01.basics/02.problem.running-the-app/.vscode/extensions.json b/exercises/01.fundamentals/02.problem.running-the-app/.vscode/extensions.json similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/.vscode/extensions.json rename to exercises/01.fundamentals/02.problem.running-the-app/.vscode/extensions.json diff --git a/exercises/01.basics/02.problem.running-the-app/.vscode/remix.code-snippets b/exercises/01.fundamentals/02.problem.running-the-app/.vscode/remix.code-snippets similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/.vscode/remix.code-snippets rename to exercises/01.fundamentals/02.problem.running-the-app/.vscode/remix.code-snippets diff --git a/exercises/01.basics/02.problem.running-the-app/.vscode/settings.json b/exercises/01.fundamentals/02.problem.running-the-app/.vscode/settings.json similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/.vscode/settings.json rename to exercises/01.fundamentals/02.problem.running-the-app/.vscode/settings.json diff --git a/exercises/01.basics/02.problem.running-the-app/README.mdx b/exercises/01.fundamentals/02.problem.running-the-app/README.mdx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/README.mdx rename to exercises/01.fundamentals/02.problem.running-the-app/README.mdx diff --git a/exercises/01.basics/02.problem.running-the-app/app/assets/favicons/apple-touch-icon.png b/exercises/01.fundamentals/02.problem.running-the-app/app/assets/favicons/apple-touch-icon.png similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/assets/favicons/apple-touch-icon.png rename to exercises/01.fundamentals/02.problem.running-the-app/app/assets/favicons/apple-touch-icon.png diff --git a/exercises/01.basics/02.problem.running-the-app/app/assets/favicons/favicon.svg b/exercises/01.fundamentals/02.problem.running-the-app/app/assets/favicons/favicon.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/assets/favicons/favicon.svg rename to exercises/01.fundamentals/02.problem.running-the-app/app/assets/favicons/favicon.svg diff --git a/exercises/01.basics/02.problem.running-the-app/app/components/error-boundary.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/components/error-boundary.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/components/error-boundary.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/components/error-boundary.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/components/floating-toolbar.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/components/floating-toolbar.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/components/floating-toolbar.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/components/floating-toolbar.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/components/forms.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/components/forms.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/components/forms.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/components/forms.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/components/progress-bar.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/components/progress-bar.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/components/progress-bar.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/components/progress-bar.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/components/search-bar.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/components/search-bar.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/components/search-bar.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/components/search-bar.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/components/spacer.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/components/spacer.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/components/spacer.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/components/spacer.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/components/toaster.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/components/toaster.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/components/toaster.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/components/toaster.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/components/ui/README.md b/exercises/01.fundamentals/02.problem.running-the-app/app/components/ui/README.md similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/components/ui/README.md rename to exercises/01.fundamentals/02.problem.running-the-app/app/components/ui/README.md diff --git a/exercises/01.basics/02.problem.running-the-app/app/components/ui/button.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/components/ui/button.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/components/ui/button.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/components/ui/button.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/components/ui/checkbox.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/components/ui/checkbox.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/components/ui/checkbox.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/components/ui/checkbox.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/components/ui/dropdown-menu.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/components/ui/dropdown-menu.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/components/ui/dropdown-menu.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/components/ui/dropdown-menu.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/components/ui/icon.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/components/ui/icon.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/components/ui/icon.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/components/ui/icon.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/components/ui/input-otp.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/components/ui/input-otp.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/components/ui/input-otp.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/components/ui/input-otp.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/components/ui/input.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/components/ui/input.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/components/ui/input.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/components/ui/input.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/components/ui/label.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/components/ui/label.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/components/ui/label.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/components/ui/label.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/components/ui/sonner.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/components/ui/sonner.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/components/ui/sonner.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/components/ui/sonner.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/components/ui/status-button.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/components/ui/status-button.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/components/ui/status-button.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/components/ui/status-button.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/components/ui/textarea.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/components/ui/textarea.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/components/ui/textarea.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/components/ui/textarea.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/components/ui/tooltip.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/components/ui/tooltip.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/components/ui/tooltip.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/components/ui/tooltip.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/components/user-dropdown.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/components/user-dropdown.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/components/user-dropdown.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/components/user-dropdown.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/entry.client.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/entry.client.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/entry.client.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/entry.client.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/entry.server.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/entry.server.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/entry.server.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/entry.server.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/root.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/root.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/root.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/root.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes.ts b/exercises/01.fundamentals/02.problem.running-the-app/app/routes.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes.ts rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes.ts diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/$.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/$.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/$.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/$.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_auth+/auth.$provider.callback.test.ts b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_auth+/auth.$provider.callback.test.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_auth+/auth.$provider.callback.test.ts rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_auth+/auth.$provider.callback.test.ts diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_auth+/auth.$provider.callback.ts b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_auth+/auth.$provider.callback.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_auth+/auth.$provider.callback.ts rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_auth+/auth.$provider.callback.ts diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_auth+/auth_.$provider.ts b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_auth+/auth_.$provider.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_auth+/auth_.$provider.ts rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_auth+/auth_.$provider.ts diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_auth+/forgot-password.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_auth+/forgot-password.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_auth+/forgot-password.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_auth+/forgot-password.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_auth+/login.server.ts b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_auth+/login.server.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_auth+/login.server.ts rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_auth+/login.server.ts diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_auth+/login.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_auth+/login.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_auth+/login.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_auth+/login.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_auth+/logout.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_auth+/logout.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_auth+/logout.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_auth+/logout.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_auth+/onboarding.server.ts b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_auth+/onboarding.server.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_auth+/onboarding.server.ts rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_auth+/onboarding.server.ts diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_auth+/onboarding.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_auth+/onboarding.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_auth+/onboarding.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_auth+/onboarding.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_auth+/onboarding_.$provider.server.ts b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_auth+/onboarding_.$provider.server.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_auth+/onboarding_.$provider.server.ts rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_auth+/onboarding_.$provider.server.ts diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_auth+/onboarding_.$provider.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_auth+/onboarding_.$provider.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_auth+/onboarding_.$provider.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_auth+/onboarding_.$provider.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_auth+/reset-password.server.ts b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_auth+/reset-password.server.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_auth+/reset-password.server.ts rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_auth+/reset-password.server.ts diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_auth+/reset-password.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_auth+/reset-password.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_auth+/reset-password.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_auth+/reset-password.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_auth+/signup.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_auth+/signup.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_auth+/signup.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_auth+/signup.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_auth+/verify.server.ts b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_auth+/verify.server.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_auth+/verify.server.ts rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_auth+/verify.server.ts diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_auth+/verify.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_auth+/verify.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_auth+/verify.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_auth+/verify.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_auth+/webauthn+/authentication.ts b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_auth+/webauthn+/authentication.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_auth+/webauthn+/authentication.ts rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_auth+/webauthn+/authentication.ts diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_auth+/webauthn+/registration.ts b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_auth+/webauthn+/registration.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_auth+/webauthn+/registration.ts rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_auth+/webauthn+/registration.ts diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_auth+/webauthn+/utils.server.ts b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_auth+/webauthn+/utils.server.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_auth+/webauthn+/utils.server.ts rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_auth+/webauthn+/utils.server.ts diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/about.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/about.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/about.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/about.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/index.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/index.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/index.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/index.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/logos/docker.svg b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/logos/docker.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/logos/docker.svg rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/logos/docker.svg diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/logos/eslint.svg b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/logos/eslint.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/logos/eslint.svg rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/logos/eslint.svg diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/logos/faker.svg b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/logos/faker.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/logos/faker.svg rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/logos/faker.svg diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/logos/fly.svg b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/logos/fly.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/logos/fly.svg rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/logos/fly.svg diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/logos/github.svg b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/logos/github.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/logos/github.svg rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/logos/github.svg diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/logos/logos.ts b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/logos/logos.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/logos/logos.ts rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/logos/logos.ts diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/logos/msw.svg b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/logos/msw.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/logos/msw.svg rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/logos/msw.svg diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/logos/playwright.svg b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/logos/playwright.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/logos/playwright.svg rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/logos/playwright.svg diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/logos/prettier.svg b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/logos/prettier.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/logos/prettier.svg rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/logos/prettier.svg diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/logos/prisma.svg b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/logos/prisma.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/logos/prisma.svg rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/logos/prisma.svg diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/logos/radix.svg b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/logos/radix.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/logos/radix.svg rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/logos/radix.svg diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/logos/react-email.svg b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/logos/react-email.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/logos/react-email.svg rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/logos/react-email.svg diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/logos/remix.svg b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/logos/remix.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/logos/remix.svg rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/logos/remix.svg diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/logos/resend.svg b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/logos/resend.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/logos/resend.svg rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/logos/resend.svg diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/logos/sentry.svg b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/logos/sentry.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/logos/sentry.svg rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/logos/sentry.svg diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/logos/shadcn-ui.svg b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/logos/shadcn-ui.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/logos/shadcn-ui.svg rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/logos/shadcn-ui.svg diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/logos/sqlite.svg b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/logos/sqlite.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/logos/sqlite.svg rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/logos/sqlite.svg diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/logos/stars.jpg b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/logos/stars.jpg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/logos/stars.jpg rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/logos/stars.jpg diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/logos/tailwind.svg b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/logos/tailwind.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/logos/tailwind.svg rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/logos/tailwind.svg diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/logos/testing-library.png b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/logos/testing-library.png similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/logos/testing-library.png rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/logos/testing-library.png diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/logos/typescript.svg b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/logos/typescript.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/logos/typescript.svg rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/logos/typescript.svg diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/logos/vitest.svg b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/logos/vitest.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/logos/vitest.svg rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/logos/vitest.svg diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/logos/zod.svg b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/logos/zod.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/logos/zod.svg rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/logos/zod.svg diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/privacy.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/privacy.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/privacy.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/privacy.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/support.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/support.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/support.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/support.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/tos.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/tos.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_marketing+/tos.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_marketing+/tos.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_seo+/robots[.]txt.ts b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_seo+/robots[.]txt.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_seo+/robots[.]txt.ts rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_seo+/robots[.]txt.ts diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/_seo+/sitemap[.]xml.ts b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/_seo+/sitemap[.]xml.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/_seo+/sitemap[.]xml.ts rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/_seo+/sitemap[.]xml.ts diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/admin+/cache.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/admin+/cache.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/admin+/cache.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/admin+/cache.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/admin+/cache_.lru.$cacheKey.ts b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/admin+/cache_.lru.$cacheKey.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/admin+/cache_.lru.$cacheKey.ts rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/admin+/cache_.lru.$cacheKey.ts diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/admin+/cache_.sqlite.$cacheKey.ts b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/admin+/cache_.sqlite.$cacheKey.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/admin+/cache_.sqlite.$cacheKey.ts rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/admin+/cache_.sqlite.$cacheKey.ts diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/admin+/cache_.sqlite.server.ts b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/admin+/cache_.sqlite.server.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/admin+/cache_.sqlite.server.ts rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/admin+/cache_.sqlite.server.ts diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/admin+/cache_.sqlite.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/admin+/cache_.sqlite.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/admin+/cache_.sqlite.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/admin+/cache_.sqlite.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/me.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/me.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/me.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/me.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/resources+/download-user-data.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/resources+/download-user-data.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/resources+/download-user-data.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/resources+/download-user-data.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/resources+/healthcheck.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/resources+/healthcheck.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/resources+/healthcheck.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/resources+/healthcheck.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/resources+/images.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/resources+/images.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/resources+/images.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/resources+/images.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/resources+/theme-switch.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/resources+/theme-switch.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/resources+/theme-switch.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/resources+/theme-switch.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/settings+/profile.change-email.server.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/settings+/profile.change-email.server.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/settings+/profile.change-email.server.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/settings+/profile.change-email.server.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/settings+/profile.change-email.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/settings+/profile.change-email.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/settings+/profile.change-email.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/settings+/profile.change-email.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/settings+/profile.connections.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/settings+/profile.connections.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/settings+/profile.connections.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/settings+/profile.connections.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/settings+/profile.index.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/settings+/profile.index.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/settings+/profile.index.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/settings+/profile.index.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/settings+/profile.passkeys.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/settings+/profile.passkeys.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/settings+/profile.passkeys.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/settings+/profile.passkeys.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/settings+/profile.password.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/settings+/profile.password.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/settings+/profile.password.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/settings+/profile.password.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/settings+/profile.password_.create.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/settings+/profile.password_.create.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/settings+/profile.password_.create.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/settings+/profile.password_.create.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/settings+/profile.photo.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/settings+/profile.photo.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/settings+/profile.photo.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/settings+/profile.photo.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/settings+/profile.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/settings+/profile.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/settings+/profile.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/settings+/profile.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/settings+/profile.two-factor.disable.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/settings+/profile.two-factor.disable.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/settings+/profile.two-factor.disable.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/settings+/profile.two-factor.disable.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/settings+/profile.two-factor.index.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/settings+/profile.two-factor.index.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/settings+/profile.two-factor.index.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/settings+/profile.two-factor.index.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/settings+/profile.two-factor.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/settings+/profile.two-factor.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/settings+/profile.two-factor.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/settings+/profile.two-factor.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/settings+/profile.two-factor.verify.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/settings+/profile.two-factor.verify.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/settings+/profile.two-factor.verify.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/settings+/profile.two-factor.verify.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/users+/$username.test.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/users+/$username.test.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/users+/$username.test.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/users+/$username.test.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/users+/$username.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/users+/$username.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/users+/$username.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/users+/$username.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/users+/$username_+/__note-editor.server.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/users+/$username_+/__note-editor.server.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/users+/$username_+/__note-editor.server.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/users+/$username_+/__note-editor.server.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/users+/$username_+/__note-editor.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/users+/$username_+/__note-editor.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/users+/$username_+/__note-editor.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/users+/$username_+/__note-editor.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/users+/$username_+/notes.$noteId.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/users+/$username_+/notes.$noteId.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/users+/$username_+/notes.$noteId.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/users+/$username_+/notes.$noteId.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/users+/$username_+/notes.$noteId_.edit.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/users+/$username_+/notes.$noteId_.edit.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/users+/$username_+/notes.$noteId_.edit.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/users+/$username_+/notes.$noteId_.edit.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/users+/$username_+/notes.index.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/users+/$username_+/notes.index.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/users+/$username_+/notes.index.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/users+/$username_+/notes.index.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/users+/$username_+/notes.new.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/users+/$username_+/notes.new.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/users+/$username_+/notes.new.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/users+/$username_+/notes.new.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/users+/$username_+/notes.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/users+/$username_+/notes.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/users+/$username_+/notes.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/users+/$username_+/notes.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/routes/users+/index.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/routes/users+/index.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/routes/users+/index.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/routes/users+/index.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/styles/tailwind.css b/exercises/01.fundamentals/02.problem.running-the-app/app/styles/tailwind.css similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/styles/tailwind.css rename to exercises/01.fundamentals/02.problem.running-the-app/app/styles/tailwind.css diff --git a/exercises/01.basics/02.problem.running-the-app/app/utils/auth.server.test.ts b/exercises/01.fundamentals/02.problem.running-the-app/app/utils/auth.server.test.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/utils/auth.server.test.ts rename to exercises/01.fundamentals/02.problem.running-the-app/app/utils/auth.server.test.ts diff --git a/exercises/01.basics/02.problem.running-the-app/app/utils/auth.server.ts b/exercises/01.fundamentals/02.problem.running-the-app/app/utils/auth.server.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/utils/auth.server.ts rename to exercises/01.fundamentals/02.problem.running-the-app/app/utils/auth.server.ts diff --git a/exercises/01.basics/02.problem.running-the-app/app/utils/cache.server.ts b/exercises/01.fundamentals/02.problem.running-the-app/app/utils/cache.server.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/utils/cache.server.ts rename to exercises/01.fundamentals/02.problem.running-the-app/app/utils/cache.server.ts diff --git a/exercises/01.basics/02.problem.running-the-app/app/utils/client-hints.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/utils/client-hints.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/utils/client-hints.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/utils/client-hints.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/utils/connections.server.ts b/exercises/01.fundamentals/02.problem.running-the-app/app/utils/connections.server.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/utils/connections.server.ts rename to exercises/01.fundamentals/02.problem.running-the-app/app/utils/connections.server.ts diff --git a/exercises/01.basics/02.problem.running-the-app/app/utils/connections.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/utils/connections.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/utils/connections.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/utils/connections.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/utils/db.server.ts b/exercises/01.fundamentals/02.problem.running-the-app/app/utils/db.server.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/utils/db.server.ts rename to exercises/01.fundamentals/02.problem.running-the-app/app/utils/db.server.ts diff --git a/exercises/01.basics/02.problem.running-the-app/app/utils/email.server.ts b/exercises/01.fundamentals/02.problem.running-the-app/app/utils/email.server.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/utils/email.server.ts rename to exercises/01.fundamentals/02.problem.running-the-app/app/utils/email.server.ts diff --git a/exercises/01.basics/02.problem.running-the-app/app/utils/env.server.ts b/exercises/01.fundamentals/02.problem.running-the-app/app/utils/env.server.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/utils/env.server.ts rename to exercises/01.fundamentals/02.problem.running-the-app/app/utils/env.server.ts diff --git a/exercises/01.basics/02.problem.running-the-app/app/utils/headers.server.test.ts b/exercises/01.fundamentals/02.problem.running-the-app/app/utils/headers.server.test.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/utils/headers.server.test.ts rename to exercises/01.fundamentals/02.problem.running-the-app/app/utils/headers.server.test.ts diff --git a/exercises/01.basics/02.problem.running-the-app/app/utils/headers.server.ts b/exercises/01.fundamentals/02.problem.running-the-app/app/utils/headers.server.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/utils/headers.server.ts rename to exercises/01.fundamentals/02.problem.running-the-app/app/utils/headers.server.ts diff --git a/exercises/01.basics/02.problem.running-the-app/app/utils/honeypot.server.ts b/exercises/01.fundamentals/02.problem.running-the-app/app/utils/honeypot.server.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/utils/honeypot.server.ts rename to exercises/01.fundamentals/02.problem.running-the-app/app/utils/honeypot.server.ts diff --git a/exercises/01.basics/02.problem.running-the-app/app/utils/litefs.server.ts b/exercises/01.fundamentals/02.problem.running-the-app/app/utils/litefs.server.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/utils/litefs.server.ts rename to exercises/01.fundamentals/02.problem.running-the-app/app/utils/litefs.server.ts diff --git a/exercises/01.basics/02.problem.running-the-app/app/utils/misc.error-message.test.ts b/exercises/01.fundamentals/02.problem.running-the-app/app/utils/misc.error-message.test.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/utils/misc.error-message.test.ts rename to exercises/01.fundamentals/02.problem.running-the-app/app/utils/misc.error-message.test.ts diff --git a/exercises/01.basics/02.problem.running-the-app/app/utils/misc.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/utils/misc.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/utils/misc.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/utils/misc.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/utils/misc.use-double-check.test.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/utils/misc.use-double-check.test.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/utils/misc.use-double-check.test.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/utils/misc.use-double-check.test.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/utils/monitoring.client.tsx b/exercises/01.fundamentals/02.problem.running-the-app/app/utils/monitoring.client.tsx similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/utils/monitoring.client.tsx rename to exercises/01.fundamentals/02.problem.running-the-app/app/utils/monitoring.client.tsx diff --git a/exercises/01.basics/02.problem.running-the-app/app/utils/nonce-provider.ts b/exercises/01.fundamentals/02.problem.running-the-app/app/utils/nonce-provider.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/utils/nonce-provider.ts rename to exercises/01.fundamentals/02.problem.running-the-app/app/utils/nonce-provider.ts diff --git a/exercises/01.basics/02.problem.running-the-app/app/utils/permissions.server.ts b/exercises/01.fundamentals/02.problem.running-the-app/app/utils/permissions.server.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/utils/permissions.server.ts rename to exercises/01.fundamentals/02.problem.running-the-app/app/utils/permissions.server.ts diff --git a/exercises/01.basics/02.problem.running-the-app/app/utils/providers/constants.ts b/exercises/01.fundamentals/02.problem.running-the-app/app/utils/providers/constants.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/utils/providers/constants.ts rename to exercises/01.fundamentals/02.problem.running-the-app/app/utils/providers/constants.ts diff --git a/exercises/01.basics/02.problem.running-the-app/app/utils/providers/github.server.ts b/exercises/01.fundamentals/02.problem.running-the-app/app/utils/providers/github.server.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/utils/providers/github.server.ts rename to exercises/01.fundamentals/02.problem.running-the-app/app/utils/providers/github.server.ts diff --git a/exercises/01.basics/02.problem.running-the-app/app/utils/providers/provider.ts b/exercises/01.fundamentals/02.problem.running-the-app/app/utils/providers/provider.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/utils/providers/provider.ts rename to exercises/01.fundamentals/02.problem.running-the-app/app/utils/providers/provider.ts diff --git a/exercises/01.basics/02.problem.running-the-app/app/utils/redirect-cookie.server.ts b/exercises/01.fundamentals/02.problem.running-the-app/app/utils/redirect-cookie.server.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/utils/redirect-cookie.server.ts rename to exercises/01.fundamentals/02.problem.running-the-app/app/utils/redirect-cookie.server.ts diff --git a/exercises/01.basics/02.problem.running-the-app/app/utils/request-info.ts b/exercises/01.fundamentals/02.problem.running-the-app/app/utils/request-info.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/utils/request-info.ts rename to exercises/01.fundamentals/02.problem.running-the-app/app/utils/request-info.ts diff --git a/exercises/01.basics/02.problem.running-the-app/app/utils/session.server.ts b/exercises/01.fundamentals/02.problem.running-the-app/app/utils/session.server.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/utils/session.server.ts rename to exercises/01.fundamentals/02.problem.running-the-app/app/utils/session.server.ts diff --git a/exercises/01.basics/02.problem.running-the-app/app/utils/storage.server.ts b/exercises/01.fundamentals/02.problem.running-the-app/app/utils/storage.server.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/utils/storage.server.ts rename to exercises/01.fundamentals/02.problem.running-the-app/app/utils/storage.server.ts diff --git a/exercises/01.basics/02.problem.running-the-app/app/utils/theme.server.ts b/exercises/01.fundamentals/02.problem.running-the-app/app/utils/theme.server.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/utils/theme.server.ts rename to exercises/01.fundamentals/02.problem.running-the-app/app/utils/theme.server.ts diff --git a/exercises/01.basics/02.problem.running-the-app/app/utils/timing.server.ts b/exercises/01.fundamentals/02.problem.running-the-app/app/utils/timing.server.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/utils/timing.server.ts rename to exercises/01.fundamentals/02.problem.running-the-app/app/utils/timing.server.ts diff --git a/exercises/01.basics/02.problem.running-the-app/app/utils/toast.server.ts b/exercises/01.fundamentals/02.problem.running-the-app/app/utils/toast.server.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/utils/toast.server.ts rename to exercises/01.fundamentals/02.problem.running-the-app/app/utils/toast.server.ts diff --git a/exercises/01.basics/02.problem.running-the-app/app/utils/totp.server.ts b/exercises/01.fundamentals/02.problem.running-the-app/app/utils/totp.server.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/utils/totp.server.ts rename to exercises/01.fundamentals/02.problem.running-the-app/app/utils/totp.server.ts diff --git a/exercises/01.basics/02.problem.running-the-app/app/utils/user-validation.ts b/exercises/01.fundamentals/02.problem.running-the-app/app/utils/user-validation.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/utils/user-validation.ts rename to exercises/01.fundamentals/02.problem.running-the-app/app/utils/user-validation.ts diff --git a/exercises/01.basics/02.problem.running-the-app/app/utils/user.ts b/exercises/01.fundamentals/02.problem.running-the-app/app/utils/user.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/utils/user.ts rename to exercises/01.fundamentals/02.problem.running-the-app/app/utils/user.ts diff --git a/exercises/01.basics/02.problem.running-the-app/app/utils/verification.server.ts b/exercises/01.fundamentals/02.problem.running-the-app/app/utils/verification.server.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/app/utils/verification.server.ts rename to exercises/01.fundamentals/02.problem.running-the-app/app/utils/verification.server.ts diff --git a/exercises/01.basics/02.problem.running-the-app/components.json b/exercises/01.fundamentals/02.problem.running-the-app/components.json similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/components.json rename to exercises/01.fundamentals/02.problem.running-the-app/components.json diff --git a/exercises/01.basics/02.problem.running-the-app/eslint.config.js b/exercises/01.fundamentals/02.problem.running-the-app/eslint.config.js similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/eslint.config.js rename to exercises/01.fundamentals/02.problem.running-the-app/eslint.config.js diff --git a/exercises/01.basics/02.problem.running-the-app/fly.toml b/exercises/01.fundamentals/02.problem.running-the-app/fly.toml similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/fly.toml rename to exercises/01.fundamentals/02.problem.running-the-app/fly.toml diff --git a/exercises/01.basics/02.problem.running-the-app/index.js b/exercises/01.fundamentals/02.problem.running-the-app/index.js similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/index.js rename to exercises/01.fundamentals/02.problem.running-the-app/index.js diff --git a/exercises/01.basics/02.problem.running-the-app/other/Dockerfile b/exercises/01.fundamentals/02.problem.running-the-app/other/Dockerfile similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/other/Dockerfile rename to exercises/01.fundamentals/02.problem.running-the-app/other/Dockerfile diff --git a/exercises/01.basics/02.problem.running-the-app/other/Dockerfile.dockerignore b/exercises/01.fundamentals/02.problem.running-the-app/other/Dockerfile.dockerignore similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/other/Dockerfile.dockerignore rename to exercises/01.fundamentals/02.problem.running-the-app/other/Dockerfile.dockerignore diff --git a/exercises/01.basics/02.problem.running-the-app/other/README.md b/exercises/01.fundamentals/02.problem.running-the-app/other/README.md similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/other/README.md rename to exercises/01.fundamentals/02.problem.running-the-app/other/README.md diff --git a/exercises/01.basics/02.problem.running-the-app/other/build-server.ts b/exercises/01.fundamentals/02.problem.running-the-app/other/build-server.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/other/build-server.ts rename to exercises/01.fundamentals/02.problem.running-the-app/other/build-server.ts diff --git a/exercises/01.basics/02.problem.running-the-app/other/litefs.yml b/exercises/01.fundamentals/02.problem.running-the-app/other/litefs.yml similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/other/litefs.yml rename to exercises/01.fundamentals/02.problem.running-the-app/other/litefs.yml diff --git a/exercises/01.basics/02.problem.running-the-app/other/sly/sly.json b/exercises/01.fundamentals/02.problem.running-the-app/other/sly/sly.json similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/other/sly/sly.json rename to exercises/01.fundamentals/02.problem.running-the-app/other/sly/sly.json diff --git a/exercises/01.basics/02.problem.running-the-app/other/sly/transform-icon.ts b/exercises/01.fundamentals/02.problem.running-the-app/other/sly/transform-icon.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/other/sly/transform-icon.ts rename to exercises/01.fundamentals/02.problem.running-the-app/other/sly/transform-icon.ts diff --git a/exercises/01.basics/02.problem.running-the-app/other/svg-icons/README.md b/exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/README.md similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/other/svg-icons/README.md rename to exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/README.md diff --git a/exercises/01.basics/02.problem.running-the-app/other/svg-icons/arrow-left.svg b/exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/arrow-left.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/other/svg-icons/arrow-left.svg rename to exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/arrow-left.svg diff --git a/exercises/01.basics/02.problem.running-the-app/other/svg-icons/arrow-right.svg b/exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/arrow-right.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/other/svg-icons/arrow-right.svg rename to exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/arrow-right.svg diff --git a/exercises/01.basics/02.problem.running-the-app/other/svg-icons/avatar.svg b/exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/avatar.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/other/svg-icons/avatar.svg rename to exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/avatar.svg diff --git a/exercises/01.basics/02.problem.running-the-app/other/svg-icons/camera.svg b/exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/camera.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/other/svg-icons/camera.svg rename to exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/camera.svg diff --git a/exercises/01.basics/02.problem.running-the-app/other/svg-icons/check.svg b/exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/check.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/other/svg-icons/check.svg rename to exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/check.svg diff --git a/exercises/01.basics/02.problem.running-the-app/other/svg-icons/clock.svg b/exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/clock.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/other/svg-icons/clock.svg rename to exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/clock.svg diff --git a/exercises/01.basics/02.problem.running-the-app/other/svg-icons/cross-1.svg b/exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/cross-1.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/other/svg-icons/cross-1.svg rename to exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/cross-1.svg diff --git a/exercises/01.basics/02.problem.running-the-app/other/svg-icons/dots-horizontal.svg b/exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/dots-horizontal.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/other/svg-icons/dots-horizontal.svg rename to exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/dots-horizontal.svg diff --git a/exercises/01.basics/02.problem.running-the-app/other/svg-icons/download.svg b/exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/download.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/other/svg-icons/download.svg rename to exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/download.svg diff --git a/exercises/01.basics/02.problem.running-the-app/other/svg-icons/envelope-closed.svg b/exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/envelope-closed.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/other/svg-icons/envelope-closed.svg rename to exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/envelope-closed.svg diff --git a/exercises/01.basics/02.problem.running-the-app/other/svg-icons/exit.svg b/exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/exit.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/other/svg-icons/exit.svg rename to exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/exit.svg diff --git a/exercises/01.basics/02.problem.running-the-app/other/svg-icons/file-text.svg b/exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/file-text.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/other/svg-icons/file-text.svg rename to exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/file-text.svg diff --git a/exercises/01.basics/02.problem.running-the-app/other/svg-icons/github-logo.svg b/exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/github-logo.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/other/svg-icons/github-logo.svg rename to exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/github-logo.svg diff --git a/exercises/01.basics/02.problem.running-the-app/other/svg-icons/laptop.svg b/exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/laptop.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/other/svg-icons/laptop.svg rename to exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/laptop.svg diff --git a/exercises/01.basics/02.problem.running-the-app/other/svg-icons/link-2.svg b/exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/link-2.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/other/svg-icons/link-2.svg rename to exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/link-2.svg diff --git a/exercises/01.basics/02.problem.running-the-app/other/svg-icons/lock-closed.svg b/exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/lock-closed.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/other/svg-icons/lock-closed.svg rename to exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/lock-closed.svg diff --git a/exercises/01.basics/02.problem.running-the-app/other/svg-icons/lock-open-1.svg b/exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/lock-open-1.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/other/svg-icons/lock-open-1.svg rename to exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/lock-open-1.svg diff --git a/exercises/01.basics/02.problem.running-the-app/other/svg-icons/magnifying-glass.svg b/exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/magnifying-glass.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/other/svg-icons/magnifying-glass.svg rename to exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/magnifying-glass.svg diff --git a/exercises/01.basics/02.problem.running-the-app/other/svg-icons/moon.svg b/exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/moon.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/other/svg-icons/moon.svg rename to exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/moon.svg diff --git a/exercises/01.basics/02.problem.running-the-app/other/svg-icons/passkey.svg b/exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/passkey.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/other/svg-icons/passkey.svg rename to exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/passkey.svg diff --git a/exercises/01.basics/02.problem.running-the-app/other/svg-icons/pencil-1.svg b/exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/pencil-1.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/other/svg-icons/pencil-1.svg rename to exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/pencil-1.svg diff --git a/exercises/01.basics/02.problem.running-the-app/other/svg-icons/pencil-2.svg b/exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/pencil-2.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/other/svg-icons/pencil-2.svg rename to exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/pencil-2.svg diff --git a/exercises/01.basics/02.problem.running-the-app/other/svg-icons/plus.svg b/exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/plus.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/other/svg-icons/plus.svg rename to exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/plus.svg diff --git a/exercises/01.basics/02.problem.running-the-app/other/svg-icons/question-mark-circled.svg b/exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/question-mark-circled.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/other/svg-icons/question-mark-circled.svg rename to exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/question-mark-circled.svg diff --git a/exercises/01.basics/02.problem.running-the-app/other/svg-icons/reset.svg b/exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/reset.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/other/svg-icons/reset.svg rename to exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/reset.svg diff --git a/exercises/01.basics/02.problem.running-the-app/other/svg-icons/sun.svg b/exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/sun.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/other/svg-icons/sun.svg rename to exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/sun.svg diff --git a/exercises/01.basics/02.problem.running-the-app/other/svg-icons/trash.svg b/exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/trash.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/other/svg-icons/trash.svg rename to exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/trash.svg diff --git a/exercises/01.basics/02.problem.running-the-app/other/svg-icons/update.svg b/exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/update.svg similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/other/svg-icons/update.svg rename to exercises/01.fundamentals/02.problem.running-the-app/other/svg-icons/update.svg diff --git a/exercises/01.basics/02.problem.running-the-app/package-lock.json b/exercises/01.fundamentals/02.problem.running-the-app/package-lock.json similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/package-lock.json rename to exercises/01.fundamentals/02.problem.running-the-app/package-lock.json diff --git a/exercises/01.basics/02.problem.running-the-app/package.json b/exercises/01.fundamentals/02.problem.running-the-app/package.json similarity index 98% rename from exercises/01.basics/02.problem.running-the-app/package.json rename to exercises/01.fundamentals/02.problem.running-the-app/package.json index 06a4d8b..2d5aeb0 100644 --- a/exercises/01.basics/02.problem.running-the-app/package.json +++ b/exercises/01.fundamentals/02.problem.running-the-app/package.json @@ -1,5 +1,5 @@ { - "name": "exercises_01.basics_02.problem.running-the-app", + "name": "exercises_01.fundamentals_02.problem.running-the-app", "private": true, "sideEffects": false, "type": "module", diff --git a/exercises/01.basics/02.problem.running-the-app/playwright.config.ts b/exercises/01.fundamentals/02.problem.running-the-app/playwright.config.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/playwright.config.ts rename to exercises/01.fundamentals/02.problem.running-the-app/playwright.config.ts diff --git a/exercises/01.basics/02.problem.running-the-app/prisma/migrations/20250221233640_init/migration.sql b/exercises/01.fundamentals/02.problem.running-the-app/prisma/migrations/20250221233640_init/migration.sql similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/prisma/migrations/20250221233640_init/migration.sql rename to exercises/01.fundamentals/02.problem.running-the-app/prisma/migrations/20250221233640_init/migration.sql diff --git a/exercises/01.basics/02.problem.running-the-app/prisma/migrations/migration_lock.toml b/exercises/01.fundamentals/02.problem.running-the-app/prisma/migrations/migration_lock.toml similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/prisma/migrations/migration_lock.toml rename to exercises/01.fundamentals/02.problem.running-the-app/prisma/migrations/migration_lock.toml diff --git a/exercises/01.basics/02.problem.running-the-app/prisma/schema.prisma b/exercises/01.fundamentals/02.problem.running-the-app/prisma/schema.prisma similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/prisma/schema.prisma rename to exercises/01.fundamentals/02.problem.running-the-app/prisma/schema.prisma diff --git a/exercises/01.basics/02.problem.running-the-app/prisma/seed.ts b/exercises/01.fundamentals/02.problem.running-the-app/prisma/seed.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/prisma/seed.ts rename to exercises/01.fundamentals/02.problem.running-the-app/prisma/seed.ts diff --git a/exercises/01.basics/02.problem.running-the-app/prisma/sql/searchUsers.sql b/exercises/01.fundamentals/02.problem.running-the-app/prisma/sql/searchUsers.sql similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/prisma/sql/searchUsers.sql rename to exercises/01.fundamentals/02.problem.running-the-app/prisma/sql/searchUsers.sql diff --git a/exercises/01.basics/02.problem.running-the-app/public/favicon.ico b/exercises/01.fundamentals/02.problem.running-the-app/public/favicon.ico similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/public/favicon.ico rename to exercises/01.fundamentals/02.problem.running-the-app/public/favicon.ico diff --git a/exercises/01.basics/02.problem.running-the-app/public/favicons/README.md b/exercises/01.fundamentals/02.problem.running-the-app/public/favicons/README.md similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/public/favicons/README.md rename to exercises/01.fundamentals/02.problem.running-the-app/public/favicons/README.md diff --git a/exercises/01.basics/02.problem.running-the-app/public/favicons/android-chrome-192x192.png b/exercises/01.fundamentals/02.problem.running-the-app/public/favicons/android-chrome-192x192.png similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/public/favicons/android-chrome-192x192.png rename to exercises/01.fundamentals/02.problem.running-the-app/public/favicons/android-chrome-192x192.png diff --git a/exercises/01.basics/02.problem.running-the-app/public/favicons/android-chrome-512x512.png b/exercises/01.fundamentals/02.problem.running-the-app/public/favicons/android-chrome-512x512.png similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/public/favicons/android-chrome-512x512.png rename to exercises/01.fundamentals/02.problem.running-the-app/public/favicons/android-chrome-512x512.png diff --git a/exercises/01.basics/02.problem.running-the-app/public/img/user.png b/exercises/01.fundamentals/02.problem.running-the-app/public/img/user.png similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/public/img/user.png rename to exercises/01.fundamentals/02.problem.running-the-app/public/img/user.png diff --git a/exercises/01.basics/02.problem.running-the-app/public/site.webmanifest b/exercises/01.fundamentals/02.problem.running-the-app/public/site.webmanifest similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/public/site.webmanifest rename to exercises/01.fundamentals/02.problem.running-the-app/public/site.webmanifest diff --git a/exercises/01.basics/02.problem.running-the-app/react-router.config.ts b/exercises/01.fundamentals/02.problem.running-the-app/react-router.config.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/react-router.config.ts rename to exercises/01.fundamentals/02.problem.running-the-app/react-router.config.ts diff --git a/exercises/01.basics/02.problem.running-the-app/server/dev-server.js b/exercises/01.fundamentals/02.problem.running-the-app/server/dev-server.js similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/server/dev-server.js rename to exercises/01.fundamentals/02.problem.running-the-app/server/dev-server.js diff --git a/exercises/01.basics/02.problem.running-the-app/server/index.ts b/exercises/01.fundamentals/02.problem.running-the-app/server/index.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/server/index.ts rename to exercises/01.fundamentals/02.problem.running-the-app/server/index.ts diff --git a/exercises/01.basics/02.problem.running-the-app/server/utils/monitoring.ts b/exercises/01.fundamentals/02.problem.running-the-app/server/utils/monitoring.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/server/utils/monitoring.ts rename to exercises/01.fundamentals/02.problem.running-the-app/server/utils/monitoring.ts diff --git a/exercises/01.basics/02.problem.running-the-app/tests/db-utils.ts b/exercises/01.fundamentals/02.problem.running-the-app/tests/db-utils.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/tests/db-utils.ts rename to exercises/01.fundamentals/02.problem.running-the-app/tests/db-utils.ts diff --git a/exercises/01.basics/02.problem.running-the-app/tests/e2e/homepage.test.ts b/exercises/01.fundamentals/02.problem.running-the-app/tests/e2e/homepage.test.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/tests/e2e/homepage.test.ts rename to exercises/01.fundamentals/02.problem.running-the-app/tests/e2e/homepage.test.ts diff --git a/exercises/01.basics/02.problem.running-the-app/tests/setup/custom-matchers.ts b/exercises/01.fundamentals/02.problem.running-the-app/tests/setup/custom-matchers.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/tests/setup/custom-matchers.ts rename to exercises/01.fundamentals/02.problem.running-the-app/tests/setup/custom-matchers.ts diff --git a/exercises/01.basics/02.problem.running-the-app/tests/setup/db-setup.ts b/exercises/01.fundamentals/02.problem.running-the-app/tests/setup/db-setup.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/tests/setup/db-setup.ts rename to exercises/01.fundamentals/02.problem.running-the-app/tests/setup/db-setup.ts diff --git a/exercises/01.basics/02.problem.running-the-app/tests/setup/global-setup.ts b/exercises/01.fundamentals/02.problem.running-the-app/tests/setup/global-setup.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/tests/setup/global-setup.ts rename to exercises/01.fundamentals/02.problem.running-the-app/tests/setup/global-setup.ts diff --git a/exercises/01.basics/02.problem.running-the-app/tests/setup/setup-test-env.ts b/exercises/01.fundamentals/02.problem.running-the-app/tests/setup/setup-test-env.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/tests/setup/setup-test-env.ts rename to exercises/01.fundamentals/02.problem.running-the-app/tests/setup/setup-test-env.ts diff --git a/exercises/01.basics/02.problem.running-the-app/tests/utils.ts b/exercises/01.fundamentals/02.problem.running-the-app/tests/utils.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/tests/utils.ts rename to exercises/01.fundamentals/02.problem.running-the-app/tests/utils.ts diff --git a/exercises/01.basics/02.problem.running-the-app/tsconfig.json b/exercises/01.fundamentals/02.problem.running-the-app/tsconfig.json similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/tsconfig.json rename to exercises/01.fundamentals/02.problem.running-the-app/tsconfig.json diff --git a/exercises/01.basics/02.problem.running-the-app/types/deps.d.ts b/exercises/01.fundamentals/02.problem.running-the-app/types/deps.d.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/types/deps.d.ts rename to exercises/01.fundamentals/02.problem.running-the-app/types/deps.d.ts diff --git a/exercises/01.basics/02.problem.running-the-app/types/env.env.d.ts b/exercises/01.fundamentals/02.problem.running-the-app/types/env.env.d.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/types/env.env.d.ts rename to exercises/01.fundamentals/02.problem.running-the-app/types/env.env.d.ts diff --git a/exercises/01.basics/02.problem.running-the-app/types/icon-name.d.ts b/exercises/01.fundamentals/02.problem.running-the-app/types/icon-name.d.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/types/icon-name.d.ts rename to exercises/01.fundamentals/02.problem.running-the-app/types/icon-name.d.ts diff --git a/exercises/01.basics/02.problem.running-the-app/types/reset.d.ts b/exercises/01.fundamentals/02.problem.running-the-app/types/reset.d.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/types/reset.d.ts rename to exercises/01.fundamentals/02.problem.running-the-app/types/reset.d.ts diff --git a/exercises/01.basics/02.problem.running-the-app/vite.config.ts b/exercises/01.fundamentals/02.problem.running-the-app/vite.config.ts similarity index 100% rename from exercises/01.basics/02.problem.running-the-app/vite.config.ts rename to exercises/01.fundamentals/02.problem.running-the-app/vite.config.ts diff --git a/exercises/01.basics/02.solution.running-the-app/.env b/exercises/01.fundamentals/02.solution.running-the-app/.env similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/.env rename to exercises/01.fundamentals/02.solution.running-the-app/.env diff --git a/exercises/01.basics/02.solution.running-the-app/.env.example b/exercises/01.fundamentals/02.solution.running-the-app/.env.example similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/.env.example rename to exercises/01.fundamentals/02.solution.running-the-app/.env.example diff --git a/exercises/01.basics/02.solution.running-the-app/.github/PULL_REQUEST_TEMPLATE.md b/exercises/01.fundamentals/02.solution.running-the-app/.github/PULL_REQUEST_TEMPLATE.md similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/.github/PULL_REQUEST_TEMPLATE.md rename to exercises/01.fundamentals/02.solution.running-the-app/.github/PULL_REQUEST_TEMPLATE.md diff --git a/exercises/01.basics/02.solution.running-the-app/.github/workflows/deploy.yml b/exercises/01.fundamentals/02.solution.running-the-app/.github/workflows/deploy.yml similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/.github/workflows/deploy.yml rename to exercises/01.fundamentals/02.solution.running-the-app/.github/workflows/deploy.yml diff --git a/exercises/01.basics/02.solution.running-the-app/.gitignore b/exercises/01.fundamentals/02.solution.running-the-app/.gitignore similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/.gitignore rename to exercises/01.fundamentals/02.solution.running-the-app/.gitignore diff --git a/exercises/01.basics/02.solution.running-the-app/.npmrc b/exercises/01.fundamentals/02.solution.running-the-app/.npmrc similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/.npmrc rename to exercises/01.fundamentals/02.solution.running-the-app/.npmrc diff --git a/exercises/01.basics/02.solution.running-the-app/.prettierignore b/exercises/01.fundamentals/02.solution.running-the-app/.prettierignore similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/.prettierignore rename to exercises/01.fundamentals/02.solution.running-the-app/.prettierignore diff --git a/exercises/01.basics/02.solution.running-the-app/.vscode/extensions.json b/exercises/01.fundamentals/02.solution.running-the-app/.vscode/extensions.json similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/.vscode/extensions.json rename to exercises/01.fundamentals/02.solution.running-the-app/.vscode/extensions.json diff --git a/exercises/01.basics/02.solution.running-the-app/.vscode/remix.code-snippets b/exercises/01.fundamentals/02.solution.running-the-app/.vscode/remix.code-snippets similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/.vscode/remix.code-snippets rename to exercises/01.fundamentals/02.solution.running-the-app/.vscode/remix.code-snippets diff --git a/exercises/01.basics/02.solution.running-the-app/.vscode/settings.json b/exercises/01.fundamentals/02.solution.running-the-app/.vscode/settings.json similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/.vscode/settings.json rename to exercises/01.fundamentals/02.solution.running-the-app/.vscode/settings.json diff --git a/exercises/01.basics/02.solution.running-the-app/README.mdx b/exercises/01.fundamentals/02.solution.running-the-app/README.mdx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/README.mdx rename to exercises/01.fundamentals/02.solution.running-the-app/README.mdx diff --git a/exercises/01.basics/02.solution.running-the-app/app/assets/favicons/apple-touch-icon.png b/exercises/01.fundamentals/02.solution.running-the-app/app/assets/favicons/apple-touch-icon.png similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/assets/favicons/apple-touch-icon.png rename to exercises/01.fundamentals/02.solution.running-the-app/app/assets/favicons/apple-touch-icon.png diff --git a/exercises/01.basics/02.solution.running-the-app/app/assets/favicons/favicon.svg b/exercises/01.fundamentals/02.solution.running-the-app/app/assets/favicons/favicon.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/assets/favicons/favicon.svg rename to exercises/01.fundamentals/02.solution.running-the-app/app/assets/favicons/favicon.svg diff --git a/exercises/01.basics/02.solution.running-the-app/app/components/error-boundary.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/components/error-boundary.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/components/error-boundary.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/components/error-boundary.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/components/floating-toolbar.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/components/floating-toolbar.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/components/floating-toolbar.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/components/floating-toolbar.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/components/forms.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/components/forms.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/components/forms.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/components/forms.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/components/progress-bar.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/components/progress-bar.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/components/progress-bar.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/components/progress-bar.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/components/search-bar.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/components/search-bar.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/components/search-bar.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/components/search-bar.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/components/spacer.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/components/spacer.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/components/spacer.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/components/spacer.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/components/toaster.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/components/toaster.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/components/toaster.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/components/toaster.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/components/ui/README.md b/exercises/01.fundamentals/02.solution.running-the-app/app/components/ui/README.md similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/components/ui/README.md rename to exercises/01.fundamentals/02.solution.running-the-app/app/components/ui/README.md diff --git a/exercises/01.basics/02.solution.running-the-app/app/components/ui/button.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/components/ui/button.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/components/ui/button.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/components/ui/button.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/components/ui/checkbox.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/components/ui/checkbox.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/components/ui/checkbox.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/components/ui/checkbox.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/components/ui/dropdown-menu.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/components/ui/dropdown-menu.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/components/ui/dropdown-menu.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/components/ui/dropdown-menu.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/components/ui/icon.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/components/ui/icon.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/components/ui/icon.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/components/ui/icon.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/components/ui/input-otp.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/components/ui/input-otp.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/components/ui/input-otp.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/components/ui/input-otp.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/components/ui/input.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/components/ui/input.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/components/ui/input.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/components/ui/input.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/components/ui/label.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/components/ui/label.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/components/ui/label.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/components/ui/label.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/components/ui/sonner.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/components/ui/sonner.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/components/ui/sonner.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/components/ui/sonner.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/components/ui/status-button.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/components/ui/status-button.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/components/ui/status-button.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/components/ui/status-button.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/components/ui/textarea.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/components/ui/textarea.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/components/ui/textarea.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/components/ui/textarea.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/components/ui/tooltip.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/components/ui/tooltip.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/components/ui/tooltip.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/components/ui/tooltip.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/components/user-dropdown.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/components/user-dropdown.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/components/user-dropdown.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/components/user-dropdown.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/entry.client.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/entry.client.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/entry.client.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/entry.client.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/entry.server.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/entry.server.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/entry.server.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/entry.server.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/root.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/root.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/root.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/root.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes.ts b/exercises/01.fundamentals/02.solution.running-the-app/app/routes.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes.ts rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes.ts diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/$.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/$.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/$.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/$.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_auth+/auth.$provider.callback.test.ts b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_auth+/auth.$provider.callback.test.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_auth+/auth.$provider.callback.test.ts rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_auth+/auth.$provider.callback.test.ts diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_auth+/auth.$provider.callback.ts b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_auth+/auth.$provider.callback.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_auth+/auth.$provider.callback.ts rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_auth+/auth.$provider.callback.ts diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_auth+/auth_.$provider.ts b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_auth+/auth_.$provider.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_auth+/auth_.$provider.ts rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_auth+/auth_.$provider.ts diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_auth+/forgot-password.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_auth+/forgot-password.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_auth+/forgot-password.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_auth+/forgot-password.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_auth+/login.server.ts b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_auth+/login.server.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_auth+/login.server.ts rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_auth+/login.server.ts diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_auth+/login.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_auth+/login.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_auth+/login.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_auth+/login.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_auth+/logout.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_auth+/logout.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_auth+/logout.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_auth+/logout.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_auth+/onboarding.server.ts b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_auth+/onboarding.server.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_auth+/onboarding.server.ts rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_auth+/onboarding.server.ts diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_auth+/onboarding.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_auth+/onboarding.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_auth+/onboarding.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_auth+/onboarding.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_auth+/onboarding_.$provider.server.ts b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_auth+/onboarding_.$provider.server.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_auth+/onboarding_.$provider.server.ts rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_auth+/onboarding_.$provider.server.ts diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_auth+/onboarding_.$provider.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_auth+/onboarding_.$provider.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_auth+/onboarding_.$provider.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_auth+/onboarding_.$provider.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_auth+/reset-password.server.ts b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_auth+/reset-password.server.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_auth+/reset-password.server.ts rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_auth+/reset-password.server.ts diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_auth+/reset-password.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_auth+/reset-password.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_auth+/reset-password.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_auth+/reset-password.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_auth+/signup.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_auth+/signup.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_auth+/signup.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_auth+/signup.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_auth+/verify.server.ts b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_auth+/verify.server.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_auth+/verify.server.ts rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_auth+/verify.server.ts diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_auth+/verify.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_auth+/verify.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_auth+/verify.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_auth+/verify.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_auth+/webauthn+/authentication.ts b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_auth+/webauthn+/authentication.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_auth+/webauthn+/authentication.ts rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_auth+/webauthn+/authentication.ts diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_auth+/webauthn+/registration.ts b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_auth+/webauthn+/registration.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_auth+/webauthn+/registration.ts rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_auth+/webauthn+/registration.ts diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_auth+/webauthn+/utils.server.ts b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_auth+/webauthn+/utils.server.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_auth+/webauthn+/utils.server.ts rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_auth+/webauthn+/utils.server.ts diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/about.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/about.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/about.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/about.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/index.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/index.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/index.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/index.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/logos/docker.svg b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/logos/docker.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/logos/docker.svg rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/logos/docker.svg diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/logos/eslint.svg b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/logos/eslint.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/logos/eslint.svg rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/logos/eslint.svg diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/logos/faker.svg b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/logos/faker.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/logos/faker.svg rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/logos/faker.svg diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/logos/fly.svg b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/logos/fly.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/logos/fly.svg rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/logos/fly.svg diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/logos/github.svg b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/logos/github.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/logos/github.svg rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/logos/github.svg diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/logos/logos.ts b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/logos/logos.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/logos/logos.ts rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/logos/logos.ts diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/logos/msw.svg b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/logos/msw.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/logos/msw.svg rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/logos/msw.svg diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/logos/playwright.svg b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/logos/playwright.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/logos/playwright.svg rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/logos/playwright.svg diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/logos/prettier.svg b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/logos/prettier.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/logos/prettier.svg rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/logos/prettier.svg diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/logos/prisma.svg b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/logos/prisma.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/logos/prisma.svg rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/logos/prisma.svg diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/logos/radix.svg b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/logos/radix.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/logos/radix.svg rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/logos/radix.svg diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/logos/react-email.svg b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/logos/react-email.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/logos/react-email.svg rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/logos/react-email.svg diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/logos/remix.svg b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/logos/remix.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/logos/remix.svg rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/logos/remix.svg diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/logos/resend.svg b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/logos/resend.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/logos/resend.svg rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/logos/resend.svg diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/logos/sentry.svg b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/logos/sentry.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/logos/sentry.svg rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/logos/sentry.svg diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/logos/shadcn-ui.svg b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/logos/shadcn-ui.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/logos/shadcn-ui.svg rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/logos/shadcn-ui.svg diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/logos/sqlite.svg b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/logos/sqlite.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/logos/sqlite.svg rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/logos/sqlite.svg diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/logos/stars.jpg b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/logos/stars.jpg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/logos/stars.jpg rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/logos/stars.jpg diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/logos/tailwind.svg b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/logos/tailwind.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/logos/tailwind.svg rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/logos/tailwind.svg diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/logos/testing-library.png b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/logos/testing-library.png similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/logos/testing-library.png rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/logos/testing-library.png diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/logos/typescript.svg b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/logos/typescript.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/logos/typescript.svg rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/logos/typescript.svg diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/logos/vitest.svg b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/logos/vitest.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/logos/vitest.svg rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/logos/vitest.svg diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/logos/zod.svg b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/logos/zod.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/logos/zod.svg rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/logos/zod.svg diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/privacy.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/privacy.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/privacy.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/privacy.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/support.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/support.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/support.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/support.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/tos.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/tos.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_marketing+/tos.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_marketing+/tos.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_seo+/robots[.]txt.ts b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_seo+/robots[.]txt.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_seo+/robots[.]txt.ts rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_seo+/robots[.]txt.ts diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/_seo+/sitemap[.]xml.ts b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/_seo+/sitemap[.]xml.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/_seo+/sitemap[.]xml.ts rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/_seo+/sitemap[.]xml.ts diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/admin+/cache.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/admin+/cache.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/admin+/cache.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/admin+/cache.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/admin+/cache_.lru.$cacheKey.ts b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/admin+/cache_.lru.$cacheKey.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/admin+/cache_.lru.$cacheKey.ts rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/admin+/cache_.lru.$cacheKey.ts diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/admin+/cache_.sqlite.$cacheKey.ts b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/admin+/cache_.sqlite.$cacheKey.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/admin+/cache_.sqlite.$cacheKey.ts rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/admin+/cache_.sqlite.$cacheKey.ts diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/admin+/cache_.sqlite.server.ts b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/admin+/cache_.sqlite.server.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/admin+/cache_.sqlite.server.ts rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/admin+/cache_.sqlite.server.ts diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/admin+/cache_.sqlite.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/admin+/cache_.sqlite.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/admin+/cache_.sqlite.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/admin+/cache_.sqlite.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/me.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/me.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/me.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/me.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/resources+/download-user-data.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/resources+/download-user-data.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/resources+/download-user-data.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/resources+/download-user-data.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/resources+/healthcheck.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/resources+/healthcheck.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/resources+/healthcheck.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/resources+/healthcheck.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/resources+/images.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/resources+/images.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/resources+/images.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/resources+/images.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/resources+/theme-switch.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/resources+/theme-switch.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/resources+/theme-switch.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/resources+/theme-switch.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/settings+/profile.change-email.server.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/settings+/profile.change-email.server.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/settings+/profile.change-email.server.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/settings+/profile.change-email.server.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/settings+/profile.change-email.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/settings+/profile.change-email.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/settings+/profile.change-email.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/settings+/profile.change-email.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/settings+/profile.connections.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/settings+/profile.connections.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/settings+/profile.connections.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/settings+/profile.connections.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/settings+/profile.index.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/settings+/profile.index.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/settings+/profile.index.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/settings+/profile.index.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/settings+/profile.passkeys.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/settings+/profile.passkeys.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/settings+/profile.passkeys.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/settings+/profile.passkeys.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/settings+/profile.password.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/settings+/profile.password.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/settings+/profile.password.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/settings+/profile.password.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/settings+/profile.password_.create.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/settings+/profile.password_.create.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/settings+/profile.password_.create.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/settings+/profile.password_.create.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/settings+/profile.photo.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/settings+/profile.photo.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/settings+/profile.photo.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/settings+/profile.photo.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/settings+/profile.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/settings+/profile.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/settings+/profile.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/settings+/profile.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/settings+/profile.two-factor.disable.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/settings+/profile.two-factor.disable.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/settings+/profile.two-factor.disable.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/settings+/profile.two-factor.disable.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/settings+/profile.two-factor.index.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/settings+/profile.two-factor.index.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/settings+/profile.two-factor.index.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/settings+/profile.two-factor.index.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/settings+/profile.two-factor.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/settings+/profile.two-factor.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/settings+/profile.two-factor.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/settings+/profile.two-factor.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/settings+/profile.two-factor.verify.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/settings+/profile.two-factor.verify.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/settings+/profile.two-factor.verify.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/settings+/profile.two-factor.verify.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/users+/$username.test.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/users+/$username.test.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/users+/$username.test.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/users+/$username.test.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/users+/$username.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/users+/$username.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/users+/$username.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/users+/$username.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/users+/$username_+/__note-editor.server.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/users+/$username_+/__note-editor.server.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/users+/$username_+/__note-editor.server.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/users+/$username_+/__note-editor.server.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/users+/$username_+/__note-editor.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/users+/$username_+/__note-editor.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/users+/$username_+/__note-editor.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/users+/$username_+/__note-editor.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/users+/$username_+/notes.$noteId.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/users+/$username_+/notes.$noteId.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/users+/$username_+/notes.$noteId.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/users+/$username_+/notes.$noteId.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/users+/$username_+/notes.$noteId_.edit.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/users+/$username_+/notes.$noteId_.edit.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/users+/$username_+/notes.$noteId_.edit.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/users+/$username_+/notes.$noteId_.edit.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/users+/$username_+/notes.index.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/users+/$username_+/notes.index.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/users+/$username_+/notes.index.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/users+/$username_+/notes.index.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/users+/$username_+/notes.new.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/users+/$username_+/notes.new.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/users+/$username_+/notes.new.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/users+/$username_+/notes.new.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/users+/$username_+/notes.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/users+/$username_+/notes.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/users+/$username_+/notes.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/users+/$username_+/notes.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/routes/users+/index.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/routes/users+/index.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/routes/users+/index.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/routes/users+/index.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/styles/tailwind.css b/exercises/01.fundamentals/02.solution.running-the-app/app/styles/tailwind.css similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/styles/tailwind.css rename to exercises/01.fundamentals/02.solution.running-the-app/app/styles/tailwind.css diff --git a/exercises/01.basics/02.solution.running-the-app/app/utils/auth.server.test.ts b/exercises/01.fundamentals/02.solution.running-the-app/app/utils/auth.server.test.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/utils/auth.server.test.ts rename to exercises/01.fundamentals/02.solution.running-the-app/app/utils/auth.server.test.ts diff --git a/exercises/01.basics/02.solution.running-the-app/app/utils/auth.server.ts b/exercises/01.fundamentals/02.solution.running-the-app/app/utils/auth.server.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/utils/auth.server.ts rename to exercises/01.fundamentals/02.solution.running-the-app/app/utils/auth.server.ts diff --git a/exercises/01.basics/02.solution.running-the-app/app/utils/cache.server.ts b/exercises/01.fundamentals/02.solution.running-the-app/app/utils/cache.server.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/utils/cache.server.ts rename to exercises/01.fundamentals/02.solution.running-the-app/app/utils/cache.server.ts diff --git a/exercises/01.basics/02.solution.running-the-app/app/utils/client-hints.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/utils/client-hints.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/utils/client-hints.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/utils/client-hints.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/utils/connections.server.ts b/exercises/01.fundamentals/02.solution.running-the-app/app/utils/connections.server.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/utils/connections.server.ts rename to exercises/01.fundamentals/02.solution.running-the-app/app/utils/connections.server.ts diff --git a/exercises/01.basics/02.solution.running-the-app/app/utils/connections.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/utils/connections.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/utils/connections.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/utils/connections.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/utils/db.server.ts b/exercises/01.fundamentals/02.solution.running-the-app/app/utils/db.server.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/utils/db.server.ts rename to exercises/01.fundamentals/02.solution.running-the-app/app/utils/db.server.ts diff --git a/exercises/01.basics/02.solution.running-the-app/app/utils/email.server.ts b/exercises/01.fundamentals/02.solution.running-the-app/app/utils/email.server.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/utils/email.server.ts rename to exercises/01.fundamentals/02.solution.running-the-app/app/utils/email.server.ts diff --git a/exercises/01.basics/02.solution.running-the-app/app/utils/env.server.ts b/exercises/01.fundamentals/02.solution.running-the-app/app/utils/env.server.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/utils/env.server.ts rename to exercises/01.fundamentals/02.solution.running-the-app/app/utils/env.server.ts diff --git a/exercises/01.basics/02.solution.running-the-app/app/utils/headers.server.test.ts b/exercises/01.fundamentals/02.solution.running-the-app/app/utils/headers.server.test.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/utils/headers.server.test.ts rename to exercises/01.fundamentals/02.solution.running-the-app/app/utils/headers.server.test.ts diff --git a/exercises/01.basics/02.solution.running-the-app/app/utils/headers.server.ts b/exercises/01.fundamentals/02.solution.running-the-app/app/utils/headers.server.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/utils/headers.server.ts rename to exercises/01.fundamentals/02.solution.running-the-app/app/utils/headers.server.ts diff --git a/exercises/01.basics/02.solution.running-the-app/app/utils/honeypot.server.ts b/exercises/01.fundamentals/02.solution.running-the-app/app/utils/honeypot.server.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/utils/honeypot.server.ts rename to exercises/01.fundamentals/02.solution.running-the-app/app/utils/honeypot.server.ts diff --git a/exercises/01.basics/02.solution.running-the-app/app/utils/litefs.server.ts b/exercises/01.fundamentals/02.solution.running-the-app/app/utils/litefs.server.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/utils/litefs.server.ts rename to exercises/01.fundamentals/02.solution.running-the-app/app/utils/litefs.server.ts diff --git a/exercises/01.basics/02.solution.running-the-app/app/utils/misc.error-message.test.ts b/exercises/01.fundamentals/02.solution.running-the-app/app/utils/misc.error-message.test.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/utils/misc.error-message.test.ts rename to exercises/01.fundamentals/02.solution.running-the-app/app/utils/misc.error-message.test.ts diff --git a/exercises/01.basics/02.solution.running-the-app/app/utils/misc.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/utils/misc.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/utils/misc.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/utils/misc.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/utils/misc.use-double-check.test.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/utils/misc.use-double-check.test.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/utils/misc.use-double-check.test.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/utils/misc.use-double-check.test.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/utils/monitoring.client.tsx b/exercises/01.fundamentals/02.solution.running-the-app/app/utils/monitoring.client.tsx similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/utils/monitoring.client.tsx rename to exercises/01.fundamentals/02.solution.running-the-app/app/utils/monitoring.client.tsx diff --git a/exercises/01.basics/02.solution.running-the-app/app/utils/nonce-provider.ts b/exercises/01.fundamentals/02.solution.running-the-app/app/utils/nonce-provider.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/utils/nonce-provider.ts rename to exercises/01.fundamentals/02.solution.running-the-app/app/utils/nonce-provider.ts diff --git a/exercises/01.basics/02.solution.running-the-app/app/utils/permissions.server.ts b/exercises/01.fundamentals/02.solution.running-the-app/app/utils/permissions.server.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/utils/permissions.server.ts rename to exercises/01.fundamentals/02.solution.running-the-app/app/utils/permissions.server.ts diff --git a/exercises/01.basics/02.solution.running-the-app/app/utils/providers/constants.ts b/exercises/01.fundamentals/02.solution.running-the-app/app/utils/providers/constants.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/utils/providers/constants.ts rename to exercises/01.fundamentals/02.solution.running-the-app/app/utils/providers/constants.ts diff --git a/exercises/01.basics/02.solution.running-the-app/app/utils/providers/github.server.ts b/exercises/01.fundamentals/02.solution.running-the-app/app/utils/providers/github.server.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/utils/providers/github.server.ts rename to exercises/01.fundamentals/02.solution.running-the-app/app/utils/providers/github.server.ts diff --git a/exercises/01.basics/02.solution.running-the-app/app/utils/providers/provider.ts b/exercises/01.fundamentals/02.solution.running-the-app/app/utils/providers/provider.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/utils/providers/provider.ts rename to exercises/01.fundamentals/02.solution.running-the-app/app/utils/providers/provider.ts diff --git a/exercises/01.basics/02.solution.running-the-app/app/utils/redirect-cookie.server.ts b/exercises/01.fundamentals/02.solution.running-the-app/app/utils/redirect-cookie.server.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/utils/redirect-cookie.server.ts rename to exercises/01.fundamentals/02.solution.running-the-app/app/utils/redirect-cookie.server.ts diff --git a/exercises/01.basics/02.solution.running-the-app/app/utils/request-info.ts b/exercises/01.fundamentals/02.solution.running-the-app/app/utils/request-info.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/utils/request-info.ts rename to exercises/01.fundamentals/02.solution.running-the-app/app/utils/request-info.ts diff --git a/exercises/01.basics/02.solution.running-the-app/app/utils/session.server.ts b/exercises/01.fundamentals/02.solution.running-the-app/app/utils/session.server.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/utils/session.server.ts rename to exercises/01.fundamentals/02.solution.running-the-app/app/utils/session.server.ts diff --git a/exercises/01.basics/02.solution.running-the-app/app/utils/storage.server.ts b/exercises/01.fundamentals/02.solution.running-the-app/app/utils/storage.server.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/utils/storage.server.ts rename to exercises/01.fundamentals/02.solution.running-the-app/app/utils/storage.server.ts diff --git a/exercises/01.basics/02.solution.running-the-app/app/utils/theme.server.ts b/exercises/01.fundamentals/02.solution.running-the-app/app/utils/theme.server.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/utils/theme.server.ts rename to exercises/01.fundamentals/02.solution.running-the-app/app/utils/theme.server.ts diff --git a/exercises/01.basics/02.solution.running-the-app/app/utils/timing.server.ts b/exercises/01.fundamentals/02.solution.running-the-app/app/utils/timing.server.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/utils/timing.server.ts rename to exercises/01.fundamentals/02.solution.running-the-app/app/utils/timing.server.ts diff --git a/exercises/01.basics/02.solution.running-the-app/app/utils/toast.server.ts b/exercises/01.fundamentals/02.solution.running-the-app/app/utils/toast.server.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/utils/toast.server.ts rename to exercises/01.fundamentals/02.solution.running-the-app/app/utils/toast.server.ts diff --git a/exercises/01.basics/02.solution.running-the-app/app/utils/totp.server.ts b/exercises/01.fundamentals/02.solution.running-the-app/app/utils/totp.server.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/utils/totp.server.ts rename to exercises/01.fundamentals/02.solution.running-the-app/app/utils/totp.server.ts diff --git a/exercises/01.basics/02.solution.running-the-app/app/utils/user-validation.ts b/exercises/01.fundamentals/02.solution.running-the-app/app/utils/user-validation.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/utils/user-validation.ts rename to exercises/01.fundamentals/02.solution.running-the-app/app/utils/user-validation.ts diff --git a/exercises/01.basics/02.solution.running-the-app/app/utils/user.ts b/exercises/01.fundamentals/02.solution.running-the-app/app/utils/user.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/utils/user.ts rename to exercises/01.fundamentals/02.solution.running-the-app/app/utils/user.ts diff --git a/exercises/01.basics/02.solution.running-the-app/app/utils/verification.server.ts b/exercises/01.fundamentals/02.solution.running-the-app/app/utils/verification.server.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/app/utils/verification.server.ts rename to exercises/01.fundamentals/02.solution.running-the-app/app/utils/verification.server.ts diff --git a/exercises/01.basics/02.solution.running-the-app/components.json b/exercises/01.fundamentals/02.solution.running-the-app/components.json similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/components.json rename to exercises/01.fundamentals/02.solution.running-the-app/components.json diff --git a/exercises/01.basics/02.solution.running-the-app/eslint.config.js b/exercises/01.fundamentals/02.solution.running-the-app/eslint.config.js similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/eslint.config.js rename to exercises/01.fundamentals/02.solution.running-the-app/eslint.config.js diff --git a/exercises/01.basics/02.solution.running-the-app/fly.toml b/exercises/01.fundamentals/02.solution.running-the-app/fly.toml similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/fly.toml rename to exercises/01.fundamentals/02.solution.running-the-app/fly.toml diff --git a/exercises/01.basics/02.solution.running-the-app/index.js b/exercises/01.fundamentals/02.solution.running-the-app/index.js similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/index.js rename to exercises/01.fundamentals/02.solution.running-the-app/index.js diff --git a/exercises/01.basics/02.solution.running-the-app/other/Dockerfile b/exercises/01.fundamentals/02.solution.running-the-app/other/Dockerfile similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/other/Dockerfile rename to exercises/01.fundamentals/02.solution.running-the-app/other/Dockerfile diff --git a/exercises/01.basics/02.solution.running-the-app/other/Dockerfile.dockerignore b/exercises/01.fundamentals/02.solution.running-the-app/other/Dockerfile.dockerignore similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/other/Dockerfile.dockerignore rename to exercises/01.fundamentals/02.solution.running-the-app/other/Dockerfile.dockerignore diff --git a/exercises/01.basics/02.solution.running-the-app/other/README.md b/exercises/01.fundamentals/02.solution.running-the-app/other/README.md similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/other/README.md rename to exercises/01.fundamentals/02.solution.running-the-app/other/README.md diff --git a/exercises/01.basics/02.solution.running-the-app/other/build-server.ts b/exercises/01.fundamentals/02.solution.running-the-app/other/build-server.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/other/build-server.ts rename to exercises/01.fundamentals/02.solution.running-the-app/other/build-server.ts diff --git a/exercises/01.basics/02.solution.running-the-app/other/litefs.yml b/exercises/01.fundamentals/02.solution.running-the-app/other/litefs.yml similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/other/litefs.yml rename to exercises/01.fundamentals/02.solution.running-the-app/other/litefs.yml diff --git a/exercises/01.basics/02.solution.running-the-app/other/sly/sly.json b/exercises/01.fundamentals/02.solution.running-the-app/other/sly/sly.json similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/other/sly/sly.json rename to exercises/01.fundamentals/02.solution.running-the-app/other/sly/sly.json diff --git a/exercises/01.basics/02.solution.running-the-app/other/sly/transform-icon.ts b/exercises/01.fundamentals/02.solution.running-the-app/other/sly/transform-icon.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/other/sly/transform-icon.ts rename to exercises/01.fundamentals/02.solution.running-the-app/other/sly/transform-icon.ts diff --git a/exercises/01.basics/02.solution.running-the-app/other/svg-icons/README.md b/exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/README.md similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/other/svg-icons/README.md rename to exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/README.md diff --git a/exercises/01.basics/02.solution.running-the-app/other/svg-icons/arrow-left.svg b/exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/arrow-left.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/other/svg-icons/arrow-left.svg rename to exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/arrow-left.svg diff --git a/exercises/01.basics/02.solution.running-the-app/other/svg-icons/arrow-right.svg b/exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/arrow-right.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/other/svg-icons/arrow-right.svg rename to exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/arrow-right.svg diff --git a/exercises/01.basics/02.solution.running-the-app/other/svg-icons/avatar.svg b/exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/avatar.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/other/svg-icons/avatar.svg rename to exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/avatar.svg diff --git a/exercises/01.basics/02.solution.running-the-app/other/svg-icons/camera.svg b/exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/camera.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/other/svg-icons/camera.svg rename to exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/camera.svg diff --git a/exercises/01.basics/02.solution.running-the-app/other/svg-icons/check.svg b/exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/check.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/other/svg-icons/check.svg rename to exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/check.svg diff --git a/exercises/01.basics/02.solution.running-the-app/other/svg-icons/clock.svg b/exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/clock.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/other/svg-icons/clock.svg rename to exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/clock.svg diff --git a/exercises/01.basics/02.solution.running-the-app/other/svg-icons/cross-1.svg b/exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/cross-1.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/other/svg-icons/cross-1.svg rename to exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/cross-1.svg diff --git a/exercises/01.basics/02.solution.running-the-app/other/svg-icons/dots-horizontal.svg b/exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/dots-horizontal.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/other/svg-icons/dots-horizontal.svg rename to exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/dots-horizontal.svg diff --git a/exercises/01.basics/02.solution.running-the-app/other/svg-icons/download.svg b/exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/download.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/other/svg-icons/download.svg rename to exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/download.svg diff --git a/exercises/01.basics/02.solution.running-the-app/other/svg-icons/envelope-closed.svg b/exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/envelope-closed.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/other/svg-icons/envelope-closed.svg rename to exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/envelope-closed.svg diff --git a/exercises/01.basics/02.solution.running-the-app/other/svg-icons/exit.svg b/exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/exit.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/other/svg-icons/exit.svg rename to exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/exit.svg diff --git a/exercises/01.basics/02.solution.running-the-app/other/svg-icons/file-text.svg b/exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/file-text.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/other/svg-icons/file-text.svg rename to exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/file-text.svg diff --git a/exercises/01.basics/02.solution.running-the-app/other/svg-icons/github-logo.svg b/exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/github-logo.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/other/svg-icons/github-logo.svg rename to exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/github-logo.svg diff --git a/exercises/01.basics/02.solution.running-the-app/other/svg-icons/laptop.svg b/exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/laptop.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/other/svg-icons/laptop.svg rename to exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/laptop.svg diff --git a/exercises/01.basics/02.solution.running-the-app/other/svg-icons/link-2.svg b/exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/link-2.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/other/svg-icons/link-2.svg rename to exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/link-2.svg diff --git a/exercises/01.basics/02.solution.running-the-app/other/svg-icons/lock-closed.svg b/exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/lock-closed.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/other/svg-icons/lock-closed.svg rename to exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/lock-closed.svg diff --git a/exercises/01.basics/02.solution.running-the-app/other/svg-icons/lock-open-1.svg b/exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/lock-open-1.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/other/svg-icons/lock-open-1.svg rename to exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/lock-open-1.svg diff --git a/exercises/01.basics/02.solution.running-the-app/other/svg-icons/magnifying-glass.svg b/exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/magnifying-glass.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/other/svg-icons/magnifying-glass.svg rename to exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/magnifying-glass.svg diff --git a/exercises/01.basics/02.solution.running-the-app/other/svg-icons/moon.svg b/exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/moon.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/other/svg-icons/moon.svg rename to exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/moon.svg diff --git a/exercises/01.basics/02.solution.running-the-app/other/svg-icons/passkey.svg b/exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/passkey.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/other/svg-icons/passkey.svg rename to exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/passkey.svg diff --git a/exercises/01.basics/02.solution.running-the-app/other/svg-icons/pencil-1.svg b/exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/pencil-1.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/other/svg-icons/pencil-1.svg rename to exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/pencil-1.svg diff --git a/exercises/01.basics/02.solution.running-the-app/other/svg-icons/pencil-2.svg b/exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/pencil-2.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/other/svg-icons/pencil-2.svg rename to exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/pencil-2.svg diff --git a/exercises/01.basics/02.solution.running-the-app/other/svg-icons/plus.svg b/exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/plus.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/other/svg-icons/plus.svg rename to exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/plus.svg diff --git a/exercises/01.basics/02.solution.running-the-app/other/svg-icons/question-mark-circled.svg b/exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/question-mark-circled.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/other/svg-icons/question-mark-circled.svg rename to exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/question-mark-circled.svg diff --git a/exercises/01.basics/02.solution.running-the-app/other/svg-icons/reset.svg b/exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/reset.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/other/svg-icons/reset.svg rename to exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/reset.svg diff --git a/exercises/01.basics/02.solution.running-the-app/other/svg-icons/sun.svg b/exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/sun.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/other/svg-icons/sun.svg rename to exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/sun.svg diff --git a/exercises/01.basics/02.solution.running-the-app/other/svg-icons/trash.svg b/exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/trash.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/other/svg-icons/trash.svg rename to exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/trash.svg diff --git a/exercises/01.basics/02.solution.running-the-app/other/svg-icons/update.svg b/exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/update.svg similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/other/svg-icons/update.svg rename to exercises/01.fundamentals/02.solution.running-the-app/other/svg-icons/update.svg diff --git a/exercises/01.basics/02.solution.running-the-app/package-lock.json b/exercises/01.fundamentals/02.solution.running-the-app/package-lock.json similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/package-lock.json rename to exercises/01.fundamentals/02.solution.running-the-app/package-lock.json diff --git a/exercises/01.basics/02.solution.running-the-app/package.json b/exercises/01.fundamentals/02.solution.running-the-app/package.json similarity index 98% rename from exercises/01.basics/02.solution.running-the-app/package.json rename to exercises/01.fundamentals/02.solution.running-the-app/package.json index 538da31..d8ff21e 100644 --- a/exercises/01.basics/02.solution.running-the-app/package.json +++ b/exercises/01.fundamentals/02.solution.running-the-app/package.json @@ -1,5 +1,5 @@ { - "name": "exercises_01.basics_02.solution.running-the-app", + "name": "exercises_01.fundamentals_02.solution.running-the-app", "private": true, "sideEffects": false, "type": "module", diff --git a/exercises/01.basics/02.solution.running-the-app/playwright.config.ts b/exercises/01.fundamentals/02.solution.running-the-app/playwright.config.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/playwright.config.ts rename to exercises/01.fundamentals/02.solution.running-the-app/playwright.config.ts diff --git a/exercises/01.basics/02.solution.running-the-app/prisma/migrations/20250221233640_init/migration.sql b/exercises/01.fundamentals/02.solution.running-the-app/prisma/migrations/20250221233640_init/migration.sql similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/prisma/migrations/20250221233640_init/migration.sql rename to exercises/01.fundamentals/02.solution.running-the-app/prisma/migrations/20250221233640_init/migration.sql diff --git a/exercises/01.basics/02.solution.running-the-app/prisma/migrations/migration_lock.toml b/exercises/01.fundamentals/02.solution.running-the-app/prisma/migrations/migration_lock.toml similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/prisma/migrations/migration_lock.toml rename to exercises/01.fundamentals/02.solution.running-the-app/prisma/migrations/migration_lock.toml diff --git a/exercises/01.basics/02.solution.running-the-app/prisma/schema.prisma b/exercises/01.fundamentals/02.solution.running-the-app/prisma/schema.prisma similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/prisma/schema.prisma rename to exercises/01.fundamentals/02.solution.running-the-app/prisma/schema.prisma diff --git a/exercises/01.basics/02.solution.running-the-app/prisma/seed.ts b/exercises/01.fundamentals/02.solution.running-the-app/prisma/seed.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/prisma/seed.ts rename to exercises/01.fundamentals/02.solution.running-the-app/prisma/seed.ts diff --git a/exercises/01.basics/02.solution.running-the-app/prisma/sql/searchUsers.sql b/exercises/01.fundamentals/02.solution.running-the-app/prisma/sql/searchUsers.sql similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/prisma/sql/searchUsers.sql rename to exercises/01.fundamentals/02.solution.running-the-app/prisma/sql/searchUsers.sql diff --git a/exercises/01.basics/02.solution.running-the-app/public/favicon.ico b/exercises/01.fundamentals/02.solution.running-the-app/public/favicon.ico similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/public/favicon.ico rename to exercises/01.fundamentals/02.solution.running-the-app/public/favicon.ico diff --git a/exercises/01.basics/02.solution.running-the-app/public/favicons/README.md b/exercises/01.fundamentals/02.solution.running-the-app/public/favicons/README.md similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/public/favicons/README.md rename to exercises/01.fundamentals/02.solution.running-the-app/public/favicons/README.md diff --git a/exercises/01.basics/02.solution.running-the-app/public/favicons/android-chrome-192x192.png b/exercises/01.fundamentals/02.solution.running-the-app/public/favicons/android-chrome-192x192.png similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/public/favicons/android-chrome-192x192.png rename to exercises/01.fundamentals/02.solution.running-the-app/public/favicons/android-chrome-192x192.png diff --git a/exercises/01.basics/02.solution.running-the-app/public/favicons/android-chrome-512x512.png b/exercises/01.fundamentals/02.solution.running-the-app/public/favicons/android-chrome-512x512.png similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/public/favicons/android-chrome-512x512.png rename to exercises/01.fundamentals/02.solution.running-the-app/public/favicons/android-chrome-512x512.png diff --git a/exercises/01.basics/02.solution.running-the-app/public/img/user.png b/exercises/01.fundamentals/02.solution.running-the-app/public/img/user.png similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/public/img/user.png rename to exercises/01.fundamentals/02.solution.running-the-app/public/img/user.png diff --git a/exercises/01.basics/02.solution.running-the-app/public/site.webmanifest b/exercises/01.fundamentals/02.solution.running-the-app/public/site.webmanifest similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/public/site.webmanifest rename to exercises/01.fundamentals/02.solution.running-the-app/public/site.webmanifest diff --git a/exercises/01.basics/02.solution.running-the-app/react-router.config.ts b/exercises/01.fundamentals/02.solution.running-the-app/react-router.config.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/react-router.config.ts rename to exercises/01.fundamentals/02.solution.running-the-app/react-router.config.ts diff --git a/exercises/01.basics/02.solution.running-the-app/server/dev-server.js b/exercises/01.fundamentals/02.solution.running-the-app/server/dev-server.js similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/server/dev-server.js rename to exercises/01.fundamentals/02.solution.running-the-app/server/dev-server.js diff --git a/exercises/01.basics/02.solution.running-the-app/server/index.ts b/exercises/01.fundamentals/02.solution.running-the-app/server/index.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/server/index.ts rename to exercises/01.fundamentals/02.solution.running-the-app/server/index.ts diff --git a/exercises/01.basics/02.solution.running-the-app/server/utils/monitoring.ts b/exercises/01.fundamentals/02.solution.running-the-app/server/utils/monitoring.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/server/utils/monitoring.ts rename to exercises/01.fundamentals/02.solution.running-the-app/server/utils/monitoring.ts diff --git a/exercises/01.basics/02.solution.running-the-app/tests/db-utils.ts b/exercises/01.fundamentals/02.solution.running-the-app/tests/db-utils.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/tests/db-utils.ts rename to exercises/01.fundamentals/02.solution.running-the-app/tests/db-utils.ts diff --git a/exercises/01.basics/02.solution.running-the-app/tests/e2e/homepage.test.ts b/exercises/01.fundamentals/02.solution.running-the-app/tests/e2e/homepage.test.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/tests/e2e/homepage.test.ts rename to exercises/01.fundamentals/02.solution.running-the-app/tests/e2e/homepage.test.ts diff --git a/exercises/01.basics/02.solution.running-the-app/tests/setup/custom-matchers.ts b/exercises/01.fundamentals/02.solution.running-the-app/tests/setup/custom-matchers.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/tests/setup/custom-matchers.ts rename to exercises/01.fundamentals/02.solution.running-the-app/tests/setup/custom-matchers.ts diff --git a/exercises/01.basics/02.solution.running-the-app/tests/setup/db-setup.ts b/exercises/01.fundamentals/02.solution.running-the-app/tests/setup/db-setup.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/tests/setup/db-setup.ts rename to exercises/01.fundamentals/02.solution.running-the-app/tests/setup/db-setup.ts diff --git a/exercises/01.basics/02.solution.running-the-app/tests/setup/global-setup.ts b/exercises/01.fundamentals/02.solution.running-the-app/tests/setup/global-setup.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/tests/setup/global-setup.ts rename to exercises/01.fundamentals/02.solution.running-the-app/tests/setup/global-setup.ts diff --git a/exercises/01.basics/02.solution.running-the-app/tests/setup/setup-test-env.ts b/exercises/01.fundamentals/02.solution.running-the-app/tests/setup/setup-test-env.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/tests/setup/setup-test-env.ts rename to exercises/01.fundamentals/02.solution.running-the-app/tests/setup/setup-test-env.ts diff --git a/exercises/01.basics/02.solution.running-the-app/tests/utils.ts b/exercises/01.fundamentals/02.solution.running-the-app/tests/utils.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/tests/utils.ts rename to exercises/01.fundamentals/02.solution.running-the-app/tests/utils.ts diff --git a/exercises/01.basics/02.solution.running-the-app/tsconfig.json b/exercises/01.fundamentals/02.solution.running-the-app/tsconfig.json similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/tsconfig.json rename to exercises/01.fundamentals/02.solution.running-the-app/tsconfig.json diff --git a/exercises/01.basics/02.solution.running-the-app/types/deps.d.ts b/exercises/01.fundamentals/02.solution.running-the-app/types/deps.d.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/types/deps.d.ts rename to exercises/01.fundamentals/02.solution.running-the-app/types/deps.d.ts diff --git a/exercises/01.basics/02.solution.running-the-app/types/env.env.d.ts b/exercises/01.fundamentals/02.solution.running-the-app/types/env.env.d.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/types/env.env.d.ts rename to exercises/01.fundamentals/02.solution.running-the-app/types/env.env.d.ts diff --git a/exercises/01.basics/02.solution.running-the-app/types/icon-name.d.ts b/exercises/01.fundamentals/02.solution.running-the-app/types/icon-name.d.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/types/icon-name.d.ts rename to exercises/01.fundamentals/02.solution.running-the-app/types/icon-name.d.ts diff --git a/exercises/01.basics/02.solution.running-the-app/types/reset.d.ts b/exercises/01.fundamentals/02.solution.running-the-app/types/reset.d.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/types/reset.d.ts rename to exercises/01.fundamentals/02.solution.running-the-app/types/reset.d.ts diff --git a/exercises/01.basics/02.solution.running-the-app/vite.config.ts b/exercises/01.fundamentals/02.solution.running-the-app/vite.config.ts similarity index 100% rename from exercises/01.basics/02.solution.running-the-app/vite.config.ts rename to exercises/01.fundamentals/02.solution.running-the-app/vite.config.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/.env b/exercises/01.fundamentals/03.problem.custom-fixtures/.env similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/.env rename to exercises/01.fundamentals/03.problem.custom-fixtures/.env diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/.env.example b/exercises/01.fundamentals/03.problem.custom-fixtures/.env.example similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/.env.example rename to exercises/01.fundamentals/03.problem.custom-fixtures/.env.example diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/.github/PULL_REQUEST_TEMPLATE.md b/exercises/01.fundamentals/03.problem.custom-fixtures/.github/PULL_REQUEST_TEMPLATE.md similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/.github/PULL_REQUEST_TEMPLATE.md rename to exercises/01.fundamentals/03.problem.custom-fixtures/.github/PULL_REQUEST_TEMPLATE.md diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/.github/workflows/deploy.yml b/exercises/01.fundamentals/03.problem.custom-fixtures/.github/workflows/deploy.yml similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/.github/workflows/deploy.yml rename to exercises/01.fundamentals/03.problem.custom-fixtures/.github/workflows/deploy.yml diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/.gitignore b/exercises/01.fundamentals/03.problem.custom-fixtures/.gitignore similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/.gitignore rename to exercises/01.fundamentals/03.problem.custom-fixtures/.gitignore diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/.npmrc b/exercises/01.fundamentals/03.problem.custom-fixtures/.npmrc similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/.npmrc rename to exercises/01.fundamentals/03.problem.custom-fixtures/.npmrc diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/.prettierignore b/exercises/01.fundamentals/03.problem.custom-fixtures/.prettierignore similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/.prettierignore rename to exercises/01.fundamentals/03.problem.custom-fixtures/.prettierignore diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/.vscode/extensions.json b/exercises/01.fundamentals/03.problem.custom-fixtures/.vscode/extensions.json similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/.vscode/extensions.json rename to exercises/01.fundamentals/03.problem.custom-fixtures/.vscode/extensions.json diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/.vscode/remix.code-snippets b/exercises/01.fundamentals/03.problem.custom-fixtures/.vscode/remix.code-snippets similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/.vscode/remix.code-snippets rename to exercises/01.fundamentals/03.problem.custom-fixtures/.vscode/remix.code-snippets diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/.vscode/settings.json b/exercises/01.fundamentals/03.problem.custom-fixtures/.vscode/settings.json similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/.vscode/settings.json rename to exercises/01.fundamentals/03.problem.custom-fixtures/.vscode/settings.json diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/README.mdx b/exercises/01.fundamentals/03.problem.custom-fixtures/README.mdx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/README.mdx rename to exercises/01.fundamentals/03.problem.custom-fixtures/README.mdx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/assets/favicons/apple-touch-icon.png b/exercises/01.fundamentals/03.problem.custom-fixtures/app/assets/favicons/apple-touch-icon.png similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/assets/favicons/apple-touch-icon.png rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/assets/favicons/apple-touch-icon.png diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/assets/favicons/favicon.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/app/assets/favicons/favicon.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/assets/favicons/favicon.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/assets/favicons/favicon.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/components/error-boundary.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/components/error-boundary.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/components/error-boundary.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/components/error-boundary.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/components/floating-toolbar.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/components/floating-toolbar.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/components/floating-toolbar.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/components/floating-toolbar.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/components/forms.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/components/forms.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/components/forms.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/components/forms.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/components/progress-bar.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/components/progress-bar.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/components/progress-bar.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/components/progress-bar.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/components/search-bar.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/components/search-bar.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/components/search-bar.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/components/search-bar.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/components/spacer.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/components/spacer.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/components/spacer.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/components/spacer.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/components/toaster.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/components/toaster.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/components/toaster.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/components/toaster.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/components/ui/README.md b/exercises/01.fundamentals/03.problem.custom-fixtures/app/components/ui/README.md similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/components/ui/README.md rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/components/ui/README.md diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/components/ui/button.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/components/ui/button.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/components/ui/button.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/components/ui/button.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/components/ui/checkbox.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/components/ui/checkbox.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/components/ui/checkbox.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/components/ui/checkbox.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/components/ui/dropdown-menu.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/components/ui/dropdown-menu.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/components/ui/dropdown-menu.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/components/ui/dropdown-menu.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/components/ui/icon.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/components/ui/icon.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/components/ui/icon.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/components/ui/icon.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/components/ui/input-otp.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/components/ui/input-otp.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/components/ui/input-otp.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/components/ui/input-otp.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/components/ui/input.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/components/ui/input.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/components/ui/input.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/components/ui/input.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/components/ui/label.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/components/ui/label.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/components/ui/label.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/components/ui/label.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/components/ui/sonner.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/components/ui/sonner.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/components/ui/sonner.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/components/ui/sonner.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/components/ui/status-button.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/components/ui/status-button.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/components/ui/status-button.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/components/ui/status-button.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/components/ui/textarea.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/components/ui/textarea.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/components/ui/textarea.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/components/ui/textarea.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/components/ui/tooltip.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/components/ui/tooltip.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/components/ui/tooltip.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/components/ui/tooltip.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/components/user-dropdown.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/components/user-dropdown.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/components/user-dropdown.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/components/user-dropdown.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/entry.client.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/entry.client.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/entry.client.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/entry.client.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/entry.server.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/entry.server.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/entry.server.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/entry.server.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/root.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/root.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/root.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/root.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/$.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/$.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/$.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/$.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_auth+/auth.$provider.callback.test.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_auth+/auth.$provider.callback.test.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_auth+/auth.$provider.callback.test.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_auth+/auth.$provider.callback.test.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_auth+/auth.$provider.callback.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_auth+/auth.$provider.callback.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_auth+/auth.$provider.callback.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_auth+/auth.$provider.callback.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_auth+/auth_.$provider.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_auth+/auth_.$provider.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_auth+/auth_.$provider.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_auth+/auth_.$provider.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_auth+/forgot-password.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_auth+/forgot-password.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_auth+/forgot-password.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_auth+/forgot-password.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_auth+/login.server.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_auth+/login.server.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_auth+/login.server.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_auth+/login.server.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_auth+/login.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_auth+/login.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_auth+/login.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_auth+/login.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_auth+/logout.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_auth+/logout.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_auth+/logout.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_auth+/logout.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_auth+/onboarding.server.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_auth+/onboarding.server.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_auth+/onboarding.server.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_auth+/onboarding.server.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_auth+/onboarding.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_auth+/onboarding.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_auth+/onboarding.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_auth+/onboarding.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_auth+/onboarding_.$provider.server.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_auth+/onboarding_.$provider.server.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_auth+/onboarding_.$provider.server.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_auth+/onboarding_.$provider.server.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_auth+/onboarding_.$provider.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_auth+/onboarding_.$provider.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_auth+/onboarding_.$provider.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_auth+/onboarding_.$provider.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_auth+/reset-password.server.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_auth+/reset-password.server.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_auth+/reset-password.server.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_auth+/reset-password.server.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_auth+/reset-password.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_auth+/reset-password.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_auth+/reset-password.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_auth+/reset-password.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_auth+/signup.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_auth+/signup.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_auth+/signup.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_auth+/signup.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_auth+/verify.server.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_auth+/verify.server.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_auth+/verify.server.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_auth+/verify.server.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_auth+/verify.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_auth+/verify.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_auth+/verify.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_auth+/verify.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_auth+/webauthn+/authentication.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_auth+/webauthn+/authentication.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_auth+/webauthn+/authentication.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_auth+/webauthn+/authentication.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_auth+/webauthn+/registration.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_auth+/webauthn+/registration.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_auth+/webauthn+/registration.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_auth+/webauthn+/registration.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_auth+/webauthn+/utils.server.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_auth+/webauthn+/utils.server.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_auth+/webauthn+/utils.server.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_auth+/webauthn+/utils.server.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/about.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/about.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/about.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/about.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/index.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/index.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/index.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/index.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/logos/docker.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/logos/docker.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/logos/docker.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/logos/docker.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/logos/eslint.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/logos/eslint.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/logos/eslint.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/logos/eslint.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/logos/faker.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/logos/faker.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/logos/faker.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/logos/faker.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/logos/fly.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/logos/fly.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/logos/fly.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/logos/fly.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/logos/github.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/logos/github.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/logos/github.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/logos/github.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/logos/logos.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/logos/logos.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/logos/logos.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/logos/logos.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/logos/msw.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/logos/msw.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/logos/msw.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/logos/msw.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/logos/playwright.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/logos/playwright.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/logos/playwright.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/logos/playwright.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/logos/prettier.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/logos/prettier.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/logos/prettier.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/logos/prettier.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/logos/prisma.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/logos/prisma.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/logos/prisma.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/logos/prisma.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/logos/radix.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/logos/radix.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/logos/radix.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/logos/radix.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/logos/react-email.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/logos/react-email.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/logos/react-email.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/logos/react-email.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/logos/remix.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/logos/remix.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/logos/remix.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/logos/remix.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/logos/resend.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/logos/resend.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/logos/resend.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/logos/resend.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/logos/sentry.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/logos/sentry.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/logos/sentry.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/logos/sentry.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/logos/shadcn-ui.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/logos/shadcn-ui.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/logos/shadcn-ui.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/logos/shadcn-ui.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/logos/sqlite.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/logos/sqlite.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/logos/sqlite.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/logos/sqlite.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/logos/stars.jpg b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/logos/stars.jpg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/logos/stars.jpg rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/logos/stars.jpg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/logos/tailwind.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/logos/tailwind.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/logos/tailwind.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/logos/tailwind.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/logos/testing-library.png b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/logos/testing-library.png similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/logos/testing-library.png rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/logos/testing-library.png diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/logos/typescript.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/logos/typescript.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/logos/typescript.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/logos/typescript.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/logos/vitest.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/logos/vitest.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/logos/vitest.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/logos/vitest.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/logos/zod.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/logos/zod.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/logos/zod.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/logos/zod.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/privacy.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/privacy.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/privacy.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/privacy.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/support.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/support.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/support.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/support.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/tos.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/tos.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_marketing+/tos.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_marketing+/tos.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_seo+/robots[.]txt.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_seo+/robots[.]txt.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_seo+/robots[.]txt.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_seo+/robots[.]txt.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_seo+/sitemap[.]xml.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_seo+/sitemap[.]xml.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/_seo+/sitemap[.]xml.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/_seo+/sitemap[.]xml.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/admin+/cache.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/admin+/cache.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/admin+/cache.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/admin+/cache.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/admin+/cache_.lru.$cacheKey.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/admin+/cache_.lru.$cacheKey.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/admin+/cache_.lru.$cacheKey.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/admin+/cache_.lru.$cacheKey.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/admin+/cache_.sqlite.$cacheKey.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/admin+/cache_.sqlite.$cacheKey.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/admin+/cache_.sqlite.$cacheKey.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/admin+/cache_.sqlite.$cacheKey.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/admin+/cache_.sqlite.server.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/admin+/cache_.sqlite.server.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/admin+/cache_.sqlite.server.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/admin+/cache_.sqlite.server.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/admin+/cache_.sqlite.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/admin+/cache_.sqlite.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/admin+/cache_.sqlite.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/admin+/cache_.sqlite.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/me.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/me.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/me.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/me.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/resources+/download-user-data.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/resources+/download-user-data.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/resources+/download-user-data.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/resources+/download-user-data.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/resources+/healthcheck.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/resources+/healthcheck.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/resources+/healthcheck.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/resources+/healthcheck.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/resources+/images.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/resources+/images.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/resources+/images.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/resources+/images.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/resources+/theme-switch.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/resources+/theme-switch.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/resources+/theme-switch.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/resources+/theme-switch.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/settings+/profile.change-email.server.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/settings+/profile.change-email.server.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/settings+/profile.change-email.server.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/settings+/profile.change-email.server.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/settings+/profile.change-email.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/settings+/profile.change-email.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/settings+/profile.change-email.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/settings+/profile.change-email.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/settings+/profile.connections.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/settings+/profile.connections.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/settings+/profile.connections.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/settings+/profile.connections.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/settings+/profile.index.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/settings+/profile.index.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/settings+/profile.index.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/settings+/profile.index.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/settings+/profile.passkeys.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/settings+/profile.passkeys.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/settings+/profile.passkeys.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/settings+/profile.passkeys.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/settings+/profile.password.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/settings+/profile.password.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/settings+/profile.password.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/settings+/profile.password.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/settings+/profile.password_.create.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/settings+/profile.password_.create.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/settings+/profile.password_.create.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/settings+/profile.password_.create.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/settings+/profile.photo.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/settings+/profile.photo.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/settings+/profile.photo.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/settings+/profile.photo.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/settings+/profile.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/settings+/profile.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/settings+/profile.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/settings+/profile.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/settings+/profile.two-factor.disable.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/settings+/profile.two-factor.disable.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/settings+/profile.two-factor.disable.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/settings+/profile.two-factor.disable.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/settings+/profile.two-factor.index.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/settings+/profile.two-factor.index.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/settings+/profile.two-factor.index.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/settings+/profile.two-factor.index.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/settings+/profile.two-factor.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/settings+/profile.two-factor.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/settings+/profile.two-factor.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/settings+/profile.two-factor.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/settings+/profile.two-factor.verify.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/settings+/profile.two-factor.verify.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/settings+/profile.two-factor.verify.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/settings+/profile.two-factor.verify.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/users+/$username.test.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/users+/$username.test.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/users+/$username.test.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/users+/$username.test.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/users+/$username.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/users+/$username.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/users+/$username.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/users+/$username.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/users+/$username_+/__note-editor.server.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/users+/$username_+/__note-editor.server.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/users+/$username_+/__note-editor.server.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/users+/$username_+/__note-editor.server.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/users+/$username_+/__note-editor.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/users+/$username_+/__note-editor.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/users+/$username_+/__note-editor.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/users+/$username_+/__note-editor.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/users+/$username_+/notes.$noteId.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/users+/$username_+/notes.$noteId.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/users+/$username_+/notes.$noteId.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/users+/$username_+/notes.$noteId.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/users+/$username_+/notes.$noteId_.edit.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/users+/$username_+/notes.$noteId_.edit.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/users+/$username_+/notes.$noteId_.edit.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/users+/$username_+/notes.$noteId_.edit.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/users+/$username_+/notes.index.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/users+/$username_+/notes.index.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/users+/$username_+/notes.index.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/users+/$username_+/notes.index.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/users+/$username_+/notes.new.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/users+/$username_+/notes.new.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/users+/$username_+/notes.new.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/users+/$username_+/notes.new.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/users+/$username_+/notes.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/users+/$username_+/notes.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/users+/$username_+/notes.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/users+/$username_+/notes.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/routes/users+/index.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/users+/index.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/routes/users+/index.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/routes/users+/index.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/styles/tailwind.css b/exercises/01.fundamentals/03.problem.custom-fixtures/app/styles/tailwind.css similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/styles/tailwind.css rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/styles/tailwind.css diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/utils/auth.server.test.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/auth.server.test.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/utils/auth.server.test.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/auth.server.test.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/utils/auth.server.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/auth.server.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/utils/auth.server.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/auth.server.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/utils/cache.server.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/cache.server.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/utils/cache.server.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/cache.server.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/utils/client-hints.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/client-hints.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/utils/client-hints.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/client-hints.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/utils/connections.server.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/connections.server.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/utils/connections.server.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/connections.server.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/utils/connections.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/connections.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/utils/connections.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/connections.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/utils/db.server.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/db.server.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/utils/db.server.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/db.server.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/utils/email.server.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/email.server.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/utils/email.server.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/email.server.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/utils/env.server.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/env.server.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/utils/env.server.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/env.server.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/utils/headers.server.test.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/headers.server.test.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/utils/headers.server.test.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/headers.server.test.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/utils/headers.server.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/headers.server.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/utils/headers.server.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/headers.server.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/utils/honeypot.server.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/honeypot.server.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/utils/honeypot.server.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/honeypot.server.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/utils/litefs.server.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/litefs.server.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/utils/litefs.server.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/litefs.server.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/utils/misc.error-message.test.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/misc.error-message.test.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/utils/misc.error-message.test.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/misc.error-message.test.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/utils/misc.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/misc.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/utils/misc.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/misc.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/utils/misc.use-double-check.test.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/misc.use-double-check.test.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/utils/misc.use-double-check.test.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/misc.use-double-check.test.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/utils/monitoring.client.tsx b/exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/monitoring.client.tsx similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/utils/monitoring.client.tsx rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/monitoring.client.tsx diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/utils/nonce-provider.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/nonce-provider.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/utils/nonce-provider.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/nonce-provider.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/utils/permissions.server.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/permissions.server.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/utils/permissions.server.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/permissions.server.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/utils/providers/constants.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/providers/constants.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/utils/providers/constants.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/providers/constants.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/utils/providers/github.server.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/providers/github.server.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/utils/providers/github.server.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/providers/github.server.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/utils/providers/provider.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/providers/provider.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/utils/providers/provider.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/providers/provider.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/utils/redirect-cookie.server.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/redirect-cookie.server.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/utils/redirect-cookie.server.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/redirect-cookie.server.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/utils/request-info.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/request-info.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/utils/request-info.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/request-info.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/utils/session.server.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/session.server.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/utils/session.server.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/session.server.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/utils/storage.server.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/storage.server.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/utils/storage.server.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/storage.server.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/utils/theme.server.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/theme.server.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/utils/theme.server.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/theme.server.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/utils/timing.server.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/timing.server.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/utils/timing.server.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/timing.server.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/utils/toast.server.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/toast.server.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/utils/toast.server.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/toast.server.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/utils/totp.server.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/totp.server.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/utils/totp.server.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/totp.server.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/utils/user-validation.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/user-validation.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/utils/user-validation.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/user-validation.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/utils/user.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/user.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/utils/user.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/user.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/app/utils/verification.server.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/verification.server.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/app/utils/verification.server.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/app/utils/verification.server.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/components.json b/exercises/01.fundamentals/03.problem.custom-fixtures/components.json similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/components.json rename to exercises/01.fundamentals/03.problem.custom-fixtures/components.json diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/eslint.config.js b/exercises/01.fundamentals/03.problem.custom-fixtures/eslint.config.js similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/eslint.config.js rename to exercises/01.fundamentals/03.problem.custom-fixtures/eslint.config.js diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/fly.toml b/exercises/01.fundamentals/03.problem.custom-fixtures/fly.toml similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/fly.toml rename to exercises/01.fundamentals/03.problem.custom-fixtures/fly.toml diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/index.js b/exercises/01.fundamentals/03.problem.custom-fixtures/index.js similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/index.js rename to exercises/01.fundamentals/03.problem.custom-fixtures/index.js diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/other/Dockerfile b/exercises/01.fundamentals/03.problem.custom-fixtures/other/Dockerfile similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/other/Dockerfile rename to exercises/01.fundamentals/03.problem.custom-fixtures/other/Dockerfile diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/other/Dockerfile.dockerignore b/exercises/01.fundamentals/03.problem.custom-fixtures/other/Dockerfile.dockerignore similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/other/Dockerfile.dockerignore rename to exercises/01.fundamentals/03.problem.custom-fixtures/other/Dockerfile.dockerignore diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/other/README.md b/exercises/01.fundamentals/03.problem.custom-fixtures/other/README.md similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/other/README.md rename to exercises/01.fundamentals/03.problem.custom-fixtures/other/README.md diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/other/build-server.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/other/build-server.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/other/build-server.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/other/build-server.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/other/litefs.yml b/exercises/01.fundamentals/03.problem.custom-fixtures/other/litefs.yml similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/other/litefs.yml rename to exercises/01.fundamentals/03.problem.custom-fixtures/other/litefs.yml diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/other/sly/sly.json b/exercises/01.fundamentals/03.problem.custom-fixtures/other/sly/sly.json similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/other/sly/sly.json rename to exercises/01.fundamentals/03.problem.custom-fixtures/other/sly/sly.json diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/other/sly/transform-icon.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/other/sly/transform-icon.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/other/sly/transform-icon.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/other/sly/transform-icon.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/README.md b/exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/README.md similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/README.md rename to exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/README.md diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/arrow-left.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/arrow-left.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/arrow-left.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/arrow-left.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/arrow-right.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/arrow-right.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/arrow-right.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/arrow-right.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/avatar.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/avatar.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/avatar.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/avatar.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/camera.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/camera.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/camera.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/camera.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/check.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/check.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/check.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/check.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/clock.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/clock.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/clock.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/clock.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/cross-1.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/cross-1.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/cross-1.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/cross-1.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/dots-horizontal.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/dots-horizontal.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/dots-horizontal.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/dots-horizontal.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/download.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/download.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/download.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/download.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/envelope-closed.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/envelope-closed.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/envelope-closed.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/envelope-closed.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/exit.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/exit.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/exit.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/exit.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/file-text.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/file-text.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/file-text.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/file-text.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/github-logo.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/github-logo.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/github-logo.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/github-logo.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/laptop.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/laptop.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/laptop.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/laptop.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/link-2.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/link-2.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/link-2.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/link-2.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/lock-closed.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/lock-closed.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/lock-closed.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/lock-closed.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/lock-open-1.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/lock-open-1.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/lock-open-1.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/lock-open-1.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/magnifying-glass.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/magnifying-glass.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/magnifying-glass.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/magnifying-glass.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/moon.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/moon.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/moon.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/moon.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/passkey.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/passkey.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/passkey.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/passkey.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/pencil-1.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/pencil-1.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/pencil-1.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/pencil-1.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/pencil-2.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/pencil-2.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/pencil-2.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/pencil-2.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/plus.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/plus.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/plus.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/plus.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/question-mark-circled.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/question-mark-circled.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/question-mark-circled.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/question-mark-circled.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/reset.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/reset.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/reset.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/reset.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/sun.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/sun.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/sun.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/sun.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/trash.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/trash.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/trash.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/trash.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/update.svg b/exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/update.svg similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/other/svg-icons/update.svg rename to exercises/01.fundamentals/03.problem.custom-fixtures/other/svg-icons/update.svg diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/package-lock.json b/exercises/01.fundamentals/03.problem.custom-fixtures/package-lock.json similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/package-lock.json rename to exercises/01.fundamentals/03.problem.custom-fixtures/package-lock.json diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/package.json b/exercises/01.fundamentals/03.problem.custom-fixtures/package.json similarity index 98% rename from exercises/02.test-setup/01.problem.custom-fixtures/package.json rename to exercises/01.fundamentals/03.problem.custom-fixtures/package.json index a150022..6b7f083 100644 --- a/exercises/02.test-setup/01.problem.custom-fixtures/package.json +++ b/exercises/01.fundamentals/03.problem.custom-fixtures/package.json @@ -1,5 +1,5 @@ { - "name": "exercises_02.test-setup_01.problem.custom-fixtures", + "name": "exercises_01.fundamentals_03.problem.custom-fixtures", "private": true, "sideEffects": false, "type": "module", diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/playwright.config.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/playwright.config.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/playwright.config.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/playwright.config.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/prisma/migrations/20250221233640_init/migration.sql b/exercises/01.fundamentals/03.problem.custom-fixtures/prisma/migrations/20250221233640_init/migration.sql similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/prisma/migrations/20250221233640_init/migration.sql rename to exercises/01.fundamentals/03.problem.custom-fixtures/prisma/migrations/20250221233640_init/migration.sql diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/prisma/migrations/migration_lock.toml b/exercises/01.fundamentals/03.problem.custom-fixtures/prisma/migrations/migration_lock.toml similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/prisma/migrations/migration_lock.toml rename to exercises/01.fundamentals/03.problem.custom-fixtures/prisma/migrations/migration_lock.toml diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/prisma/schema.prisma b/exercises/01.fundamentals/03.problem.custom-fixtures/prisma/schema.prisma similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/prisma/schema.prisma rename to exercises/01.fundamentals/03.problem.custom-fixtures/prisma/schema.prisma diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/prisma/seed.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/prisma/seed.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/prisma/seed.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/prisma/seed.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/prisma/sql/searchUsers.sql b/exercises/01.fundamentals/03.problem.custom-fixtures/prisma/sql/searchUsers.sql similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/prisma/sql/searchUsers.sql rename to exercises/01.fundamentals/03.problem.custom-fixtures/prisma/sql/searchUsers.sql diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/public/favicon.ico b/exercises/01.fundamentals/03.problem.custom-fixtures/public/favicon.ico similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/public/favicon.ico rename to exercises/01.fundamentals/03.problem.custom-fixtures/public/favicon.ico diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/public/favicons/README.md b/exercises/01.fundamentals/03.problem.custom-fixtures/public/favicons/README.md similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/public/favicons/README.md rename to exercises/01.fundamentals/03.problem.custom-fixtures/public/favicons/README.md diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/public/favicons/android-chrome-192x192.png b/exercises/01.fundamentals/03.problem.custom-fixtures/public/favicons/android-chrome-192x192.png similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/public/favicons/android-chrome-192x192.png rename to exercises/01.fundamentals/03.problem.custom-fixtures/public/favicons/android-chrome-192x192.png diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/public/favicons/android-chrome-512x512.png b/exercises/01.fundamentals/03.problem.custom-fixtures/public/favicons/android-chrome-512x512.png similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/public/favicons/android-chrome-512x512.png rename to exercises/01.fundamentals/03.problem.custom-fixtures/public/favicons/android-chrome-512x512.png diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/public/img/user.png b/exercises/01.fundamentals/03.problem.custom-fixtures/public/img/user.png similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/public/img/user.png rename to exercises/01.fundamentals/03.problem.custom-fixtures/public/img/user.png diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/public/site.webmanifest b/exercises/01.fundamentals/03.problem.custom-fixtures/public/site.webmanifest similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/public/site.webmanifest rename to exercises/01.fundamentals/03.problem.custom-fixtures/public/site.webmanifest diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/react-router.config.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/react-router.config.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/react-router.config.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/react-router.config.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/server/dev-server.js b/exercises/01.fundamentals/03.problem.custom-fixtures/server/dev-server.js similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/server/dev-server.js rename to exercises/01.fundamentals/03.problem.custom-fixtures/server/dev-server.js diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/server/index.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/server/index.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/server/index.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/server/index.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/server/utils/monitoring.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/server/utils/monitoring.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/server/utils/monitoring.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/server/utils/monitoring.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/tests/db-utils.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/tests/db-utils.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/tests/db-utils.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/tests/db-utils.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/tests/e2e/homepage.test.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/tests/e2e/homepage.test.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/tests/e2e/homepage.test.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/tests/e2e/homepage.test.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/tests/setup/custom-matchers.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/tests/setup/custom-matchers.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/tests/setup/custom-matchers.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/tests/setup/custom-matchers.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/tests/setup/db-setup.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/tests/setup/db-setup.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/tests/setup/db-setup.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/tests/setup/db-setup.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/tests/setup/global-setup.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/tests/setup/global-setup.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/tests/setup/global-setup.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/tests/setup/global-setup.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/tests/setup/setup-test-env.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/tests/setup/setup-test-env.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/tests/setup/setup-test-env.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/tests/setup/setup-test-env.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/tests/test-extend.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/tests/test-extend.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/tests/test-extend.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/tests/test-extend.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/tests/utils.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/tests/utils.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/tests/utils.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/tests/utils.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/tsconfig.json b/exercises/01.fundamentals/03.problem.custom-fixtures/tsconfig.json similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/tsconfig.json rename to exercises/01.fundamentals/03.problem.custom-fixtures/tsconfig.json diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/types/deps.d.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/types/deps.d.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/types/deps.d.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/types/deps.d.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/types/env.env.d.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/types/env.env.d.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/types/env.env.d.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/types/env.env.d.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/types/icon-name.d.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/types/icon-name.d.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/types/icon-name.d.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/types/icon-name.d.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/types/reset.d.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/types/reset.d.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/types/reset.d.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/types/reset.d.ts diff --git a/exercises/02.test-setup/01.problem.custom-fixtures/vite.config.ts b/exercises/01.fundamentals/03.problem.custom-fixtures/vite.config.ts similarity index 100% rename from exercises/02.test-setup/01.problem.custom-fixtures/vite.config.ts rename to exercises/01.fundamentals/03.problem.custom-fixtures/vite.config.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/.env b/exercises/01.fundamentals/03.solution.custom-fixtures/.env similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/.env rename to exercises/01.fundamentals/03.solution.custom-fixtures/.env diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/.env.example b/exercises/01.fundamentals/03.solution.custom-fixtures/.env.example similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/.env.example rename to exercises/01.fundamentals/03.solution.custom-fixtures/.env.example diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/.github/PULL_REQUEST_TEMPLATE.md b/exercises/01.fundamentals/03.solution.custom-fixtures/.github/PULL_REQUEST_TEMPLATE.md similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/.github/PULL_REQUEST_TEMPLATE.md rename to exercises/01.fundamentals/03.solution.custom-fixtures/.github/PULL_REQUEST_TEMPLATE.md diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/.github/workflows/deploy.yml b/exercises/01.fundamentals/03.solution.custom-fixtures/.github/workflows/deploy.yml similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/.github/workflows/deploy.yml rename to exercises/01.fundamentals/03.solution.custom-fixtures/.github/workflows/deploy.yml diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/.gitignore b/exercises/01.fundamentals/03.solution.custom-fixtures/.gitignore similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/.gitignore rename to exercises/01.fundamentals/03.solution.custom-fixtures/.gitignore diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/.npmrc b/exercises/01.fundamentals/03.solution.custom-fixtures/.npmrc similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/.npmrc rename to exercises/01.fundamentals/03.solution.custom-fixtures/.npmrc diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/.prettierignore b/exercises/01.fundamentals/03.solution.custom-fixtures/.prettierignore similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/.prettierignore rename to exercises/01.fundamentals/03.solution.custom-fixtures/.prettierignore diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/.vscode/extensions.json b/exercises/01.fundamentals/03.solution.custom-fixtures/.vscode/extensions.json similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/.vscode/extensions.json rename to exercises/01.fundamentals/03.solution.custom-fixtures/.vscode/extensions.json diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/.vscode/remix.code-snippets b/exercises/01.fundamentals/03.solution.custom-fixtures/.vscode/remix.code-snippets similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/.vscode/remix.code-snippets rename to exercises/01.fundamentals/03.solution.custom-fixtures/.vscode/remix.code-snippets diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/.vscode/settings.json b/exercises/01.fundamentals/03.solution.custom-fixtures/.vscode/settings.json similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/.vscode/settings.json rename to exercises/01.fundamentals/03.solution.custom-fixtures/.vscode/settings.json diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/README.mdx b/exercises/01.fundamentals/03.solution.custom-fixtures/README.mdx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/README.mdx rename to exercises/01.fundamentals/03.solution.custom-fixtures/README.mdx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/assets/favicons/apple-touch-icon.png b/exercises/01.fundamentals/03.solution.custom-fixtures/app/assets/favicons/apple-touch-icon.png similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/assets/favicons/apple-touch-icon.png rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/assets/favicons/apple-touch-icon.png diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/assets/favicons/favicon.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/app/assets/favicons/favicon.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/assets/favicons/favicon.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/assets/favicons/favicon.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/components/error-boundary.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/components/error-boundary.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/components/error-boundary.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/components/error-boundary.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/components/floating-toolbar.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/components/floating-toolbar.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/components/floating-toolbar.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/components/floating-toolbar.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/components/forms.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/components/forms.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/components/forms.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/components/forms.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/components/progress-bar.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/components/progress-bar.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/components/progress-bar.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/components/progress-bar.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/components/search-bar.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/components/search-bar.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/components/search-bar.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/components/search-bar.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/components/spacer.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/components/spacer.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/components/spacer.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/components/spacer.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/components/toaster.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/components/toaster.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/components/toaster.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/components/toaster.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/components/ui/README.md b/exercises/01.fundamentals/03.solution.custom-fixtures/app/components/ui/README.md similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/components/ui/README.md rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/components/ui/README.md diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/components/ui/button.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/components/ui/button.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/components/ui/button.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/components/ui/button.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/components/ui/checkbox.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/components/ui/checkbox.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/components/ui/checkbox.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/components/ui/checkbox.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/components/ui/dropdown-menu.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/components/ui/dropdown-menu.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/components/ui/dropdown-menu.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/components/ui/dropdown-menu.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/components/ui/icon.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/components/ui/icon.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/components/ui/icon.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/components/ui/icon.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/components/ui/input-otp.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/components/ui/input-otp.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/components/ui/input-otp.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/components/ui/input-otp.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/components/ui/input.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/components/ui/input.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/components/ui/input.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/components/ui/input.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/components/ui/label.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/components/ui/label.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/components/ui/label.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/components/ui/label.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/components/ui/sonner.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/components/ui/sonner.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/components/ui/sonner.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/components/ui/sonner.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/components/ui/status-button.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/components/ui/status-button.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/components/ui/status-button.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/components/ui/status-button.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/components/ui/textarea.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/components/ui/textarea.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/components/ui/textarea.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/components/ui/textarea.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/components/ui/tooltip.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/components/ui/tooltip.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/components/ui/tooltip.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/components/ui/tooltip.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/components/user-dropdown.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/components/user-dropdown.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/components/user-dropdown.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/components/user-dropdown.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/entry.client.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/entry.client.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/entry.client.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/entry.client.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/entry.server.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/entry.server.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/entry.server.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/entry.server.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/root.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/root.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/root.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/root.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/$.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/$.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/$.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/$.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_auth+/auth.$provider.callback.test.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_auth+/auth.$provider.callback.test.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_auth+/auth.$provider.callback.test.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_auth+/auth.$provider.callback.test.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_auth+/auth.$provider.callback.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_auth+/auth.$provider.callback.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_auth+/auth.$provider.callback.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_auth+/auth.$provider.callback.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_auth+/auth_.$provider.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_auth+/auth_.$provider.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_auth+/auth_.$provider.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_auth+/auth_.$provider.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_auth+/forgot-password.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_auth+/forgot-password.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_auth+/forgot-password.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_auth+/forgot-password.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_auth+/login.server.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_auth+/login.server.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_auth+/login.server.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_auth+/login.server.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_auth+/login.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_auth+/login.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_auth+/login.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_auth+/login.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_auth+/logout.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_auth+/logout.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_auth+/logout.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_auth+/logout.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_auth+/onboarding.server.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_auth+/onboarding.server.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_auth+/onboarding.server.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_auth+/onboarding.server.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_auth+/onboarding.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_auth+/onboarding.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_auth+/onboarding.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_auth+/onboarding.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_auth+/onboarding_.$provider.server.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_auth+/onboarding_.$provider.server.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_auth+/onboarding_.$provider.server.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_auth+/onboarding_.$provider.server.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_auth+/onboarding_.$provider.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_auth+/onboarding_.$provider.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_auth+/onboarding_.$provider.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_auth+/onboarding_.$provider.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_auth+/reset-password.server.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_auth+/reset-password.server.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_auth+/reset-password.server.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_auth+/reset-password.server.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_auth+/reset-password.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_auth+/reset-password.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_auth+/reset-password.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_auth+/reset-password.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_auth+/signup.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_auth+/signup.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_auth+/signup.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_auth+/signup.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_auth+/verify.server.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_auth+/verify.server.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_auth+/verify.server.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_auth+/verify.server.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_auth+/verify.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_auth+/verify.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_auth+/verify.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_auth+/verify.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_auth+/webauthn+/authentication.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_auth+/webauthn+/authentication.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_auth+/webauthn+/authentication.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_auth+/webauthn+/authentication.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_auth+/webauthn+/registration.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_auth+/webauthn+/registration.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_auth+/webauthn+/registration.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_auth+/webauthn+/registration.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_auth+/webauthn+/utils.server.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_auth+/webauthn+/utils.server.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_auth+/webauthn+/utils.server.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_auth+/webauthn+/utils.server.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/about.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/about.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/about.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/about.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/index.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/index.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/index.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/index.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/logos/docker.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/logos/docker.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/logos/docker.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/logos/docker.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/logos/eslint.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/logos/eslint.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/logos/eslint.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/logos/eslint.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/logos/faker.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/logos/faker.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/logos/faker.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/logos/faker.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/logos/fly.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/logos/fly.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/logos/fly.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/logos/fly.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/logos/github.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/logos/github.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/logos/github.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/logos/github.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/logos/logos.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/logos/logos.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/logos/logos.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/logos/logos.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/logos/msw.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/logos/msw.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/logos/msw.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/logos/msw.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/logos/playwright.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/logos/playwright.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/logos/playwright.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/logos/playwright.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/logos/prettier.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/logos/prettier.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/logos/prettier.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/logos/prettier.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/logos/prisma.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/logos/prisma.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/logos/prisma.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/logos/prisma.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/logos/radix.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/logos/radix.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/logos/radix.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/logos/radix.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/logos/react-email.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/logos/react-email.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/logos/react-email.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/logos/react-email.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/logos/remix.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/logos/remix.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/logos/remix.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/logos/remix.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/logos/resend.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/logos/resend.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/logos/resend.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/logos/resend.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/logos/sentry.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/logos/sentry.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/logos/sentry.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/logos/sentry.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/logos/shadcn-ui.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/logos/shadcn-ui.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/logos/shadcn-ui.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/logos/shadcn-ui.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/logos/sqlite.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/logos/sqlite.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/logos/sqlite.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/logos/sqlite.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/logos/stars.jpg b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/logos/stars.jpg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/logos/stars.jpg rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/logos/stars.jpg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/logos/tailwind.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/logos/tailwind.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/logos/tailwind.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/logos/tailwind.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/logos/testing-library.png b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/logos/testing-library.png similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/logos/testing-library.png rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/logos/testing-library.png diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/logos/typescript.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/logos/typescript.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/logos/typescript.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/logos/typescript.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/logos/vitest.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/logos/vitest.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/logos/vitest.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/logos/vitest.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/logos/zod.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/logos/zod.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/logos/zod.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/logos/zod.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/privacy.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/privacy.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/privacy.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/privacy.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/support.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/support.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/support.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/support.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/tos.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/tos.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_marketing+/tos.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_marketing+/tos.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_seo+/robots[.]txt.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_seo+/robots[.]txt.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_seo+/robots[.]txt.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_seo+/robots[.]txt.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_seo+/sitemap[.]xml.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_seo+/sitemap[.]xml.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/_seo+/sitemap[.]xml.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/_seo+/sitemap[.]xml.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/admin+/cache.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/admin+/cache.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/admin+/cache.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/admin+/cache.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/admin+/cache_.lru.$cacheKey.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/admin+/cache_.lru.$cacheKey.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/admin+/cache_.lru.$cacheKey.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/admin+/cache_.lru.$cacheKey.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/admin+/cache_.sqlite.$cacheKey.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/admin+/cache_.sqlite.$cacheKey.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/admin+/cache_.sqlite.$cacheKey.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/admin+/cache_.sqlite.$cacheKey.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/admin+/cache_.sqlite.server.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/admin+/cache_.sqlite.server.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/admin+/cache_.sqlite.server.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/admin+/cache_.sqlite.server.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/admin+/cache_.sqlite.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/admin+/cache_.sqlite.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/admin+/cache_.sqlite.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/admin+/cache_.sqlite.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/me.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/me.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/me.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/me.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/resources+/download-user-data.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/resources+/download-user-data.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/resources+/download-user-data.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/resources+/download-user-data.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/resources+/healthcheck.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/resources+/healthcheck.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/resources+/healthcheck.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/resources+/healthcheck.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/resources+/images.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/resources+/images.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/resources+/images.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/resources+/images.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/resources+/theme-switch.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/resources+/theme-switch.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/resources+/theme-switch.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/resources+/theme-switch.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/settings+/profile.change-email.server.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/settings+/profile.change-email.server.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/settings+/profile.change-email.server.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/settings+/profile.change-email.server.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/settings+/profile.change-email.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/settings+/profile.change-email.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/settings+/profile.change-email.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/settings+/profile.change-email.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/settings+/profile.connections.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/settings+/profile.connections.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/settings+/profile.connections.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/settings+/profile.connections.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/settings+/profile.index.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/settings+/profile.index.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/settings+/profile.index.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/settings+/profile.index.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/settings+/profile.passkeys.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/settings+/profile.passkeys.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/settings+/profile.passkeys.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/settings+/profile.passkeys.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/settings+/profile.password.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/settings+/profile.password.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/settings+/profile.password.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/settings+/profile.password.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/settings+/profile.password_.create.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/settings+/profile.password_.create.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/settings+/profile.password_.create.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/settings+/profile.password_.create.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/settings+/profile.photo.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/settings+/profile.photo.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/settings+/profile.photo.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/settings+/profile.photo.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/settings+/profile.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/settings+/profile.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/settings+/profile.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/settings+/profile.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/settings+/profile.two-factor.disable.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/settings+/profile.two-factor.disable.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/settings+/profile.two-factor.disable.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/settings+/profile.two-factor.disable.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/settings+/profile.two-factor.index.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/settings+/profile.two-factor.index.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/settings+/profile.two-factor.index.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/settings+/profile.two-factor.index.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/settings+/profile.two-factor.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/settings+/profile.two-factor.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/settings+/profile.two-factor.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/settings+/profile.two-factor.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/settings+/profile.two-factor.verify.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/settings+/profile.two-factor.verify.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/settings+/profile.two-factor.verify.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/settings+/profile.two-factor.verify.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/users+/$username.test.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/users+/$username.test.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/users+/$username.test.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/users+/$username.test.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/users+/$username.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/users+/$username.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/users+/$username.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/users+/$username.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/users+/$username_+/__note-editor.server.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/users+/$username_+/__note-editor.server.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/users+/$username_+/__note-editor.server.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/users+/$username_+/__note-editor.server.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/users+/$username_+/__note-editor.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/users+/$username_+/__note-editor.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/users+/$username_+/__note-editor.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/users+/$username_+/__note-editor.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/users+/$username_+/notes.$noteId.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/users+/$username_+/notes.$noteId.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/users+/$username_+/notes.$noteId.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/users+/$username_+/notes.$noteId.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/users+/$username_+/notes.$noteId_.edit.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/users+/$username_+/notes.$noteId_.edit.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/users+/$username_+/notes.$noteId_.edit.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/users+/$username_+/notes.$noteId_.edit.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/users+/$username_+/notes.index.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/users+/$username_+/notes.index.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/users+/$username_+/notes.index.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/users+/$username_+/notes.index.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/users+/$username_+/notes.new.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/users+/$username_+/notes.new.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/users+/$username_+/notes.new.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/users+/$username_+/notes.new.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/users+/$username_+/notes.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/users+/$username_+/notes.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/users+/$username_+/notes.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/users+/$username_+/notes.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/routes/users+/index.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/users+/index.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/routes/users+/index.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/routes/users+/index.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/styles/tailwind.css b/exercises/01.fundamentals/03.solution.custom-fixtures/app/styles/tailwind.css similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/styles/tailwind.css rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/styles/tailwind.css diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/utils/auth.server.test.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/auth.server.test.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/utils/auth.server.test.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/auth.server.test.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/utils/auth.server.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/auth.server.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/utils/auth.server.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/auth.server.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/utils/cache.server.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/cache.server.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/utils/cache.server.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/cache.server.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/utils/client-hints.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/client-hints.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/utils/client-hints.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/client-hints.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/utils/connections.server.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/connections.server.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/utils/connections.server.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/connections.server.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/utils/connections.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/connections.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/utils/connections.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/connections.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/utils/db.server.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/db.server.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/utils/db.server.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/db.server.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/utils/email.server.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/email.server.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/utils/email.server.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/email.server.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/utils/env.server.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/env.server.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/utils/env.server.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/env.server.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/utils/headers.server.test.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/headers.server.test.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/utils/headers.server.test.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/headers.server.test.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/utils/headers.server.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/headers.server.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/utils/headers.server.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/headers.server.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/utils/honeypot.server.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/honeypot.server.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/utils/honeypot.server.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/honeypot.server.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/utils/litefs.server.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/litefs.server.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/utils/litefs.server.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/litefs.server.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/utils/misc.error-message.test.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/misc.error-message.test.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/utils/misc.error-message.test.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/misc.error-message.test.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/utils/misc.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/misc.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/utils/misc.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/misc.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/utils/misc.use-double-check.test.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/misc.use-double-check.test.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/utils/misc.use-double-check.test.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/misc.use-double-check.test.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/utils/monitoring.client.tsx b/exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/monitoring.client.tsx similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/utils/monitoring.client.tsx rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/monitoring.client.tsx diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/utils/nonce-provider.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/nonce-provider.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/utils/nonce-provider.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/nonce-provider.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/utils/permissions.server.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/permissions.server.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/utils/permissions.server.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/permissions.server.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/utils/providers/constants.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/providers/constants.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/utils/providers/constants.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/providers/constants.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/utils/providers/github.server.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/providers/github.server.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/utils/providers/github.server.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/providers/github.server.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/utils/providers/provider.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/providers/provider.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/utils/providers/provider.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/providers/provider.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/utils/redirect-cookie.server.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/redirect-cookie.server.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/utils/redirect-cookie.server.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/redirect-cookie.server.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/utils/request-info.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/request-info.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/utils/request-info.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/request-info.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/utils/session.server.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/session.server.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/utils/session.server.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/session.server.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/utils/storage.server.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/storage.server.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/utils/storage.server.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/storage.server.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/utils/theme.server.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/theme.server.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/utils/theme.server.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/theme.server.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/utils/timing.server.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/timing.server.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/utils/timing.server.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/timing.server.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/utils/toast.server.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/toast.server.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/utils/toast.server.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/toast.server.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/utils/totp.server.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/totp.server.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/utils/totp.server.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/totp.server.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/utils/user-validation.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/user-validation.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/utils/user-validation.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/user-validation.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/utils/user.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/user.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/utils/user.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/user.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/app/utils/verification.server.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/verification.server.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/app/utils/verification.server.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/app/utils/verification.server.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/components.json b/exercises/01.fundamentals/03.solution.custom-fixtures/components.json similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/components.json rename to exercises/01.fundamentals/03.solution.custom-fixtures/components.json diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/eslint.config.js b/exercises/01.fundamentals/03.solution.custom-fixtures/eslint.config.js similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/eslint.config.js rename to exercises/01.fundamentals/03.solution.custom-fixtures/eslint.config.js diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/fly.toml b/exercises/01.fundamentals/03.solution.custom-fixtures/fly.toml similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/fly.toml rename to exercises/01.fundamentals/03.solution.custom-fixtures/fly.toml diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/index.js b/exercises/01.fundamentals/03.solution.custom-fixtures/index.js similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/index.js rename to exercises/01.fundamentals/03.solution.custom-fixtures/index.js diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/other/Dockerfile b/exercises/01.fundamentals/03.solution.custom-fixtures/other/Dockerfile similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/other/Dockerfile rename to exercises/01.fundamentals/03.solution.custom-fixtures/other/Dockerfile diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/other/Dockerfile.dockerignore b/exercises/01.fundamentals/03.solution.custom-fixtures/other/Dockerfile.dockerignore similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/other/Dockerfile.dockerignore rename to exercises/01.fundamentals/03.solution.custom-fixtures/other/Dockerfile.dockerignore diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/other/README.md b/exercises/01.fundamentals/03.solution.custom-fixtures/other/README.md similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/other/README.md rename to exercises/01.fundamentals/03.solution.custom-fixtures/other/README.md diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/other/build-server.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/other/build-server.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/other/build-server.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/other/build-server.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/other/litefs.yml b/exercises/01.fundamentals/03.solution.custom-fixtures/other/litefs.yml similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/other/litefs.yml rename to exercises/01.fundamentals/03.solution.custom-fixtures/other/litefs.yml diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/other/sly/sly.json b/exercises/01.fundamentals/03.solution.custom-fixtures/other/sly/sly.json similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/other/sly/sly.json rename to exercises/01.fundamentals/03.solution.custom-fixtures/other/sly/sly.json diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/other/sly/transform-icon.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/other/sly/transform-icon.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/other/sly/transform-icon.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/other/sly/transform-icon.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/README.md b/exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/README.md similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/README.md rename to exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/README.md diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/arrow-left.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/arrow-left.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/arrow-left.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/arrow-left.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/arrow-right.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/arrow-right.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/arrow-right.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/arrow-right.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/avatar.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/avatar.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/avatar.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/avatar.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/camera.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/camera.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/camera.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/camera.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/check.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/check.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/check.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/check.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/clock.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/clock.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/clock.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/clock.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/cross-1.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/cross-1.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/cross-1.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/cross-1.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/dots-horizontal.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/dots-horizontal.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/dots-horizontal.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/dots-horizontal.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/download.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/download.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/download.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/download.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/envelope-closed.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/envelope-closed.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/envelope-closed.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/envelope-closed.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/exit.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/exit.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/exit.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/exit.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/file-text.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/file-text.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/file-text.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/file-text.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/github-logo.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/github-logo.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/github-logo.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/github-logo.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/laptop.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/laptop.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/laptop.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/laptop.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/link-2.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/link-2.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/link-2.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/link-2.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/lock-closed.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/lock-closed.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/lock-closed.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/lock-closed.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/lock-open-1.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/lock-open-1.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/lock-open-1.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/lock-open-1.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/magnifying-glass.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/magnifying-glass.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/magnifying-glass.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/magnifying-glass.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/moon.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/moon.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/moon.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/moon.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/passkey.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/passkey.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/passkey.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/passkey.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/pencil-1.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/pencil-1.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/pencil-1.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/pencil-1.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/pencil-2.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/pencil-2.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/pencil-2.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/pencil-2.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/plus.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/plus.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/plus.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/plus.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/question-mark-circled.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/question-mark-circled.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/question-mark-circled.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/question-mark-circled.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/reset.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/reset.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/reset.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/reset.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/sun.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/sun.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/sun.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/sun.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/trash.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/trash.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/trash.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/trash.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/update.svg b/exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/update.svg similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/other/svg-icons/update.svg rename to exercises/01.fundamentals/03.solution.custom-fixtures/other/svg-icons/update.svg diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/package-lock.json b/exercises/01.fundamentals/03.solution.custom-fixtures/package-lock.json similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/package-lock.json rename to exercises/01.fundamentals/03.solution.custom-fixtures/package-lock.json diff --git a/exercises/03.guides/01.problem.recording-interactions/package.json b/exercises/01.fundamentals/03.solution.custom-fixtures/package.json similarity index 98% rename from exercises/03.guides/01.problem.recording-interactions/package.json rename to exercises/01.fundamentals/03.solution.custom-fixtures/package.json index b5931c3..d86cd6b 100644 --- a/exercises/03.guides/01.problem.recording-interactions/package.json +++ b/exercises/01.fundamentals/03.solution.custom-fixtures/package.json @@ -1,5 +1,5 @@ { - "name": "exercises_03.guides_01.problem.recording-interactions", + "name": "exercises_01.fundamentals_03.solution.custom-fixtures", "private": true, "sideEffects": false, "type": "module", diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/playwright.config.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/playwright.config.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/playwright.config.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/playwright.config.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/prisma/migrations/20250221233640_init/migration.sql b/exercises/01.fundamentals/03.solution.custom-fixtures/prisma/migrations/20250221233640_init/migration.sql similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/prisma/migrations/20250221233640_init/migration.sql rename to exercises/01.fundamentals/03.solution.custom-fixtures/prisma/migrations/20250221233640_init/migration.sql diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/prisma/migrations/migration_lock.toml b/exercises/01.fundamentals/03.solution.custom-fixtures/prisma/migrations/migration_lock.toml similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/prisma/migrations/migration_lock.toml rename to exercises/01.fundamentals/03.solution.custom-fixtures/prisma/migrations/migration_lock.toml diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/prisma/schema.prisma b/exercises/01.fundamentals/03.solution.custom-fixtures/prisma/schema.prisma similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/prisma/schema.prisma rename to exercises/01.fundamentals/03.solution.custom-fixtures/prisma/schema.prisma diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/prisma/seed.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/prisma/seed.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/prisma/seed.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/prisma/seed.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/prisma/sql/searchUsers.sql b/exercises/01.fundamentals/03.solution.custom-fixtures/prisma/sql/searchUsers.sql similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/prisma/sql/searchUsers.sql rename to exercises/01.fundamentals/03.solution.custom-fixtures/prisma/sql/searchUsers.sql diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/public/favicon.ico b/exercises/01.fundamentals/03.solution.custom-fixtures/public/favicon.ico similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/public/favicon.ico rename to exercises/01.fundamentals/03.solution.custom-fixtures/public/favicon.ico diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/public/favicons/README.md b/exercises/01.fundamentals/03.solution.custom-fixtures/public/favicons/README.md similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/public/favicons/README.md rename to exercises/01.fundamentals/03.solution.custom-fixtures/public/favicons/README.md diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/public/favicons/android-chrome-192x192.png b/exercises/01.fundamentals/03.solution.custom-fixtures/public/favicons/android-chrome-192x192.png similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/public/favicons/android-chrome-192x192.png rename to exercises/01.fundamentals/03.solution.custom-fixtures/public/favicons/android-chrome-192x192.png diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/public/favicons/android-chrome-512x512.png b/exercises/01.fundamentals/03.solution.custom-fixtures/public/favicons/android-chrome-512x512.png similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/public/favicons/android-chrome-512x512.png rename to exercises/01.fundamentals/03.solution.custom-fixtures/public/favicons/android-chrome-512x512.png diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/public/img/user.png b/exercises/01.fundamentals/03.solution.custom-fixtures/public/img/user.png similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/public/img/user.png rename to exercises/01.fundamentals/03.solution.custom-fixtures/public/img/user.png diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/public/site.webmanifest b/exercises/01.fundamentals/03.solution.custom-fixtures/public/site.webmanifest similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/public/site.webmanifest rename to exercises/01.fundamentals/03.solution.custom-fixtures/public/site.webmanifest diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/react-router.config.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/react-router.config.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/react-router.config.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/react-router.config.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/server/dev-server.js b/exercises/01.fundamentals/03.solution.custom-fixtures/server/dev-server.js similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/server/dev-server.js rename to exercises/01.fundamentals/03.solution.custom-fixtures/server/dev-server.js diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/server/index.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/server/index.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/server/index.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/server/index.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/server/utils/monitoring.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/server/utils/monitoring.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/server/utils/monitoring.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/server/utils/monitoring.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/tests/db-utils.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/tests/db-utils.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/tests/db-utils.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/tests/db-utils.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/tests/e2e/homepage.test.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/tests/e2e/homepage.test.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/tests/e2e/homepage.test.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/tests/e2e/homepage.test.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/tests/setup/custom-matchers.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/tests/setup/custom-matchers.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/tests/setup/custom-matchers.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/tests/setup/custom-matchers.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/tests/setup/db-setup.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/tests/setup/db-setup.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/tests/setup/db-setup.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/tests/setup/db-setup.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/tests/setup/global-setup.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/tests/setup/global-setup.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/tests/setup/global-setup.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/tests/setup/global-setup.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/tests/setup/setup-test-env.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/tests/setup/setup-test-env.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/tests/setup/setup-test-env.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/tests/setup/setup-test-env.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/tests/test-extend.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/tests/test-extend.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/tests/test-extend.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/tests/test-extend.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/tests/utils.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/tests/utils.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/tests/utils.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/tests/utils.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/tsconfig.json b/exercises/01.fundamentals/03.solution.custom-fixtures/tsconfig.json similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/tsconfig.json rename to exercises/01.fundamentals/03.solution.custom-fixtures/tsconfig.json diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/types/deps.d.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/types/deps.d.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/types/deps.d.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/types/deps.d.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/types/env.env.d.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/types/env.env.d.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/types/env.env.d.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/types/env.env.d.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/types/icon-name.d.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/types/icon-name.d.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/types/icon-name.d.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/types/icon-name.d.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/types/reset.d.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/types/reset.d.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/types/reset.d.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/types/reset.d.ts diff --git a/exercises/02.test-setup/01.solution.custom-fixtures/vite.config.ts b/exercises/01.fundamentals/03.solution.custom-fixtures/vite.config.ts similarity index 100% rename from exercises/02.test-setup/01.solution.custom-fixtures/vite.config.ts rename to exercises/01.fundamentals/03.solution.custom-fixtures/vite.config.ts diff --git a/exercises/01.basics/FINISHED.mdx b/exercises/01.fundamentals/FINISHED.mdx similarity index 95% rename from exercises/01.basics/FINISHED.mdx rename to exercises/01.fundamentals/FINISHED.mdx index c4d43d3..21bfc61 100644 --- a/exercises/01.basics/FINISHED.mdx +++ b/exercises/01.fundamentals/FINISHED.mdx @@ -1,4 +1,4 @@ -# Basics +# Fundamentals Congratulations, you've completed this exercise block! 🥳 Let's have a short rest and continue. diff --git a/exercises/01.fundamentals/README.mdx b/exercises/01.fundamentals/README.mdx new file mode 100644 index 0000000..2573e06 --- /dev/null +++ b/exercises/01.fundamentals/README.mdx @@ -0,0 +1 @@ +# Fundamentals diff --git a/exercises/02.test-setup/03.problem.authentication/.env b/exercises/02.authentication/01.solution.basic/.env similarity index 100% rename from exercises/02.test-setup/03.problem.authentication/.env rename to exercises/02.authentication/01.solution.basic/.env diff --git a/exercises/02.test-setup/03.problem.authentication/.env.example b/exercises/02.authentication/01.solution.basic/.env.example similarity index 100% rename from exercises/02.test-setup/03.problem.authentication/.env.example rename to exercises/02.authentication/01.solution.basic/.env.example diff --git a/exercises/02.test-setup/03.problem.authentication/.gitignore b/exercises/02.authentication/01.solution.basic/.gitignore similarity index 100% rename from exercises/02.test-setup/03.problem.authentication/.gitignore rename to exercises/02.authentication/01.solution.basic/.gitignore diff --git a/exercises/02.test-setup/03.problem.authentication/.npmrc b/exercises/02.authentication/01.solution.basic/.npmrc similarity index 100% rename from exercises/02.test-setup/03.problem.authentication/.npmrc rename to exercises/02.authentication/01.solution.basic/.npmrc diff --git a/exercises/02.test-setup/03.problem.authentication/.prettierignore b/exercises/02.authentication/01.solution.basic/.prettierignore similarity index 100% rename from exercises/02.test-setup/03.problem.authentication/.prettierignore rename to exercises/02.authentication/01.solution.basic/.prettierignore diff --git a/exercises/02.test-setup/03.problem.authentication/.vscode/extensions.json b/exercises/02.authentication/01.solution.basic/.vscode/extensions.json similarity index 100% rename from exercises/02.test-setup/03.problem.authentication/.vscode/extensions.json rename to exercises/02.authentication/01.solution.basic/.vscode/extensions.json diff --git a/exercises/02.test-setup/03.problem.authentication/.vscode/remix.code-snippets b/exercises/02.authentication/01.solution.basic/.vscode/remix.code-snippets similarity index 100% rename from exercises/02.test-setup/03.problem.authentication/.vscode/remix.code-snippets rename to exercises/02.authentication/01.solution.basic/.vscode/remix.code-snippets diff --git a/exercises/02.test-setup/03.problem.authentication/.vscode/settings.json b/exercises/02.authentication/01.solution.basic/.vscode/settings.json similarity index 100% rename from exercises/02.test-setup/03.problem.authentication/.vscode/settings.json rename to exercises/02.authentication/01.solution.basic/.vscode/settings.json diff --git a/exercises/02.authentication/01.solution.basic/README.mdx b/exercises/02.authentication/01.solution.basic/README.mdx new file mode 100644 index 0000000..4113413 --- /dev/null +++ b/exercises/02.authentication/01.solution.basic/README.mdx @@ -0,0 +1,3 @@ +# Basic + +- Testing a basic (email+password) authentication. diff --git a/exercises/02.test-setup/03.problem.authentication/app/assets/favicons/apple-touch-icon.png b/exercises/02.authentication/01.solution.basic/app/assets/favicons/apple-touch-icon.png similarity index 100% rename from exercises/02.test-setup/03.problem.authentication/app/assets/favicons/apple-touch-icon.png rename to exercises/02.authentication/01.solution.basic/app/assets/favicons/apple-touch-icon.png diff --git a/exercises/02.test-setup/03.problem.authentication/app/assets/favicons/favicon.svg b/exercises/02.authentication/01.solution.basic/app/assets/favicons/favicon.svg similarity index 100% rename from exercises/02.test-setup/03.problem.authentication/app/assets/favicons/favicon.svg rename to exercises/02.authentication/01.solution.basic/app/assets/favicons/favicon.svg diff --git a/exercises/02.test-setup/03.problem.authentication/app/components/error-boundary.tsx b/exercises/02.authentication/01.solution.basic/app/components/error-boundary.tsx similarity index 100% rename from exercises/02.test-setup/03.problem.authentication/app/components/error-boundary.tsx rename to exercises/02.authentication/01.solution.basic/app/components/error-boundary.tsx diff --git a/exercises/02.test-setup/03.problem.authentication/app/components/floating-toolbar.tsx b/exercises/02.authentication/01.solution.basic/app/components/floating-toolbar.tsx similarity index 100% rename from exercises/02.test-setup/03.problem.authentication/app/components/floating-toolbar.tsx rename to exercises/02.authentication/01.solution.basic/app/components/floating-toolbar.tsx diff --git a/exercises/04.debugging/03.problem.live-debugging/app/components/forms.tsx b/exercises/02.authentication/01.solution.basic/app/components/forms.tsx similarity index 98% rename from exercises/04.debugging/03.problem.live-debugging/app/components/forms.tsx rename to exercises/02.authentication/01.solution.basic/app/components/forms.tsx index abaabf7..8d3c72a 100644 --- a/exercises/04.debugging/03.problem.live-debugging/app/components/forms.tsx +++ b/exercises/02.authentication/01.solution.basic/app/components/forms.tsx @@ -24,7 +24,7 @@ export function ErrorList({ const errorsToRender = errors?.filter(Boolean) if (!errorsToRender?.length) return null return ( -