Thanks for your interest in TTDash.
This project is currently maintained by a single maintainer. Contributions are welcome, but acceptance is selective so the codebase, scope, and release quality stay manageable.
The easiest changes to review and merge are:
- reproducible bug reports
- documentation fixes and clarifications
- focused bugfix pull requests
- small UX or accessibility improvements
- tests that cover existing or clearly agreed behavior
Please open an issue before spending time on larger changes such as:
- new features
- architectural refactors
- dependency swaps
- changes to import, persistence, or reporting behavior
- broad UI redesigns
Large unsolicited pull requests may be declined even if they are technically correct, simply because they do not fit the current direction or available review time.
Please include enough detail for the problem to be actionable:
- what you expected
- what actually happened
- exact steps to reproduce
- sample input data if the bug depends on input shape
- screenshots or terminal output when helpful
- environment details when relevant: OS, Node version, install method, browser
For feature requests, explain the user problem first. Suggestions that only describe an implementation without clarifying the problem are harder to evaluate.
Make sure the change is small, focused, and aligned with the existing product direction.
Run the main local checks:
npm run verify
npm run test:e2enpm run verify covers formatting, ESLint, tsc --noEmit, unit tests, the production bundle, and packaged-artifact verification. If you want the same coverage gate used in release preparation, also run:
npm run test:unit:coverageIf you only need the production bundle without the lint/format gate, use:
npm run build:appIf local port 3015 is already occupied, run Playwright on another isolated port:
PLAYWRIGHT_TEST_PORT=3016 npm run test:e2eThe Playwright suite uses an isolated local app directory under .tmp-playwright/ and should not reuse your normal local dashboard data. npm run verify:package builds the real tarball and verifies that the packaged CLI can start outside the repo checkout.
Then manually verify the main user flows touched by your change:
- dashboard load
- auto-import
- JSON upload
- filtering
- CSV/PDF export when relevant
If you change dependencies, update both lockfiles so npm and Bun installs stay reproducible:
npm install
bun install --lockfile-onlyGood pull requests are:
- narrowly scoped
- easy to review commit-by-commit
- consistent with the existing code style
- explicit about user-visible behavior changes
Please include:
- a short summary of the change
- why the change is needed
- how you tested it
- screenshots or terminal output for UI/CLI changes when helpful
npm install
npm run dev
node server.jsOr with Bun:
bun install
bun run dev
node server.jsThe frontend dev server runs on http://localhost:5173 and the local API/static server runs on http://localhost:3000.
- Frontend: TypeScript + React, 2-space indentation, single quotes, no semicolons in
src/ - Server: CommonJS, keep existing semicolon style in
server.js - Keep feature UI colocated under
src/components/features/ - Prefer small, targeted changes over broad cleanup refactors
- Release process:
RELEASING.md - Security reporting:
SECURITY.md - Conduct expectations:
CODE_OF_CONDUCT.md