Skip to content

Getting Started

Ankit Upadhyay edited this page Jul 9, 2026 · 2 revisions

Getting Started

Fastest path to a running local environment. For anything not covered here (Husky hooks, secret scanning, local quality gates, the full PR checklist), CONTRIBUTING.md is the authoritative source — this page won't duplicate it.

Prerequisites

  • Git, Node.js 20.x (see .nvmrc), and pnpm (pnpm@8.15.6 — never use npm or yarn).

1. Fork and clone

git clone https://github.com/<your-fork>/Yosemite-Crew.git
cd Yosemite-Crew

Clone the dev branch for the bleeding-edge version: git clone -b dev ....

2. Install dependencies

pnpm install

This also runs prepare, which installs the Husky git hooks (commit-msg linting, staged-secret scanning) — don't skip it.

3. Run an app

Each app is a separate workspace; use --filter to scope commands rather than running everything:

pnpm run dev --filter backend    # API server
pnpm run dev --filter frontend   # Next.js web app (PIMS)

apps/mobileAppYC (React Native) and apps/desktop (Electron) have their own platform-specific run steps — see each app's README.md/AGENTS.md, since those involve simulators/native toolchains this page can't shortcut. Mobile quick start:

# in apps/mobileAppYC
pnpm run start     # Metro bundler
pnpm run ios       # or: pnpm run android

4. Branch and open a PR

git checkout -b feat/your-change   # branch from dev, not main

PRs target dev. Commit messages and PR titles must follow <type>(<scope>): <subject> (enforced by commitlint + CI) — see Contributing and Governance for the allowed types/scopes.

Before you open the PR

pnpm run lint
pnpm run type-check
pnpm run test
pnpm run build

See Engineering Standards (Definition of Done), Testing Strategy (coverage mandate), and Code Quality Gates (the pre-push Sonar gate) before pushing.

Working across the monorepo

  • Always scope with --filter <workspace>. Running the full test suite is slow and generally discouraged — target the files you changed.
  • npx tsc --noemit can take 60-120s on this repo; give it time.
  • Worktree gotcha: bare npx tsc/eslint fail in a fresh checkout because the Prisma client isn't generated. Use pnpm --filter <ws> run type-check / run lint instead. See Shared Packages.

Need help?

  • Open a GitHub issue for bugs/features.
  • Discussions for questions.
  • Discord for real-time chat.
Product & Domain
Architecture
Applications
Design & Accessibility
Engineering Handbook
Decisions (ADRs)
Design Docs & Plans
Roadmap
Operations
Meta

Canonical code & docs: main repo · Auto-generated companion: DeepWiki

Clone this wiki locally