4.0 KiB
📝 Description
Linked Issue: Fixes #
Required. Every PR must reference an approved issue. If no issue exists, open one and wait for maintainer approval before submitting a PR. Unsolicited PRs without a linked issue will be closed.
🏷️ Type of Change
- Bug fix
- New feature
- Enhancement to existing feature
- Refactor (no behavior change)
- Breaking change (existing functionality affected)
- Documentation update
🔧 Changes
🧪 Testing (MANDATORY)
PRs without this section filled out will be closed. "Tests pass" or "Tested locally" is not sufficient. You must provide specifics.
Manual testing steps you performed:
Regression testing:
Edge cases covered:
Test output:
Backend test output (./gradlew test)
PASTE OUTPUT HERE
Frontend test output (ng test)
PASTE OUTPUT HERE
📸 Screen Recording / Screenshots (MANDATORY)
Every PR must include a screen recording or screenshots showing the change working end-to-end in a running local instance (both backend and frontend). This means you must have actually built, run, and tested the code yourself. PRs without visual proof will be closed without review.
✅ Pre-Submission Checklist
All boxes must be checked before requesting review. Incomplete PRs will be closed without review. No exceptions.
- This PR is linked to an approved issue
- Code follows project style guidelines and conventions
- Branch is up to date with
develop(merge conflicts resolved) - I ran the full stack locally (backend + frontend + database) and verified the change works
- Automated tests added or updated to cover changes (backend and frontend)
- All tests pass locally and output is pasted above
- Screen recording or screenshots are attached above proving the change works
- PR is a single focused change (one bug fix OR one feature, not multiple unrelated changes)
- PR is reasonably scoped (PRs over 1000+ changed lines will be closed, split into smaller PRs)
- No unsolicited refactors, cleanups, or "improvements" are bundled in
- Flyway migration versioning is correct (if schema was modified)
- Documentation PR submitted to booklore-docs (if user-facing changes)
🤖 AI-Assisted Contributions
If any part of this PR was generated or assisted by AI tools (Copilot, Claude, ChatGPT, etc.), all items below are mandatory. You are fully responsible for every line you submit. "The AI wrote it" is not an excuse, and AI-generated PRs that clearly haven't been reviewed are the #1 reason PRs get closed.
- I have read and understand every line of this PR and can explain any part of it during review
- I personally ran the code and verified it works (not just trusted the AI's output)
- PR is scoped to a single logical change, not a dump of everything the AI suggested
- Tests validate actual behavior, not just coverage (AI-generated tests often assert nothing meaningful)
- No dead code, placeholder comments,
TODOs, or unused scaffolding left behind by AI - I did not submit refactors, style changes, or "improvements" the AI suggested beyond the scope of the issue