Add downloadable PDF report for user survey responses #149
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
✨ Summary
This PR introduces a new feature allowing users to download a polished,
branded PDF report containing their survey responses.
The report is generated client-side using
pdf-lib, includes a moderndeveloper-friendly layout, and reflects the StateOfDev / GeeksBlaBla branding.
This closes a long-requested UX gap by giving respondents a personal,
shareable copy of their answers.
📄 Key Features
1. New
/my-responsespage2. Fully custom PDF generator
Built with
pdf-lib(no server required), including:🎨 Layout & Styling
🖼 Assets
StateOfDev.ma · GeeksBlaBlasignature (center)🔧 Utilities
sanitizeForPdf()to safely remove unsupported glyphs (emojis, exotic chars).wrapText()for accurate line wrapping using font metrics.🧪 Tests
A full test suite was added covering:
sanitizeForPdfwrapTextAll tests pass.
🔍 Lint & Type Safety
ts/unbound-methodandno-unsafe-*.🧭 How to Use
/my-responsespage displays your answers.📸 Preview (Structure Overview)
Here are some screenshots of the entire functionality from the Thanks page to the first page of the generated doc
🚀 Why This Matters
This feature significantly improves survey UX by:
✔ Ready for Review
Feedback welcome!
Happy to adjust layout, spacing, copy, or branding as needed.