OperationCode / operationcode_frontend

Front-end repository for live site. Please go to `front-end` repo to contribute instead.
https://operationcode.org
MIT License
101 stars 223 forks source link

Display featured jobs on Jobs Page #982

Closed jjhampton closed 6 years ago

jjhampton commented 6 years ago

Feature

Why is this feature being added?

To highlight specific job opportunities for both our community, and potential funders. If we can spotlight specific job opportunities, specifically ones that we can provide a direct reference for, we could help get vets into jobs a bit more easily.

What should your feature do?

We are still scoping this out, so the following requirements are in flux. @hollomancer @ksmacleod99 @dmarchante please add anything else from recent Slack discussion:

MVP:

Post-MVP Ideas:

hpjaj commented 6 years ago

@jjhampton - re:

@hpjaj How difficult would it be to add a table to the DB for 'job postings', so we could perform CRUD actions on sponsored job postings as described above via Admin Dashboard?

Np at all.

  1. What attributes would you be looking for on a JobPosting db table?
  2. Would there be any relationships to any other db tables?

Wondering if that data could be exposed via API to a front-end React component, which could fetch them via http call and then display on our page.

Can you pls expand on this? Do you just mean endpoints that the BE exposes to the FE for the CRUD actions? If yes, np.

cc: @hollomancer

jjhampton commented 6 years ago

@hpjaj re: 'Can you pls expand on this? Do you just mean endpoints that the BE exposes to the FE for the CRUD actions?' - Yes, that's correct. Mainly an API endpoint to GET featured/highlighted Job Openings, so the FE can then display them on the page. I'm envisioning the other CRUD actions (create, update, delete) could be handled via Admin Dashboard.

hpjaj commented 6 years ago

@jjhampton - Gotcha. Questions for you:

  1. What attributes would you be looking for on a JobPosting db table? Here are some ideas. Additions/removals/changes?
    • title
    • source
    • location
    • description
    • status (i.e. active, inactive)

We could also associate a job with tags. i.e. a job could be tagged with JS, ruby, rails, Java, etc. etc.

  1. Would there be any relationships to any other db tables?
jjhampton commented 6 years ago

@hpjaj

re: 1) 'What attributes would you be looking for on a JobPosting db table'? Those attributes you suggested look pretty good for a minimal set of requirements.

For location, perhaps we could have individual city/ locality / country attributes instead for eventual sorting/filtering/searching? (example: 'Detroit', 'Michigan', 'USA').

Is source the organization which is sponsoring the Job Opening and requesting it to be posted on our board?

We could probably also use a url that would link to an external website of the sponsor where they could list additional details.

I'm thinking that description could be a "catch-all" attribute that sponsors could use to display any additional info of their choosing, things like compensation, benefits, employment type, job requirements, etc. If any of those pieces of data seem to repeat themselves, we can move them to separate attributes later.

re: 2) 'Would there be any relationships to any other db tables?' - not sure about this myself - cc @hollomancer @ksmacleod99

jjhampton commented 6 years ago

@hpjaj re: Tags for specific jobs types (JS, Java, Ruby, etc) - That could also be useful, we can plan to do that for now, too.

For the back-end side of things, if it's helpful, we can first develop a purely static FE client-side MVP of this feature, before we go into detail on adding in back-end DB & API implementations. During that process, we may discover some other data types that we need to add.

hpjaj commented 6 years ago

@jjhampton @hollomancer - What is the priority level for this feature set?

If the priority level is low, and since this is not fully teased out yet, it would make sense to hold off on any BE work until the client-side MVP is in place.

If the priority level is higher, they can be done in parallel, and I can create an issue (or update https://github.com/OperationCode/operationcode_backend/issues/363) for a contributor to get started with what we have discussed here.

If the priority level is high, I can do the above, as well as do the work myself.

Thoughts?

hollomancer commented 6 years ago

My gut reaction is to replicate the data model Ziprecruiter currently has as an MVP. Priority level is a bit higher, as we were discussing getting a design for the client-side MVP started by the end of this week.

hpjaj commented 6 years ago

np, I'll take care of it myself. We can always update the db table, if/when needs be.

jjhampton commented 6 years ago

Self-assigning, I'm going to start work on creating a rough design for this tomorrow night.

jjhampton commented 6 years ago

Rough draft design - listing out the 'Featured Jobs' above the searchable 'Search All Jobs' area:

selection_056

kylemh commented 6 years ago

looks great to me!

hollomancer commented 6 years ago

Perfect!

dmarchante commented 6 years ago

@jjhampton how are we looking on this?

dmarchante commented 6 years ago

Also @hollomancer is this truly a high priority? @hpjaj have you built out the BE for this?

hpjaj commented 6 years ago

@dmarchante - BE PR is in progress: https://github.com/OperationCode/operationcode_backend/issues/365

jjhampton commented 6 years ago

@dmarchante The front-end PR for the MVP is finished, but unmerged (displaying static data hardcoded in front-end, not fetching from API for the BE PR mentioned above) - see #985 .

However, it's marked as 'Blocked' because we're holding off on it until we actually get some Featured Jobs to display there. The POCs for that is @ksmacleod99 .

hollomancer commented 6 years ago

Getting the copy ready for this.

Future implementation reference; https://www.npmjs.com/whoshiring

hollomancer commented 6 years ago

First entries;

Gitlab Technical Product Marketing Manager - https://jobs.lever.co/gitlab/022890d6-549a-48fe-8891-51c13b8d1137 Senior Database Engineer - https://jobs.lever.co/gitlab/8b711f1c-d378-4383-a027-bac550aeee6d Field Marketing Manager - APAC - https://jobs.lever.co/gitlab/f53275a2-bac6-43c8-9a7f-a1d3021c9521

jjhampton commented 6 years ago

Closed via #985