Thanks for your interest. This is a community project and all contributions are welcome.
- Bug reports — open a GitHub issue using the bug report template
- Feature requests — open an issue using the feature request template
- Code — fix a bug or build a feature, then open a pull request
- Fruit data — use the app and add trees in your area
See README.md for full setup instructions. The server is organized as server/controllers (HTTP: auth.js, pinsController.js, index.js), server/schemas (DynamoDB: users.js, pins.js, …), and server/utils. For more, see docs/ARCHITECTURE.md and docs/SECURITY.md.
npm testTests use Node's built-in test runner (no extra dependencies). They cover server-side validation utilities and client-side auth helpers. A pre-commit hook runs npm test automatically when you commit.
If you add new utility functions, please add corresponding tests in tests/.
- Fork the repo and create a branch from
main - Run
npm run devto work locally - Run
npm testand make sure all tests pass - Test on desktop and on narrow mobile (360px width; for very small devices also try 480×854, e.g. Unihertz Jelly Star class screens)
- Open a PR with a clear description of what changed and why
All PRs must pass CI checks and receive a review from the repo owner before merging.
- Lowercase variable and function names (matches existing style)
- React class components (no need to convert to hooks)
- CSS changes should be checked at 480px and 360px breakpoints
Open an issue and include:
- What you expected vs what happened
- Steps to reproduce
- Device and browser (especially relevant for layout issues)