Skip to content

[Feature]: Project Recommendation Service #185

Description

@SudiptaPaul-31

🔍 Problem Statement

Description

Create a backend service that recommends relevant projects to freelancers based on their profile. Recommendations should leverage skills, previous projects, budget preferences, and project categories to improve discovery and matching.


Considerations

  • Skills — match freelancer skill tags with project requirements.
  • Previous projects — prioritize projects similar to past successful work.
  • Budget — align recommendations with freelancer’s preferred budget range.
  • Project category — filter by categories relevant to freelancer expertise.

Tasks

  • Design recommendation algorithm — combine weighted factors (skills, history, budget, category).
  • Implement efficient database queries — use indexes and optimized joins for scalability.
  • Add pagination support — return results in chunks for large datasets.
  • Fallback logic — when insufficient matching data exists, recommend recent or trending projects.
  • Expose API endpoint — provide a REST/GraphQL endpoint for fetching recommendations.
  • Add caching layer — reduce load for frequently requested recommendations.
  • Include logging/metrics — track recommendation quality and query performance.

Acceptance Criteria

  • Paginated recommendations — API returns results in pages with metadata (totalCount, hasMore).
  • Efficient database queries — recommendations load quickly even under high traffic.
  • Fallback to recent projects when insufficient matching data exists.
  • Consistent results across sessions — same profile yields stable recommendations.
  • Secure access control — only authenticated freelancers can request recommendations.
  • Unit/integration tests included — validate algorithm correctness and performance.

📈 Expected Impact

High — Would significantly improve user experience

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions