# Contributing to KROW Workforce Platform Welcome to the KROW Workforce development team! This guide will help you get set up and understand our development practices. --- ## 🚀 Getting Started & Setup Checklist Follow these steps to set up your development environment and gain access to all necessary resources. 1. **Access Google Chat Space:** * Ensure you have been invited to and joined our main Google Chat space for daily communication and quick questions. 2. **GitHub Access & SSH Key:** * Confirm you have read/write access to this GitHub repository. * Configure your SSH key for GitHub. Ensure your commits are verified (GPG signing is recommended). 3. **Install & Configure Gemini CLI:** * Install the Gemini CLI on your local machine. * Familiarize yourself with its usage for code assistance and documentation. 4. **Install & Configure Enpass:** * Install Enpass (our team's shared password manager). * Ensure you have access to the shared KROW vault for all project credentials (API keys, service accounts, etc.). 5. **Install Required Development Tools:** Before running the project, ensure you have the following installed: * **Node.js (v20+):** We recommend using **[nvm](https://github.com/nvm-sh/nvm)** (Node Version Manager) to install and manage Node versions. * **pnpm:** Our preferred package manager for JavaScript projects. (`npm install -g pnpm`) * **Flutter Version Management (FVM):** We use **[FVM](https://fvm.app/)** to manage Flutter SDK versions per project. Install it via Homebrew (`brew install fvm`) or Dart (`dart pub global activate fvm`). * **Firebase CLI:** Required for emulation and deployment. (`npm install -g firebase-tools`) * **Google Cloud CLI (gcloud):** Required for backend authentication and resource management. **Recommended IDE:** * **[Google Project IDX (Antigravity)](https://idx.google.com/)** or **VS Code**. * **Essential Extensions:** * Flutter & Dart * Firebase * Tailwind CSS IntelliSense * ESLint & Prettier **Diagramming:** * Use **MermaidChart.com** for creating and editing diagrams (Mermaid syntax). 6. **Local Development Environment Setup:** * Clone the monorepo: `git clone git@github.com:Oloodi/krow-workforce.git` * Navigate to the project root: `cd krow-workforce` * Install web frontend dependencies: `make install` - **Install Git Hooks:** - Run `make install-git-hooks` to set up local safeguards that prevent direct pushes to protected branches (`main` and `dev`). **This is a mandatory step.** 7. **Firebase Project Access Validation:** * Confirm you have access to the `dev` Firebase/GCP project. * Verify you can run `firebase login` and `gcloud auth login` successfully. 8. **Understand the Monorepo Structure:** * Familiarize yourself with the project layout (`apps/`, `backend/`, `internal/`) as described in the main `README.md`. --- ## 💡 Development Guidelines 1. **Branching Strategy:** * We adopt a **feature branch workflow**. All code modifications must be done on a new branch. * The `main` and `dev` branches are protected. 2. **Commit Messages:** * Use clear and descriptive commit messages (standardized via Open Commit if available). 3. **Code Standards:** * Adhere to existing code style, formatting, and architectural patterns found in the codebase. * Run linters and formatters before committing. 4. **Documentation:** * Keep documentation up to date in the `docs/` directory. 5. **Diagrams:** * All diagrams should be created using **Mermaid syntax** and stored in Markdown files. --- ## 🔗 Useful Links - **KROW Internal Launchpad:** [https://launchpad.krowwithus.com](https://launchpad.krowwithus.com) - **Project Onboarding (Start Here):** [docs/05-project-onboarding-master.md](./05-project-onboarding-master.md) - Comprehensive guide covering architecture, domain logic, feature gap analysis, and development strategy - **Project Vision:** [docs/00-vision.md](./00-vision.md) - **Backend Specification (Legacy Reference):** [docs/01-backend-api-specification.md](./01-backend-api-specification.md) - Historical API spec from Digital Ocean stack - **Codemagic Env Vars:** [docs/02-codemagic-env-vars.md](./02-codemagic-env-vars.md)