Add CSV/JSON export functionality for filtered project issues
- Dominant language
- Python
- Stars
- 451
- Forks
- 707
- Avg merge
- 22h 59m
- Merged PRs (30d)
- 91
Description
### Problem
Currently, users can view and filter issues across OWASP projects, but there's no way to export this data for offline analysis or reporting purposes.
### Proposed Solution
Add an export feature that allows users to download filtered issue lists in CSV or JSON format directly from the issues page.
### Benefits
- Project leaders can analyze issue trends offline
- Better reporting for GSoC and mentorship programs
- Contributors can track their contribution history
- Enables data-driven project health analysis
- Useful for creating reports and presentations
### Implementation Scope
**Frontend:**
- Add "Export" button with format dropdown (CSV/JSON) on issues page
- Implement client-side export logic with proper file download
- Show loading state and success notifications
- Maintain current filter state during export
**Backend:**
- Create new API endpoint: `GET /api/v1/modules/{module_key}/issues/export`
- Support query parameters: `format`, `state`, `labels`
- Implement CSV serialization with proper headers
- Add rate limiting (max 1000 issues per request)
**Export Fields:**
- Issue number, title, state, labels
- Assignees, author
- Created date, updated date
- URL, repository name
### Technical Details
- Use `papaparse` for CSV generation
- Include timestamp in filename: `nest-issues-YYYY-MM-DD.csv`
- Proper MIME types for downloads
- Respect existing filters and pagination
### Acceptance Criteria
- [ ] Export button visible on issues page
- [ ] Both CSV and JSON formats work correctly
- [ ] Export respects current filters
- [ ] Files download with proper naming
- [ ] Rate limiting prevents abuse
- [ ] Unit tests for export functionality
- [ ] Mobile-responsive design
### Files to Modify
- `frontend/src/app/mentorship/[programKey]/[moduleKey]/issues/page.tsx`
- `frontend/src/components/IssuesTable.tsx`
- `frontend/src/utils/exportUtils.ts` (new)
- `backend/apps/mentorship/api/routes.py`
- Add corresponding tests
### Labels
`enhancement`, `good-first-issue`, `frontend`, `backend`, `api`
### Estimated Effort
4-6 hours for intermediate developer
### Additional Notes
This feature would complement the existing search and filter capabilities, making Nest more useful for project management and reporting workflows.
Contributor guide
Assessment
This issue has not been assessed yet.