Skip to content

Contributing

Syed Ahmer Shah edited this page Oct 25, 2026 · 1 revision

The full guide is CONTRIBUTING.md. In short:

  1. Open an issue first for anything bigger than a small fix, so we agree on the approach.
  2. Branch from main: feat/..., fix/..., docs/... or chore/....
  3. Add tests with every feature. Run the checks in Developer Setup before pushing.
  4. Open a pull request using the template. main only takes pull requests; they are squash-merged once CI (backend, frontend, CodeQL) passes.

House rules

  • Commit messages: short, imperative, no prefixes ("Add overlap tool", not "feat: added...").
  • API changes update backend/schema.yml and the generated frontend client in the same PR.
  • Every user-facing string goes through translation (t("key") in React, gettext in Django), in English, Urdu and Arabic. Use logical CSS properties so right-to-left layouts work.
  • Public pages work without JavaScript, and motion is off under prefers-reduced-motion.
  • No new dependency without a reason in the PR; pin exact versions.
  • No secrets, .env files, dumps or personal data in commits.
  • Comments only for what the code can't say: why, a library quirk, a trap.

Translations

Urdu and Arabic strings were drafted and still need a native speaker's review. If you speak either language, corrections are very welcome: open an issue or a pull request against the .po files in backend/locale/ or the JSON files in frontend/src/i18n/.

Security issues

Do not open a public issue. Follow SECURITY.md and use private vulnerability reporting.

Clone this wiki locally