Code Monkey home page Code Monkey logo

jobbyjobjob's Introduction

Jobby Job Job

https://jobbyjobjob.net/

Build Status

Description

Jobby Job Job is a website that aggregates job postings from five different job boards. The job boards are remote only jobs. You can specify and search for different jobs. You can also view the original post.

Job posts are updated every hour using the Heroku scheduler to execute a rake background task. The rake task builds the posts and creates the search indexes.

Screenshot Time

Screenshot

Check out these job boards:

Building the project

Ruby Version: ruby 2.5.1 Rails Version: 5.2.1

$ git clone https://github.com/willywos/jobbyjobjob.git
$ cd jobbyjobjob
$ bundle install
$ rake db:create (postgres database)
$ rake db:migrate
$ rake db:seed
$ rails s

Grabbing Jobs

$ rake jobby_job:process_job_sites

Running within Docker

You can run this application on your machine without installing anything natively (besides Docker) by following these steps:

First command prompt:

docker-compose up

Second command prompt:

docker-compose run web rake db:setup

When finished, remember to run docker-compose down.

Submitting Pull Requests

  1. Fork the project
  2. Create a topic branch
  3. Implement your feature or bug fix
  4. Add tests for your feature or bug fix (if you want)
  5. Run $ rspec spec/ make sure tests pass.
  6. If your change affects something in this README, please update it
  7. Commit and push your changes
  8. Submit a pull request

Contributing

If you want to help me with this project, please just submit a pull request to fix a bug or add a feature, like another job board. I will probably accept it. If you don't, then I hate you.

This is a good project to work on if you want to do Hacktoberfest #Hacktoberfest. Check out this issue for some ideas or feel free to add to the list.

Thanks goes to all of these wonderful people, who already contributed to the project:

willywos
willywos

๐Ÿ’ป
OvidiuToma
OvidiuToma

๐Ÿ’ป
jereinhardt
jereinhardt

๐Ÿ’ป
efl7a
efl7a

๐Ÿ’ป
jakesorce
jakesorce

๐Ÿ’ป
r33beers
r33beers

๐Ÿ’ป
andersonfernandes
andersonfernandes

๐Ÿ’ป
ConnorBach
ConnorBach

๐Ÿ’ป
inqii
inqii

๐Ÿ’ป
ocristian
ocristian

๐Ÿ’ป
edmistond
edmistond

๐Ÿ’ป
chivoX
chivoX

๐Ÿ’ป
tripph
tripph

๐Ÿ’ป

This project follows the all-contributors specification.

(By clicking on ๐Ÿ“– you can see individual contributions)

jobbyjobjob's People

Contributors

andersonfernandes avatar chivox avatar connorbach avatar dependabot[bot] avatar edmistond avatar efl7a avatar jereinhardt avatar ocristian avatar oj-gh avatar ovidiutoma avatar rjbeers avatar tripph avatar willywos avatar wirtzdan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jobbyjobjob's Issues

Update mobile view to have filters above results

As a user who visits the site on their mobile device. The filters currently show below the job posts. It might be better to move it about and change the layout so they can span across to make it easier to click and view.

Add ability for users to update their profile and password

Currently on the site there is no way for a user to update their password. When a user logs into their account they should be able to go to settings and update password.

Settings should also include these new fields:

  • First Name
  • Last Name
  • Address
  • City
  • State
  • Zip
  • Phone Number
  • Profile Picture (this would connect to s3 with paperclip)
  • Website

These fields should be integrated into the resume builder and auto-populated when creating a new resume. Information will not be available to other users or users who are not logged in.

Update pagination to work with search items and filters

When a user clicks on a filter or enters a search term the pagination does not update. The links for the pagination do not retain the search results and goes back.

To Reproduce
Steps to reproduce the behavior:

  1. Go to home page
  2. Click on 'Rails'
  3. Notice pagination still is paginating on results from the home screen and does not update.
  4. Scroll down to 'the pagination links 1.2.3.4'
  5. Click on the number 2
  6. The link removes the filter or search item and you are back to seeing all jobs.

Expected behavior
When a user searches or clicks on a filter the pagination should update to reflect how many pages/posts there are based on the users search result or filter.

Screenshots
image

Add ability to remove an item from the view history.

