feat(internal/launchpad): add iframe viewer for prototypes and update links loader This commit introduces an iframe viewer in the launchpad to display prototypes directly within the application. It also updates the links loader to handle prototype links differently, opening them in the iframe instead of a new tab. The contributing guide has been updated to include a list of required development tools and recommended IDE setup, ensuring that contributors have the necessary tools to work on the project.
92 lines
4.0 KiB
Markdown
92 lines
4.0 KiB
Markdown
# 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 Vision:** [docs/00-vision.md](./00-vision.md)
|
|
- **Backend Specification:** [docs/01-backend-api-specification.md](./01-backend-api-specification.md)
|
|
- **Codemagic Env Vars:** [docs/02-codemagic-env-vars.md](./02-codemagic-env-vars.md)
|
|
|