Contributing
Contributions are welcome! This page summarizes the workflow and coding standards. See the repository's CONTRIBUTING.md for the authoritative version.
Development Workflow
- Set up the toolchain — Rust 1.90+ and Node.js 20+ (see Quick Start and Deployment for system dependencies).
- Run the backend with
cargo runand the frontend withnpm run devinvite-project/. - Add tests for your change — every code change must add test cases.
- Format and lint before submitting.
Coding Standards
Rust
- Format with
rustfmt; runcargo clippy. snake_casefor functions/modules,PascalCasefor types,SCREAMING_SNAKE_CASEfor constants.- Comments must be in English and describe the code's current behavior — no development-phase markers.
TypeScript / React
- 4-space indentation;
PascalCasecomponents;useXxxhooks;kebab-casefilenames undercomponents/ui. - Internationalization is mandatory — all user-visible text must go through
t(); add every new key to bothzh-CNanden-USlocale files. No hardcoded strings. - Generated files under
src/services/(Kubb output) must not be edited by hand.
Commit Messages
- Use English and follow Conventional Commits (
feat:,fix:,chore:, …).
Building
bash
# Backend
cargo build --release
# Frontend
cd vite-project && npm run buildSee the Module Map for where things live and the step-by-step recipes for adding APIs and signaling types.