refactor: restructure monorepo to align with industry standards

This commit restructures the monorepo to improve organization,
maintainability, and scalability. The changes include:

- Moving mobile apps from `mobile-apps/` to `apps/mobile-*`.
- Moving the web dashboard from `admin-web/` and `frontend-web/`
 to `apps/web-dashboard/`.
- Moving Firebase-related files to the root `firebase/` directory.
- Adding a `.geminiignore` file to exclude unnecessary files from
 Gemini analysis.
- Updating `.gitignore` to reflect the new structure and exclude
 sensitive files.
- Updating `codemagic.yaml` to reflect the new app locations.
- Adding a `make help` command to the root directory.
- Adding a `make install-git-hooks` command to install git hooks.
- Adding a `docs/02-codemagic-env-vars.md` file to document
 Codemagic environment variables.
- Adding a `docs/03-contributing.md` file to document
 contribution guidelines.
- Adding prototype placeholders to the internal launchpad.
- Updating the `README.md` file to reflect the new structure and
 provide updated instructions.

These changes improve the overall structure of the monorepo and
make it easier to develop, maintain, and scale the KROW Workforce
platform.
This commit is contained in:
bwnyasse
2026-01-10 22:36:29 -05:00
parent a0d820d3ce
commit 3c0488576b
20 changed files with 396 additions and 410 deletions

195
.gitignore vendored
View File

@@ -1,85 +1,164 @@
# General
# ----------------------------------------------------------------
# macOS generated files
# ==============================================================================
# GLOBAL & OS
# ==============================================================================
.DS_Store
.DS_Store?
._*
.AppleDouble
.LSOverride
.Spotlight-V100
.Trashes
Thumbs.db
Thumbs.db:encryptable
ehthumbs.db
ehthumbs_vista.db
desktop.ini
$RECYCLE.BIN/
.Trash-*
# IDE configuration files
# IDE & Editors
.idea/
.vscode/
*.iml
*.iws
*.swp
*.swo
*~
\#*\#
.\#*
# Log and cache files
# Logs & Cache
*.log
*.cache
*.pyc
__pycache__/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
*.pid
*.seed
*.pid.lock
# Secrets (never commit these)
# The secrets/ directory is handled by its own .gitignore, but this is an extra layer of safety.
# Temporary Files
*.tmp
*.temp
tmp/
temp/
# ==============================================================================
# SECURITY (CRITICAL)
# ==============================================================================
# Secrets directory (contains API keys, service accounts)
secrets/
*.env
.env.*
# Environment files
.env
.env.local
.env.*.local
.env.development
.env.production
.env.test
!.env.example
# OS-specific files
Thumbs.db
ehthumbs.db
# Certificates & Keys
*.pem
*.key
*.jks
*.keystore
*.p12
*.cer
# GCP Service Account Keys
gcp_keys/
**/*.service-account.json
**/sa.json
# Frontend Web (Vite / React)
# ----------------------------------------------------------------
frontend-web/node_modules/
frontend-web/dist/
frontend-web/.env.local
frontend-web/coverage/
frontend-web/.vite/
/frontend-web/src/dataconnect-generated/
/internal-api-harness/src/dataconnect-generated/
frontend-web-free/src/dataconnect-generated/
# NPM Auth
.npmrc
**/.npmrc
!**/.npmrc.template
# ==============================================================================
# NODE.JS / WEB (React, Vite, Functions)
# ==============================================================================
node_modules/
dist/
dist-ssr/
coverage/
.nyc_output/
.vite/
.temp/
*.local
.eslintcache
.stylelintcache
.npm
.turbo
.vercel
# Vite timestamps
vite.config.js.timestamp-*
vite.config.ts.timestamp-*
# Generated Data Connect SDKs in web projects
# Generally ignored as they are regenerated on build
**/dataconnect-generated/
# ==============================================================================
# FLUTTER / MOBILE
# ==============================================================================
# Flutter/Dart
.dart_tool/
.pub-cache/
.flutter-plugins
.flutter-plugins-dependencies
# Mobile (Flutter)
# ----------------------------------------------------------------
# Android
.gradle/
**/android/app/libs/
**/android/key.properties
**/android/local.properties
mobile-apps/*/.dart_tool/
mobile-apps/*/.pub-cache/
mobile-apps/*/build/
mobile-apps/*/.flutter-plugins
mobile-apps/*/.flutter-plugins-dependencies
# Build outputs
build/
# iOS
**/ios/Flutter/Generated.xcconfig
**/ios/Flutter/flutter_export_environment.sh
**/ios/Podfile.lock
**/ios/Pods/
**/ios/.symlinks/
# Firebase / Backend
# ----------------------------------------------------------------
# Python virtual environments
firebase/functions/venv/
firebase/dataconnect/venv/
# ==============================================================================
# FIREBASE & BACKEND
# ==============================================================================
# Firebase Cache & Emulators
.firebase/
dataconnect/.dataconnect/
backend/dataconnect/.dataconnect/
# Firebase emulator logs
*.log
firebase-debug.log
firebase-debug.*.log
firestore-debug.log
ui-debug.log
# Debug Logs (Recursive)
**/firebase-debug.log
**/firebase-debug.*.log
**/firestore-debug.log
**/ui-debug.log
**/database-debug.log
**/pubsub-debug.log
# Generated SDKs (can be regenerated, so often ignored)
# Decide with your team if you want to commit these or not.
# For now, we will commit them to simplify setup for new developers.
# @dataconnect/
# Python Virtual Envs (if used)
venv/
env/
ENV/
__pycache__/
*.py[cod]
*$py.class
*.so
# ==============================================================================
# PROJECT SPECIFIC
# ==============================================================================
# Secure hashes are committed, but the raw user list is usually kept for reference
# unless it contains sensitive info. Here we explicitly ignore the raw file.
internal/launchpad/iap-users.txt
# Temporary files from this project
# ----------------------------------------------------------------
# The Base44 export directory should not be committed
/krow-workforce-export-latest/
# The legacy Laravel project should not be committed
/legacy-web/
# The temporary mobile app folders should not be committed
/flutter-mobile-client-app/
/flutter-mobile-staff-app/
/inspiration/
# Temporary migration artifacts
_legacy/
krow-workforce-export-latest/