Skip to content

Contributing

raktim edited this page Aug 4, 2026 · 1 revision

Contributing

Issues and PRs are welcome. The full guide lives in CONTRIBUTING.md — this page is a summary of what matters most before you start.

Read this first

Before writing any code, read the README's Architecture and API Reference § Security posture sections. Anything you add that touches auth, money, or input validation is held to the same bar already documented there — not a lighter one.

Scope

This is a small, focused tool: offline-first, single-shop, single-till. Keep contributions aligned with that — see Roadmap § Deliberately not bundled for examples of features turned away on purpose. If you want to propose something that pushes toward multi-tenant or hosted-SaaS territory, open an issue to discuss it first rather than sending a PR directly.

Conventions that matter here

A few things this codebase leans on that aren't obvious from the diff alone — see CONTRIBUTING.md for the full list:

  • Server-authoritative money. Price, tax, discount, loyalty, and change are always computed backend-side; the client only ever sends intent. Any new checkout-adjacent field needs to follow this.
  • GST is backed out of the entered price, never added on top — see Architecture § Data & money model before touching pricing.js or quote.ts.
  • Running balances are rounded, JS-computed, and set — never a database-side increment on a float.
  • Barcode-scanner input parsing relies on inter-keystroke timing to tell a scanner apart from human typing; don't assume every keydown burst is a real scan.
  • Direct-USB printing goes through the kernel usblp character device first, libusb second — see Hardware Setup for why, if you're touching escposUsb.js.

Development setup, PR process, bug reports

Covered in detail in CONTRIBUTING.md: Development setup · Making a change · Commit messages · Opening a pull request · Reporting bugs

Code of Conduct

This project follows the Contributor Covenant. Report unacceptable behavior to ranjitraktim5@gmail.com.

Maintainers & license

See MAINTAINERS.md. Project copyright is held jointly by Nodedr Infotech Private Limited and Raktim Ranjit; the project is licensed AGPL-3.0. By submitting a PR you agree your contribution is licensed the same way; you retain copyright on your own contribution.

Clone this wiki locally