Opensolr Photos is open source because we want it to get better in more hands than ours. Bug reports, fixes, features and documentation are all welcome.
Become a contributor
To join Opensolr Photos, or any other Opensolr open source project, write to support@opensolr.com. Tell us who you are, which project, and what you would like to work on. Anyone can open issues and pull requests on GitHub without asking first.
- Open an issue on GitHub describing the bug or the idea, so nobody does the same work twice.
- Fork the repository and create a branch for that one change.
- Make the change, following the conventions below, and build it (
./gradlew assembleDebug) with no new warnings. - Try it on a real phone: sign in, sync, search, and whatever your change touches.
- Update the documentation in
docs/in the same pull request when behaviour changes. - Open a pull request saying what changed, why, and how you checked it.
- Kotlin official style, 4-space indentation.
- Documentation comments only: every class and function has a KDoc comment saying what it does and why; no comments inside function bodies. If a line needs explaining, give it a function with a good name.
- Keep the layers: screens never talk to the network,
net/never touches the UI, and a photo's id is only ever computed byMediaScanner.photoId(). - No new dependency without a reason in the pull request, and never one that sends data anywhere.
- The design stays flat: two-pixel corners, one accent colour, hairlines instead of shadows, text no smaller than 14.
- No attribution to code generators in commits, comments or documentation.
- User text reaches Solr only as a bound parameter; filter values only through the term parser with a bound value.
- Secrets are stored only through
SecureStore, and never logged, never put in a URL. - HTTPS only; no redirects followed on credentialed calls.
- No analytics, advertising, tracking or crash-reporting code, ever.
- The app only reads photos; it never writes, moves or deletes them.
- A vulnerability is reported privately to support@opensolr.com, not in a public issue.
The project structure explains every folder and where each kind of change goes. Building from source gets the app onto your phone.