Add Resume and Receipt Upload to Profile Page
Overview
Update the profile page to allow users to upload their PDF resume and receipts for hackathon reimbursement, utilizing our existing Google Cloud Storage infrastructure.
Requirements
- Add file upload fields for resume (PDF only) and receipts (PDF/JPG/PNG)
- Implement client-side file validation
- Update backend API to handle file uploads
- Store uploaded files in existing Google Cloud Storage bucket
- Display uploaded file names and allow deletion
Frontend Tasks
UI Mockup
- Users can upload 1 resume PDF and multiple receipt files
- Uploaded files are stored securely in GCS and linked to user profile
- Users can view and delete uploaded files
- Invalid file types/sizes are rejected with error message
- Files are stored in appropriate GCS folders based on user ID and file type by calling backend
Backend Tasks
Backend API Changes
POST /api/profile
- Accept
multipart/form-data
- New fields:
resume, receipts[]
DELETE /api/profile/files/{fileId}
- Delete specific uploaded file from GCS and database
Google Cloud Storage Integration
- Use existing GCS bucket:
ohack-user-uploads (or specify actual bucket name)
- Store files in user-specific folders:
{user_id}/resume/ and {user_id}/receipts/
- Generate signed URLs for secure file access
Add Resume and Receipt Upload to Profile Page
Overview
Update the profile page to allow users to upload their PDF resume and receipts for hackathon reimbursement, utilizing our existing Google Cloud Storage infrastructure.
Requirements
Frontend Tasks
Profile.jscomponenthandleFileUploadfunction usingFormDataUI Mockup
Backend Tasks
Backend API Changes
POST /api/profile
multipart/form-dataresume,receipts[]DELETE /api/profile/files/{fileId}
Google Cloud Storage Integration
ohack-user-uploads(or specify actual bucket name){user_id}/resume/and{user_id}/receipts/