diff --git a/client/.gitignore b/client/cms/.gitignore similarity index 100% rename from client/.gitignore rename to client/cms/.gitignore diff --git a/client/components.json b/client/cms/components.json similarity index 100% rename from client/components.json rename to client/cms/components.json diff --git a/client/eslint.config.js b/client/cms/eslint.config.js similarity index 100% rename from client/eslint.config.js rename to client/cms/eslint.config.js diff --git a/client/index.html b/client/cms/index.html similarity index 100% rename from client/index.html rename to client/cms/index.html diff --git a/client/package.json b/client/cms/package.json similarity index 100% rename from client/package.json rename to client/cms/package.json diff --git a/client/pnpm-lock.yaml b/client/cms/pnpm-lock.yaml similarity index 100% rename from client/pnpm-lock.yaml rename to client/cms/pnpm-lock.yaml diff --git a/client/src/App.tsx b/client/cms/src/App.tsx similarity index 100% rename from client/src/App.tsx rename to client/cms/src/App.tsx diff --git a/client/src/assets/nixos.svg b/client/cms/src/assets/nixos.svg similarity index 100% rename from client/src/assets/nixos.svg rename to client/cms/src/assets/nixos.svg diff --git a/client/src/components/checkin/qr-dialog.tsx b/client/cms/src/components/checkin/qr-dialog.tsx similarity index 100% rename from client/src/components/checkin/qr-dialog.tsx rename to client/cms/src/components/checkin/qr-dialog.tsx diff --git a/client/src/components/hoc/with-fallback.tsx b/client/cms/src/components/hoc/with-fallback.tsx similarity index 100% rename from client/src/components/hoc/with-fallback.tsx rename to client/cms/src/components/hoc/with-fallback.tsx diff --git a/client/src/components/login-form.tsx b/client/cms/src/components/login-form.tsx similarity index 100% rename from client/src/components/login-form.tsx rename to client/cms/src/components/login-form.tsx diff --git a/client/src/components/profile/edit-profile-dialog.tsx b/client/cms/src/components/profile/edit-profile-dialog.tsx similarity index 100% rename from client/src/components/profile/edit-profile-dialog.tsx rename to client/cms/src/components/profile/edit-profile-dialog.tsx diff --git a/client/src/components/profile/edit-profile-form.tsx b/client/cms/src/components/profile/edit-profile-form.tsx similarity index 100% rename from client/src/components/profile/edit-profile-form.tsx rename to client/cms/src/components/profile/edit-profile-form.tsx diff --git a/client/src/components/profile/main-profile.tsx b/client/cms/src/components/profile/main-profile.tsx similarity index 100% rename from client/src/components/profile/main-profile.tsx rename to client/cms/src/components/profile/main-profile.tsx diff --git a/client/src/components/sidebar/app-sidebar.tsx b/client/cms/src/components/sidebar/app-sidebar.tsx similarity index 100% rename from client/src/components/sidebar/app-sidebar.tsx rename to client/cms/src/components/sidebar/app-sidebar.tsx diff --git a/client/src/components/sidebar/nav-main.tsx b/client/cms/src/components/sidebar/nav-main.tsx similarity index 100% rename from client/src/components/sidebar/nav-main.tsx rename to client/cms/src/components/sidebar/nav-main.tsx diff --git a/client/src/components/sidebar/nav-secondary.tsx b/client/cms/src/components/sidebar/nav-secondary.tsx similarity index 100% rename from client/src/components/sidebar/nav-secondary.tsx rename to client/cms/src/components/sidebar/nav-secondary.tsx diff --git a/client/src/components/sidebar/nav-user.tsx b/client/cms/src/components/sidebar/nav-user.tsx similarity index 100% rename from client/src/components/sidebar/nav-user.tsx rename to client/cms/src/components/sidebar/nav-user.tsx diff --git a/client/src/components/site-header.tsx b/client/cms/src/components/site-header.tsx similarity index 100% rename from client/src/components/site-header.tsx rename to client/cms/src/components/site-header.tsx diff --git a/client/src/components/theme-provider.tsx b/client/cms/src/components/theme-provider.tsx similarity index 100% rename from client/src/components/theme-provider.tsx rename to client/cms/src/components/theme-provider.tsx diff --git a/client/src/components/ui/avatar.tsx b/client/cms/src/components/ui/avatar.tsx similarity index 100% rename from client/src/components/ui/avatar.tsx rename to client/cms/src/components/ui/avatar.tsx diff --git a/client/src/components/ui/badge.tsx b/client/cms/src/components/ui/badge.tsx similarity index 100% rename from client/src/components/ui/badge.tsx rename to client/cms/src/components/ui/badge.tsx diff --git a/client/src/components/ui/breadcrumb.tsx b/client/cms/src/components/ui/breadcrumb.tsx similarity index 100% rename from client/src/components/ui/breadcrumb.tsx rename to client/cms/src/components/ui/breadcrumb.tsx diff --git a/client/src/components/ui/button.tsx b/client/cms/src/components/ui/button.tsx similarity index 100% rename from client/src/components/ui/button.tsx rename to client/cms/src/components/ui/button.tsx diff --git a/client/src/components/ui/card.tsx b/client/cms/src/components/ui/card.tsx similarity index 100% rename from client/src/components/ui/card.tsx rename to client/cms/src/components/ui/card.tsx diff --git a/client/src/components/ui/chart.tsx b/client/cms/src/components/ui/chart.tsx similarity index 100% rename from client/src/components/ui/chart.tsx rename to client/cms/src/components/ui/chart.tsx diff --git a/client/src/components/ui/checkbox.tsx b/client/cms/src/components/ui/checkbox.tsx similarity index 100% rename from client/src/components/ui/checkbox.tsx rename to client/cms/src/components/ui/checkbox.tsx diff --git a/client/src/components/ui/dialog.tsx b/client/cms/src/components/ui/dialog.tsx similarity index 100% rename from client/src/components/ui/dialog.tsx rename to client/cms/src/components/ui/dialog.tsx diff --git a/client/src/components/ui/drawer.tsx b/client/cms/src/components/ui/drawer.tsx similarity index 100% rename from client/src/components/ui/drawer.tsx rename to client/cms/src/components/ui/drawer.tsx diff --git a/client/src/components/ui/dropdown-menu.tsx b/client/cms/src/components/ui/dropdown-menu.tsx similarity index 100% rename from client/src/components/ui/dropdown-menu.tsx rename to client/cms/src/components/ui/dropdown-menu.tsx diff --git a/client/src/components/ui/field.tsx b/client/cms/src/components/ui/field.tsx similarity index 100% rename from client/src/components/ui/field.tsx rename to client/cms/src/components/ui/field.tsx diff --git a/client/src/components/ui/input.tsx b/client/cms/src/components/ui/input.tsx similarity index 100% rename from client/src/components/ui/input.tsx rename to client/cms/src/components/ui/input.tsx diff --git a/client/src/components/ui/label.tsx b/client/cms/src/components/ui/label.tsx similarity index 100% rename from client/src/components/ui/label.tsx rename to client/cms/src/components/ui/label.tsx diff --git a/client/src/components/ui/select.tsx b/client/cms/src/components/ui/select.tsx similarity index 100% rename from client/src/components/ui/select.tsx rename to client/cms/src/components/ui/select.tsx diff --git a/client/src/components/ui/separator.tsx b/client/cms/src/components/ui/separator.tsx similarity index 100% rename from client/src/components/ui/separator.tsx rename to client/cms/src/components/ui/separator.tsx diff --git a/client/src/components/ui/shadcn-io/qr-code/index.tsx b/client/cms/src/components/ui/shadcn-io/qr-code/index.tsx similarity index 100% rename from client/src/components/ui/shadcn-io/qr-code/index.tsx rename to client/cms/src/components/ui/shadcn-io/qr-code/index.tsx diff --git a/client/src/components/ui/sheet.tsx b/client/cms/src/components/ui/sheet.tsx similarity index 100% rename from client/src/components/ui/sheet.tsx rename to client/cms/src/components/ui/sheet.tsx diff --git a/client/src/components/ui/sidebar.tsx b/client/cms/src/components/ui/sidebar.tsx similarity index 100% rename from client/src/components/ui/sidebar.tsx rename to client/cms/src/components/ui/sidebar.tsx diff --git a/client/src/components/ui/skeleton.tsx b/client/cms/src/components/ui/skeleton.tsx similarity index 100% rename from client/src/components/ui/skeleton.tsx rename to client/cms/src/components/ui/skeleton.tsx diff --git a/client/src/components/ui/sonner.tsx b/client/cms/src/components/ui/sonner.tsx similarity index 100% rename from client/src/components/ui/sonner.tsx rename to client/cms/src/components/ui/sonner.tsx diff --git a/client/src/components/ui/table.tsx b/client/cms/src/components/ui/table.tsx similarity index 100% rename from client/src/components/ui/table.tsx rename to client/cms/src/components/ui/table.tsx diff --git a/client/src/components/ui/tabs.tsx b/client/cms/src/components/ui/tabs.tsx similarity index 100% rename from client/src/components/ui/tabs.tsx rename to client/cms/src/components/ui/tabs.tsx diff --git a/client/src/components/ui/toggle-group.tsx b/client/cms/src/components/ui/toggle-group.tsx similarity index 100% rename from client/src/components/ui/toggle-group.tsx rename to client/cms/src/components/ui/toggle-group.tsx diff --git a/client/src/components/ui/toggle.tsx b/client/cms/src/components/ui/toggle.tsx similarity index 100% rename from client/src/components/ui/toggle.tsx rename to client/cms/src/components/ui/toggle.tsx diff --git a/client/src/components/ui/tooltip.tsx b/client/cms/src/components/ui/tooltip.tsx similarity index 100% rename from client/src/components/ui/tooltip.tsx rename to client/cms/src/components/ui/tooltip.tsx diff --git a/client/src/components/workbenchCards/card-skeleton.tsx b/client/cms/src/components/workbenchCards/card-skeleton.tsx similarity index 100% rename from client/src/components/workbenchCards/card-skeleton.tsx rename to client/cms/src/components/workbenchCards/card-skeleton.tsx diff --git a/client/src/hooks/data/useGetCheckInCode.ts b/client/cms/src/hooks/data/useGetCheckInCode.ts similarity index 100% rename from client/src/hooks/data/useGetCheckInCode.ts rename to client/cms/src/hooks/data/useGetCheckInCode.ts diff --git a/client/src/hooks/data/useGetMagicLink.ts b/client/cms/src/hooks/data/useGetMagicLink.ts similarity index 100% rename from client/src/hooks/data/useGetMagicLink.ts rename to client/cms/src/hooks/data/useGetMagicLink.ts diff --git a/client/src/hooks/data/useUserInfo.ts b/client/cms/src/hooks/data/useUserInfo.ts similarity index 100% rename from client/src/hooks/data/useUserInfo.ts rename to client/cms/src/hooks/data/useUserInfo.ts diff --git a/client/src/hooks/data/useValidateMagicLink.ts b/client/cms/src/hooks/data/useValidateMagicLink.ts similarity index 100% rename from client/src/hooks/data/useValidateMagicLink.ts rename to client/cms/src/hooks/data/useValidateMagicLink.ts diff --git a/client/src/hooks/use-mobile.ts b/client/cms/src/hooks/use-mobile.ts similarity index 100% rename from client/src/hooks/use-mobile.ts rename to client/cms/src/hooks/use-mobile.ts diff --git a/client/src/hooks/useLogout.ts b/client/cms/src/hooks/useLogout.ts similarity index 100% rename from client/src/hooks/useLogout.ts rename to client/cms/src/hooks/useLogout.ts diff --git a/client/src/hooks/useTheme.ts b/client/cms/src/hooks/useTheme.ts similarity index 100% rename from client/src/hooks/useTheme.ts rename to client/cms/src/hooks/useTheme.ts diff --git a/client/src/index.css b/client/cms/src/index.css similarity index 100% rename from client/src/index.css rename to client/cms/src/index.css diff --git a/client/src/lib/axios.ts b/client/cms/src/lib/axios.ts similarity index 100% rename from client/src/lib/axios.ts rename to client/cms/src/lib/axios.ts diff --git a/client/src/lib/navData.ts b/client/cms/src/lib/navData.ts similarity index 100% rename from client/src/lib/navData.ts rename to client/cms/src/lib/navData.ts diff --git a/client/src/lib/random.ts b/client/cms/src/lib/random.ts similarity index 100% rename from client/src/lib/random.ts rename to client/cms/src/lib/random.ts diff --git a/client/src/lib/router.ts b/client/cms/src/lib/router.ts similarity index 100% rename from client/src/lib/router.ts rename to client/cms/src/lib/router.ts diff --git a/client/src/lib/token.ts b/client/cms/src/lib/token.ts similarity index 100% rename from client/src/lib/token.ts rename to client/cms/src/lib/token.ts diff --git a/client/src/lib/utils.ts b/client/cms/src/lib/utils.ts similarity index 100% rename from client/src/lib/utils.ts rename to client/cms/src/lib/utils.ts diff --git a/client/src/main.tsx b/client/cms/src/main.tsx similarity index 100% rename from client/src/main.tsx rename to client/cms/src/main.tsx diff --git a/client/src/routeTree.gen.ts b/client/cms/src/routeTree.gen.ts similarity index 100% rename from client/src/routeTree.gen.ts rename to client/cms/src/routeTree.gen.ts diff --git a/client/src/routes/__root.tsx b/client/cms/src/routes/__root.tsx similarity index 100% rename from client/src/routes/__root.tsx rename to client/cms/src/routes/__root.tsx diff --git a/client/src/routes/_sidebarLayout.tsx b/client/cms/src/routes/_sidebarLayout.tsx similarity index 100% rename from client/src/routes/_sidebarLayout.tsx rename to client/cms/src/routes/_sidebarLayout.tsx diff --git a/client/src/routes/_sidebarLayout/index.tsx b/client/cms/src/routes/_sidebarLayout/index.tsx similarity index 100% rename from client/src/routes/_sidebarLayout/index.tsx rename to client/cms/src/routes/_sidebarLayout/index.tsx diff --git a/client/src/routes/_sidebarLayout/profile.tsx b/client/cms/src/routes/_sidebarLayout/profile.tsx similarity index 100% rename from client/src/routes/_sidebarLayout/profile.tsx rename to client/cms/src/routes/_sidebarLayout/profile.tsx diff --git a/client/src/routes/authorize.tsx b/client/cms/src/routes/authorize.tsx similarity index 100% rename from client/src/routes/authorize.tsx rename to client/cms/src/routes/authorize.tsx diff --git a/client/src/routes/magicLinkSent.tsx b/client/cms/src/routes/magicLinkSent.tsx similarity index 100% rename from client/src/routes/magicLinkSent.tsx rename to client/cms/src/routes/magicLinkSent.tsx diff --git a/client/src/routes/token.tsx b/client/cms/src/routes/token.tsx similarity index 100% rename from client/src/routes/token.tsx rename to client/cms/src/routes/token.tsx diff --git a/client/tsconfig.app.json b/client/cms/tsconfig.app.json similarity index 100% rename from client/tsconfig.app.json rename to client/cms/tsconfig.app.json diff --git a/client/tsconfig.json b/client/cms/tsconfig.json similarity index 100% rename from client/tsconfig.json rename to client/cms/tsconfig.json diff --git a/client/tsconfig.node.json b/client/cms/tsconfig.node.json similarity index 100% rename from client/tsconfig.node.json rename to client/cms/tsconfig.node.json diff --git a/client/vite.config.ts b/client/cms/vite.config.ts similarity index 100% rename from client/vite.config.ts rename to client/cms/vite.config.ts diff --git a/mobile/.envrc b/client/mobile/.envrc similarity index 100% rename from mobile/.envrc rename to client/mobile/.envrc diff --git a/mobile/.fvmrc b/client/mobile/.fvmrc similarity index 100% rename from mobile/.fvmrc rename to client/mobile/.fvmrc diff --git a/mobile/.gitignore b/client/mobile/.gitignore similarity index 100% rename from mobile/.gitignore rename to client/mobile/.gitignore diff --git a/mobile/.metadata b/client/mobile/.metadata similarity index 100% rename from mobile/.metadata rename to client/mobile/.metadata diff --git a/mobile/README.md b/client/mobile/README.md similarity index 100% rename from mobile/README.md rename to client/mobile/README.md diff --git a/mobile/analysis_options.yaml b/client/mobile/analysis_options.yaml similarity index 100% rename from mobile/analysis_options.yaml rename to client/mobile/analysis_options.yaml diff --git a/mobile/android/.gitignore b/client/mobile/android/.gitignore similarity index 100% rename from mobile/android/.gitignore rename to client/mobile/android/.gitignore diff --git a/mobile/android/app/build.gradle.kts b/client/mobile/android/app/build.gradle.kts similarity index 100% rename from mobile/android/app/build.gradle.kts rename to client/mobile/android/app/build.gradle.kts diff --git a/mobile/android/app/src/debug/AndroidManifest.xml b/client/mobile/android/app/src/debug/AndroidManifest.xml similarity index 100% rename from mobile/android/app/src/debug/AndroidManifest.xml rename to client/mobile/android/app/src/debug/AndroidManifest.xml diff --git a/mobile/android/app/src/main/AndroidManifest.xml b/client/mobile/android/app/src/main/AndroidManifest.xml similarity index 100% rename from mobile/android/app/src/main/AndroidManifest.xml rename to client/mobile/android/app/src/main/AndroidManifest.xml diff --git a/mobile/android/app/src/main/kotlin/io/asnk/applications/nixcn/MainActivity.kt b/client/mobile/android/app/src/main/kotlin/io/asnk/applications/nixcn/MainActivity.kt similarity index 100% rename from mobile/android/app/src/main/kotlin/io/asnk/applications/nixcn/MainActivity.kt rename to client/mobile/android/app/src/main/kotlin/io/asnk/applications/nixcn/MainActivity.kt diff --git a/mobile/android/app/src/main/res/drawable-v21/launch_background.xml b/client/mobile/android/app/src/main/res/drawable-v21/launch_background.xml similarity index 100% rename from mobile/android/app/src/main/res/drawable-v21/launch_background.xml rename to client/mobile/android/app/src/main/res/drawable-v21/launch_background.xml diff --git a/mobile/android/app/src/main/res/drawable/launch_background.xml b/client/mobile/android/app/src/main/res/drawable/launch_background.xml similarity index 100% rename from mobile/android/app/src/main/res/drawable/launch_background.xml rename to client/mobile/android/app/src/main/res/drawable/launch_background.xml diff --git a/mobile/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/client/mobile/android/app/src/main/res/mipmap-hdpi/ic_launcher.png similarity index 100% rename from mobile/android/app/src/main/res/mipmap-hdpi/ic_launcher.png rename to client/mobile/android/app/src/main/res/mipmap-hdpi/ic_launcher.png diff --git a/mobile/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/client/mobile/android/app/src/main/res/mipmap-mdpi/ic_launcher.png similarity index 100% rename from mobile/android/app/src/main/res/mipmap-mdpi/ic_launcher.png rename to client/mobile/android/app/src/main/res/mipmap-mdpi/ic_launcher.png diff --git a/mobile/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/client/mobile/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png similarity index 100% rename from mobile/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png rename to client/mobile/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png diff --git a/mobile/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/client/mobile/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png similarity index 100% rename from mobile/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png rename to client/mobile/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png diff --git a/mobile/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/client/mobile/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png similarity index 100% rename from mobile/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png rename to client/mobile/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png diff --git a/mobile/android/app/src/main/res/values-night/styles.xml b/client/mobile/android/app/src/main/res/values-night/styles.xml similarity index 100% rename from mobile/android/app/src/main/res/values-night/styles.xml rename to client/mobile/android/app/src/main/res/values-night/styles.xml diff --git a/mobile/android/app/src/main/res/values/styles.xml b/client/mobile/android/app/src/main/res/values/styles.xml similarity index 100% rename from mobile/android/app/src/main/res/values/styles.xml rename to client/mobile/android/app/src/main/res/values/styles.xml diff --git a/mobile/android/app/src/profile/AndroidManifest.xml b/client/mobile/android/app/src/profile/AndroidManifest.xml similarity index 100% rename from mobile/android/app/src/profile/AndroidManifest.xml rename to client/mobile/android/app/src/profile/AndroidManifest.xml diff --git a/mobile/android/build.gradle.kts b/client/mobile/android/build.gradle.kts similarity index 100% rename from mobile/android/build.gradle.kts rename to client/mobile/android/build.gradle.kts diff --git a/mobile/android/gradle.properties b/client/mobile/android/gradle.properties similarity index 100% rename from mobile/android/gradle.properties rename to client/mobile/android/gradle.properties diff --git a/mobile/android/gradle/wrapper/gradle-wrapper.properties b/client/mobile/android/gradle/wrapper/gradle-wrapper.properties similarity index 100% rename from mobile/android/gradle/wrapper/gradle-wrapper.properties rename to client/mobile/android/gradle/wrapper/gradle-wrapper.properties diff --git a/mobile/android/settings.gradle.kts b/client/mobile/android/settings.gradle.kts similarity index 100% rename from mobile/android/settings.gradle.kts rename to client/mobile/android/settings.gradle.kts diff --git a/mobile/ios/.gitignore b/client/mobile/ios/.gitignore similarity index 100% rename from mobile/ios/.gitignore rename to client/mobile/ios/.gitignore diff --git a/mobile/ios/Flutter/AppFrameworkInfo.plist b/client/mobile/ios/Flutter/AppFrameworkInfo.plist similarity index 100% rename from mobile/ios/Flutter/AppFrameworkInfo.plist rename to client/mobile/ios/Flutter/AppFrameworkInfo.plist diff --git a/mobile/ios/Flutter/Debug.xcconfig b/client/mobile/ios/Flutter/Debug.xcconfig similarity index 100% rename from mobile/ios/Flutter/Debug.xcconfig rename to client/mobile/ios/Flutter/Debug.xcconfig diff --git a/mobile/ios/Flutter/Release.xcconfig b/client/mobile/ios/Flutter/Release.xcconfig similarity index 100% rename from mobile/ios/Flutter/Release.xcconfig rename to client/mobile/ios/Flutter/Release.xcconfig diff --git a/mobile/ios/Runner.xcodeproj/project.pbxproj b/client/mobile/ios/Runner.xcodeproj/project.pbxproj similarity index 100% rename from mobile/ios/Runner.xcodeproj/project.pbxproj rename to client/mobile/ios/Runner.xcodeproj/project.pbxproj diff --git a/mobile/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/client/mobile/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata similarity index 100% rename from mobile/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename to client/mobile/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata diff --git a/mobile/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/client/mobile/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist similarity index 100% rename from mobile/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename to client/mobile/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/mobile/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/client/mobile/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings similarity index 100% rename from mobile/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings rename to client/mobile/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings diff --git a/mobile/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/client/mobile/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme similarity index 100% rename from mobile/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme rename to client/mobile/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme diff --git a/mobile/ios/Runner.xcworkspace/contents.xcworkspacedata b/client/mobile/ios/Runner.xcworkspace/contents.xcworkspacedata similarity index 100% rename from mobile/ios/Runner.xcworkspace/contents.xcworkspacedata rename to client/mobile/ios/Runner.xcworkspace/contents.xcworkspacedata diff --git a/mobile/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/client/mobile/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist similarity index 100% rename from mobile/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename to client/mobile/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/mobile/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/client/mobile/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings similarity index 100% rename from mobile/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings rename to client/mobile/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings diff --git a/mobile/ios/Runner/AppDelegate.swift b/client/mobile/ios/Runner/AppDelegate.swift similarity index 100% rename from mobile/ios/Runner/AppDelegate.swift rename to client/mobile/ios/Runner/AppDelegate.swift diff --git a/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/client/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json rename to client/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/client/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png similarity index 100% rename from mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png rename to client/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png diff --git a/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/client/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png similarity index 100% rename from mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png rename to client/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png diff --git a/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/client/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png similarity index 100% rename from mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png rename to client/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png diff --git a/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/client/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png similarity index 100% rename from mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png rename to client/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png diff --git a/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/client/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png similarity index 100% rename from mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png rename to client/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png diff --git a/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/client/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png similarity index 100% rename from mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png rename to client/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png diff --git a/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/client/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png similarity index 100% rename from mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png rename to client/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png diff --git a/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/client/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png similarity index 100% rename from mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png rename to client/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png diff --git a/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/client/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png similarity index 100% rename from mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png rename to client/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png diff --git a/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/client/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png similarity index 100% rename from mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png rename to client/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png diff --git a/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/client/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png similarity index 100% rename from mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png rename to client/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png diff --git a/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/client/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png similarity index 100% rename from mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png rename to client/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png diff --git a/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/client/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png similarity index 100% rename from mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png rename to client/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png diff --git a/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/client/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png similarity index 100% rename from mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png rename to client/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png diff --git a/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/client/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png similarity index 100% rename from mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png rename to client/mobile/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png diff --git a/mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/client/mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json similarity index 100% rename from mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json rename to client/mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json diff --git a/mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/client/mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png similarity index 100% rename from mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png rename to client/mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png diff --git a/mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/client/mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png similarity index 100% rename from mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png rename to client/mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png diff --git a/mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/client/mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png similarity index 100% rename from mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png rename to client/mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png diff --git a/mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/client/mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md similarity index 100% rename from mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md rename to client/mobile/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md diff --git a/mobile/ios/Runner/Base.lproj/LaunchScreen.storyboard b/client/mobile/ios/Runner/Base.lproj/LaunchScreen.storyboard similarity index 100% rename from mobile/ios/Runner/Base.lproj/LaunchScreen.storyboard rename to client/mobile/ios/Runner/Base.lproj/LaunchScreen.storyboard diff --git a/mobile/ios/Runner/Base.lproj/Main.storyboard b/client/mobile/ios/Runner/Base.lproj/Main.storyboard similarity index 100% rename from mobile/ios/Runner/Base.lproj/Main.storyboard rename to client/mobile/ios/Runner/Base.lproj/Main.storyboard diff --git a/mobile/ios/Runner/Info.plist b/client/mobile/ios/Runner/Info.plist similarity index 100% rename from mobile/ios/Runner/Info.plist rename to client/mobile/ios/Runner/Info.plist diff --git a/mobile/ios/Runner/Runner-Bridging-Header.h b/client/mobile/ios/Runner/Runner-Bridging-Header.h similarity index 100% rename from mobile/ios/Runner/Runner-Bridging-Header.h rename to client/mobile/ios/Runner/Runner-Bridging-Header.h diff --git a/mobile/ios/RunnerTests/RunnerTests.swift b/client/mobile/ios/RunnerTests/RunnerTests.swift similarity index 100% rename from mobile/ios/RunnerTests/RunnerTests.swift rename to client/mobile/ios/RunnerTests/RunnerTests.swift diff --git a/mobile/lib/main.dart b/client/mobile/lib/main.dart similarity index 100% rename from mobile/lib/main.dart rename to client/mobile/lib/main.dart diff --git a/mobile/pubspec.lock b/client/mobile/pubspec.lock similarity index 100% rename from mobile/pubspec.lock rename to client/mobile/pubspec.lock diff --git a/mobile/pubspec.yaml b/client/mobile/pubspec.yaml similarity index 100% rename from mobile/pubspec.yaml rename to client/mobile/pubspec.yaml diff --git a/mobile/test/widget_test.dart b/client/mobile/test/widget_test.dart similarity index 100% rename from mobile/test/widget_test.dart rename to client/mobile/test/widget_test.dart diff --git a/party/.gitkeep b/client/party/.gitkeep similarity index 100% rename from party/.gitkeep rename to client/party/.gitkeep diff --git a/devenv.nix b/devenv.nix index 05bd492..eeeb671 100644 --- a/devenv.nix +++ b/devenv.nix @@ -30,9 +30,9 @@ }; processes = { - client = { + client-cms = { exec = "pnpm run dev"; - cwd = "./client"; + cwd = "./client/cms"; }; backend.exec = "just watch-back"; }; diff --git a/justfile b/justfile index 4b9449d..b8ed561 100644 --- a/justfile +++ b/justfile @@ -1,39 +1,43 @@ project_name := "nixcn-cms" -project_dir := justfile_directory() -server_enrty := "main.go" -output_dir := join(project_dir, ".outputs") -client_dir := join(project_dir, "client") -exec_path := join(output_dir, project_name) go_cmd := `realpath $(which go)` pnpm_cmd := `realpath $(which pnpm)` +project_dir := justfile_directory() +output_dir := join(project_dir, ".outputs") +client_dir := join(project_dir, "client") +client_output_dir := join(output_dir, "client") +client_cms_dir := join(client_dir, "cms") +server_exec_path := join(output_dir, project_name) +server_entry := "main.go" -install: - cd {{ client_dir }} && {{ pnpm_cmd }} install +install: install-cms + +install-cms: + cd {{ client_cms_dir }} && {{ pnpm_cmd }} install clean: mkdir -p .outputs find .outputs -mindepth 1 ! -path .outputs/config.yaml -exec rm -rf {} + -build-client: - cd {{ client_dir }} && {{ pnpm_cmd }} run build --outDir {{ join(output_dir, "static") }} +build-client-cms: + cd {{ client_cms_dir }} && {{ pnpm_cmd }} run build --outDir {{ join(client_output_dir, "cms") }} build-back: - {{ go_cmd }} build -o {{ exec_path }}{{ if os() == "windows" { ".exe" } else { "" } }} {{ server_enrty }} + {{ go_cmd }} build -o {{ server_exec_path }}{{ if os() == "windows" { ".exe" } else { "" } }} {{ server_entry }} run-back: - cd {{ output_dir }} && CONFIG_PATH={{ output_dir }} {{ exec_path }}{{ if os() == "windows" { ".exe" } else { "" } }} + cd {{ output_dir }} && CONFIG_PATH={{ output_dir }} {{ server_exec_path }}{{ if os() == "windows" { ".exe" } else { "" } }} test-back: cd {{ output_dir }} && CONFIG_PATH={{ output_dir }} GO_ENV=test go test -C .. ./... watch-back: - watchexec -r -e go,yaml,tpl -i '.devenv/**' -i '.direnv/**' -i 'client/**' -i 'vendor/**' 'go build -o {{ join(output_dir, "nixcn-cms") }} . && cd {{ output_dir }} && CONFIG_PATH={{ output_dir }} {{ exec_path }}' + watchexec -r -e go,yaml,tpl -i '.devenv/**' -i '.direnv/**' -i 'client/**' -i 'vendor/**' 'go build -o {{ server_exec_path }} . && cd {{ output_dir }} && CONFIG_PATH={{ output_dir }} {{ server_exec_path }}' dev: clean install devenv up --verbose -client: install - devenv up client --verbose +dev-client-cms: install-cms + devenv up client-cms --verbose -back: clean +dev-back: clean devenv up backend postgres redis meilisearch --verbose