On the right side of the postings page it lists the items that you previously viewed. It might be nice to add a delete action because the list can get rather long. It might also be nice to only show 10 of last viewed items.

image

Background job to pull jobs from removes older saved jobs

There is a background job that runs on a heroku scheduler that calls the rake task rake jobby_job:process_job_sites. This basically removes that are a month old and pulls them from the job boards. The removal of older postings is done to keep the database from getting very large.

To Reproduce
Steps to reproduce the behavior:

  1. Run $ rake jobby_job:process_job_sites
  2. Create a user and login
  3. Scroll down to the last jobs and save some
  4. Run $ rake jobby_job:clear_job_sites
  5. Click on My Jobs and the jobs are gone.

Expected behavior
My Jobs should not be removed.

Additional context
I think the best option is to change how jobs are saved. Maybe updating the saved_jobs table to store the job posting information instead of the reference to the id of the job post. This way all the data is still saved and can be queried against. Then updating the My Jobs page to pull job postings from the information saved in saved_jobs.

Add RSS and JSON formats

When a user goes to the index of the website there should be a way to pull data via RSS and JSON formats. This should be handled by the request format.

The JSON and RSS should include fields from the job posting and be ordered by the publish date in descending order so newest items show first.

  • Title
  • Logo/Image
  • Description
  • Publish Date
  • Company
  • Job Board
  • URL

Users should also be able to view the individual posting in this format.

http://localhost:3000/?format=json
http://localhost:3000/?format=rss

http://jobbyjobjob.net/post/28133.json
http://jobbyjobjob.net/post/28133.rss

http://localhost:3000/?utf8=%E2%9C%93&query=ruby&format=json
http://localhost:3000/?utf8=%E2%9C%93&query=ruby&format=rss

JSON format should follow the JSON API

The pages should include a link in head of the html with the link to the rss feed.

<link rel="alternate" type="application/rss+xml" title="Subscribe to Jobby Job Job Feeds" href="http://localhost:3000/?format=rss" />

There should also be a link to the rss feed on the top right side under the view history with a link for users to subscribe to the feed. The links should point to the individual feeds for rss and json.

image

Please let me know if you have any questions.

Update email layout

The emails that get sent out from the site that are generated from Devise, the authentication library are very plain. They could be updated to make them a little nicer.

Here is an example of the forgot password email:

image

Somethings to add to the email are:

  • Include "JobbyJobJob" in the subject so users know what site it is
  • Better welcome message
  • Logo or Image identifying the site so users know where it is
  • Expiration Information
  • Who requested the reset? (IP Address? User Agent?)
  • Contact Support information (which is just my email I guess)

Other emails that needed added

  • Sign Up Registration Welcome Email
  • When a user changes their password (which is handled in another issue)

Emails should be from: [email protected]
My email is: [email protected]

Hacktoberfest 2018

This is a good project to work on if you want to do Hacktoberfest #Hacktoberfest Some things that might be fun to work on:

  • Adding ability to login to save jobs.
  • Adding your resume.
  • Add stackoverflow jobs.
  • Add some cool graphics that look like they are from the 80's.
  • Update the layout for the job post so it looks nicer.
  • Fix typos or grammer
  • Add the source for the job post to the listings on the home page.
  • Fix menu in mobile

Fix company logos so they don't look skewed.

Some of the company logos that show on the site do not look good and appear to be skewed.

screenshot 2018-10-09 09 42 12

To Reproduce
Steps to reproduce the behavior:

  1. Go to main website
  2. Click on 'rails' on the sidebar
  3. Scroll down to 'Senior Rails engineer' (attached screenshot)
  4. See image of the logo is skewed.

Expected behavior
The image should show up and not look skewed and look like the other images that show up correctly.

Provide a company page

Provide a company page for users to be able to view postings by a company.

When a user views a job posting or views the posting on the index, search or job posting view the company will have a link to a new company page.

image

image

The company page should include:

  • The name of the company
  • List any job postings by that company (like it does on the index)
  • There should include a back button in the top right.
  • The results should also be paginated
  • The postings should be available in rss and json like on the index.

image

Additional Features

  • Integrate with Glassdoor (if possible) to provide feedback about the company.
  • Provide a link to the company website (this may not be possible because the postings don't always include a link to the company site)
  • Add filter for the postings

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.