Skip to content

#151 Backend: Implement "Save Job" functionality#306

Merged
soomtochukwu merged 27 commits intoDXmakers:mainfrom
A5cend-dev:feat/save-job-functionality
Apr 29, 2026
Merged

#151 Backend: Implement "Save Job" functionality#306
soomtochukwu merged 27 commits intoDXmakers:mainfrom
A5cend-dev:feat/save-job-functionality

Conversation

@A5cend-dev
Copy link
Copy Markdown
Contributor

Summary

This PR implements the full Save Job functionality, allowing users to save jobs, remove saved jobs, and fetch saved jobs seamlessly.

Changes Made
Added saved_jobs table with:
id
job_id
user_address
note (optional)
created_at
Added unique constraint on (job_id, user_address) to prevent duplicate saves
Created backend API routes:
POST /v1/jobs/:id/save
DELETE /v1/jobs/:id/save
GET /v1/users/:address/saved-jobs
Added Rust models:
SavedJob
SaveJobRequest
Installed and configured @tanstack/react-query
Added API methods for:
save job
unsave job
fetch saved jobs
Created SaveJobButton component with:
glassmorphism UI
optimistic updates
smooth interactions
mobile responsiveness
WCAG-friendly states
Added Zod validation for optional note field
Mounted component on jobs/[id]/page.tsx
Added Vitest tests with 80%+ coverage
Verification
npm test
cargo test
Manual save/unsave testing
Database persistence verification

Closes #151

@drips-wave
Copy link
Copy Markdown

drips-wave Bot commented Apr 25, 2026

@A5cend-dev Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@soomtochukwu soomtochukwu merged commit b09d999 into DXmakers:main Apr 29, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Backend: Implement "Save Job" functionality

2 participants