Thanks for taking the time. Bug reports, corrections to the maths and small focused pull requests are the most useful things you can send.
git clone https://github.com/<you>/OrbitView.git
cd OrbitView
npm install # also copies Cesium's static files
npm run devSpace-Track credentials are optional; see docs/CONFIGURATION.md.
Before opening a pull request:
npm run check # tsc, eslint, jest — all must pass with no warnings
npm run buildThis is the part I'm strict about. If you change anything in src/lib that
produces a number shown to users:
- Say where the method comes from (book, paper, standard) in the file's header comment.
- Add a test that compares against something independent — a numerical
derivative, a brute-force search, a published value — not just "it returns
a number".
src/lib/__tests__/science-regressions.test.tshas examples. - Update THEORY.md and docs/validation.md if the method or a tolerance changes.
- TypeScript strict. No
any; if a library type is wrong, narrow it locally and say why. - Components read stores with selectors (
useAppStore(s => s.x)), never the whole store. The simulation clock changes several times a second. - Cesium objects are created and destroyed in effects, never in render.
- Every visible string goes through
t()and exists in bothmessages/en.jsonandmessages/tr.json. - Missing data is shown as "—". Don't put placeholder numbers on screen.
- Comments explain why. Match the density of the file you're editing.
If you change the UI, retake the screenshots:
npm run dev # in one terminal
npm run docs:snap # in another; writes docs/img/*.png
npm run brand # if the social preview should change too- One topic per pull request.
- Conventional Commits for messages:
fix(science): …,feat(ui): …,docs: …. - Describe what you tested and how.
Include the version (Settings → About), the browser, what you did, what you
expected and what happened. A ?sat=…&t=… link (Data card → Copy link)
reproduces the exact object and moment, which helps a lot.
Security issues: see SECURITY.md instead of opening an issue.