devedmonton / DES-Website

The Dev Edmonton Society website! We empower Edmonton Developers!
https://devedmonton.com
MIT License
22 stars 52 forks source link

[Feature Request]: Implement a Reverse Job Board for Dev Edmonton Society #357

Open amendez opened 1 month ago

amendez commented 1 month ago

Description: The idea is to create a reverse job board similar to what TampaDevs have for their community. This board will allow local developers to create profiles and enable local companies to find them. The project aims to leverage the existing Dev Edmonton Society infrastructure, minimizing the need for additional backend services and databases.

Goals:

  1. Enable local developers to create and manage profiles via GitHub pull requests.
  2. Allow local companies to search and filter profiles based on various criteria.
  3. Minimize maintenance by avoiding complex backend setups and databases.

Proposed MVP:

  1. Profile Creation:
    • Each interested developer will create a PR to the Dev Edmonton Society repository.
    • The PR will add a new JSON file in a specific folder, reducing the chances of conflicts.
    • JSON fields will include: name, technologies, part/full-time availability, seniority, title, description (Markdown format), badges, and photo URL.
  2. Serverless Functionality:
    • Utilize Netlify functions to read all JSON files from the folder and compile them into a single JSON file.
    • This compiled JSON will be served to the frontend, acting as an API.
  3. Frontend Integration:
    • Reuse the existing Nuxt.js frontend to display profiles.
    • Implement basic filtering options based on the JSON fields.
  4. Profile Review Process:
    • Review PRs to ensure correct usage of badges and validate information.
    • Potential for future automation or community involvement in the review process.
  5. Future Enhancements:
    • Companies registration system for additional functionalities (e.g., accessing profiles, sponsorship opportunities).
    • Explore options for student involvement from local institutions like UAlberta or NAIT.

Implementation Steps:

  1. Repository Setup:
    • Use the existing Dev Edmonton Society repository for this project.
    • Create a dedicated folder for profile JSON files.
  2. JSON Schema Definition:
    • Define the structure and required fields for the JSON profiles.
    • Create a template JSON file for contributors.
  3. Serverless Functions:
    • Develop a Netlify function to aggregate JSON files into a single JSON.
    • Ensure the function is triggered on changes to the profiles folder.
  4. Frontend Development:
    • Integrate the new API endpoint into the existing Nuxt.js frontend.
    • Implement filtering capabilities on the frontend.
  5. Documentation:
    • Write clear contribution guidelines for developers creating profiles.
    • Document the process for reviewing and merging PRs.
  6. Community Involvement:
    • Engage the community for feedback and involvement in the review process.
    • Consider partnerships with local educational institutions for project contributions.

Open Questions:

  1. Should the profile list be featured in the main navigation from the start, or added later once there are sufficient profiles?
  2. What additional fields or features would be valuable for local companies using the board?

Additional Notes:

Looking forward to your feedback and suggestions!