Skip to content

Implement Job Filtering and Search Functionality #41

@AhmedFatthy1040

Description

@AhmedFatthy1040

Issue Title: Implement Job Filtering and Search Functionality

Issue Description:

As a freelancer, I want to filter and search for job postings based on specific criteria so that I can quickly find relevant opportunities that match my skills and preferences. This functionality should allow users to filter jobs by various parameters and perform keyword searches.

Tasks:

  1. Implement Job Search Endpoint:

    • Create an endpoint to allow freelancers to search for jobs using keywords.
    • Support searching by job title, description, and other relevant fields.
  2. Implement Job Filtering:

    • Create filters for the following criteria:
      • Job type (Hourly, Fixed)
      • Budget range
      • Job status (Open, In Progress, Completed, Cancelled)
      • Creation date range
  3. Combine Search and Filter:

    • Create a single endpoint that supports both search and filter criteria, allowing freelancers to retrieve a filtered list of jobs based on their input.

Acceptance Criteria:

  • Job Search:

    • Freelancers should be able to make a GET request to /jobs/search with query parameters for keywords.
    • Return 200 OK with a list of matching jobs or 204 No Content if no jobs are found.
  • Job Filtering:

    • Freelancers should be able to make a GET request to /jobs/filter with query parameters for different filtering options.
    • Return 200 OK with a list of filtered jobs or 204 No Content if no jobs match the criteria.
  • Combined Search and Filter:

    • Freelancers should be able to make a GET request to /jobs with both search and filter parameters.
    • Return 200 OK with a list of jobs that match the search and filter criteria.

Endpoint Specifications:

  • Job Search:

    • Method: GET
    • URL: /jobs/search
    • Query Parameter Example:
      ?keywords=developer
      
  • Job Filtering:

    • Method: GET
    • URL: /jobs/filter
    • Query Parameter Example:
      ?job_type=Hourly&min_budget=10&max_budget=100
      
  • Combined Search and Filter:

    • Method: GET
    • URL: /jobs
    • Query Parameter Example:
      ?keywords=developer&job_type=Hourly&min_budget=10&max_budget=100
      

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions