Thank you for contributing to HifzLink.
- Clone the repo.
- Run the app:
go run ./cmd/server- Run checks before opening a PR:
gofmt -w ./cmd ./internal
go test ./...
go run ./scripts/validateIf your PR updates Quran text data, regenerate from source:
go run ./scripts/import
go run ./scripts/validateGood first contributions:
- improve verse relation browsing
- improve readability/accessibility of Arabic text UI
- add tests for parser, relation logic, and handlers
- improve docs and examples
- keep changes focused and small
- explain user impact in PR description
- update docs when behavior changes
- update
CHANGELOG.mdfor user-visible changes
When working with data/quran.json:
- do not alter Quran text content
- preserve UTF-8 Arabic text and diacritics
- include source attribution updates in
NOTICE.md
Required validation before merge:
6236ayah records- unique
(surah, ayah) - non-empty
text_ar
Use concise imperative messages, for example:
Add surah names to API responseFix compare page ayah headingDocument dataset attribution requirements
Do not include AI attribution trailers such as:
Co-authored-by: Claude ...Generated with Claude CodeCo-authored-by: ChatGPT ...Generated by <AI tool/model> ...
Before push, run:
./scripts/check-commit-attribution.sh HEADIf blocked, fix with:
# latest commit
git commit --amend
git push --force-with-lease
# older commits
git rebase -i <base-commit>
git rebase --continue
git push --force-with-lease