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.
- 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 never moves photos and never writes the owner's words into a photo file: tags, people and wording live in the phone's copy and in the owner's index. A photo file is changed only when the owner saves an edit over the original in the photo editor, and deleted only when the owner asks, after the app's own warning.
- A vulnerability is reported privately to support@opensolr.com, not in a public issue.
The project structure explains every folder, where to change something says which file each kind of change goes in, and building from source gets the app onto your phone.