Problem
Users can save code to Firestore history, but there is no way to bulk export their saved files or share them externally. Users who want to backup their work, submit assignments, or share solutions must manually copy-paste each file individually.
Proposed Improvement
Add export functionality to the History Panel allowing users to download all saved code as a structured .zip file or publish directly to GitHub Gist. The feature should:
- Add "Download as ZIP" button to
HistoryPanel.jsx exporting all saved files with original filenames
- Add "Publish to Gist" button creating a public/private GitHub Gist via GitHub API
- Preserve language file extensions (.py, .js, .cpp, etc.) in the export
- Include a metadata JSON file with save timestamps and language info
- Show export progress and success/error toasts
- Respect GitHub Gist's 100-file limit with pagination warnings
Expected Impact
- Better user experience with portable code backups
- Improved accessibility for students submitting coursework
- Higher usability for developers sharing code snippets
- Better long-term scalability with pluggable export providers
Possible Implementation
- Add
exportHistory.js utility in src/utils/ using JSZip for .zip generation
- Add
gistService.js in src/services/ for GitHub Gist API integration (OAuth token from user)
- Extend
HistoryPanel.jsx with export action buttons and progress modal
- Add
ExportProgressModal component with progress bar and cancel option
- Store GitHub OAuth token encrypted in localStorage (reuse existing AES-GCM pattern)
- Add
GITHUB_GIST_API_URL to environment config
- Write tests for ZIP generation, Gist creation, and error handling (network failure, auth failure)
I'm GSSoC'26 contributor, Please assign this task to me!
Problem
Users can save code to Firestore history, but there is no way to bulk export their saved files or share them externally. Users who want to backup their work, submit assignments, or share solutions must manually copy-paste each file individually.
Proposed Improvement
Add export functionality to the History Panel allowing users to download all saved code as a structured .zip file or publish directly to GitHub Gist. The feature should:
HistoryPanel.jsxexporting all saved files with original filenamesExpected Impact
Possible Implementation
exportHistory.jsutility insrc/utils/using JSZip for .zip generationgistService.jsinsrc/services/for GitHub Gist API integration (OAuth token from user)HistoryPanel.jsxwith export action buttons and progress modalExportProgressModalcomponent with progress bar and cancel optionGITHUB_GIST_API_URLto environment configI'm GSSoC'26 contributor, Please assign this task to me!