turingschool-projects / lookingfor Goto Github PK
View Code? Open in Web Editor NEWHello, is it me you're looking for?
Hello, is it me you're looking for?
As a user viewing a company show page, we should be able to see the company name, basic company information and a list of all jobs related to that company.
Acceptance Criteria:
Technologies set on jobs only match direct matches
raw_technologies
on a job has 'angular' and there is an 'angular' technology in db - there's a match... but if the raw_technologies
has angular.js it won't be tagged as relating to angular.Acceptance Criteria:
Concern:
Resources:
This one off rake task might help with the regex matching
Acceptance Criteria:
Size: 3
We Work Remote features remote jobs postings. They often have job postings that Stack Overflow doesn't have, so we need a scraper to pull in the job postings.
Acceptance Criteria:
Resources:
https://weworkremotely.com/categories/2-programming/jobs.rss
If you run Job.pluck(:location).uniq
you'll find some odd locations. We should investigate how these locations are being created by looking at the job titles and beefing up testing.
Acceptance Criteria:
Authentic Jobs has an API that may have jobs that we can use. We would like to have a scraper to pull in the job postings.
Acceptance Criteria:
Resources:
https://authenticjobs.com/api/
Concerns:
Many APIs rate limit usage. How do we make sure our application doesn't hit those rate limits?
Concerns:
Size: 1
Acceptance Criteria:
Resources:
Either external or internal?
Links to GlassJobs
Other ways to beef up company information
Information on the interview process
Acceptance Criteria:
Size: 3
Currently the Stack Overflow service tests only cover a small section of the service - and don't test with real data.
Acceptance Criteria:
Resources:
Check out the Sinatra app that handles remote requests in /spec/support
https://robots.thoughtbot.com/how-to-stub-external-services-in-tests
In order to evaluate how our application is performing, we'll need to expose it to heavy load. To do this, we will be responsible for implementing a load-testing script which exercises the production application.
Your load script can be provided as a separate project/repository with its own structure and set of dependencies, or included in the existing application as a rake task or other executable script.
The goal of this script is to exercise as many of the application's endpoints as possible. The evaluation rubric for this coverage will be based on the required user paths listed below:
Acceptance Criteria:
Size: 3
Acceptance Criteria:
With all the records we're handling now, it won't be feasible to simply render a list of every item that's for sale. On any page that includes a "list" of items (Index, Tags, etc), add a Pagination interface that allows users to:
Click through a numbered list of pages
See which page they're currently on
Go to the first page
Go to the last page
Go to the next page
Go to the previous page
Size: 3
Docker is so hot right now.
But do we need to use container technology for this project?
ACs:
https://docs.docker.com/compose/rails/
http://www.zdnet.com/article/what-is-docker-and-why-is-it-so-darn-popular/
https://www.ctl.io/developers/blog/post/what-is-docker-and-when-to-use-it/
Size: 8
Note: Required #37 be fixed prior to work
Users should be able to query job postings by their location. ie if they are looking in North Carolina, they should be able to scope the job postings by this location.
Unsure how to implement this as location is not always accurate or uniform.
Fix could be beefing up uniformity of location on jobs OR some kind of elastic search across the contents of title and description OR kick off a background worker to do this string search and output a csv ๐จ
Size: 3
Right now we can run our job fetcher by typing heroku run rake job_fetch:stackoverflow
- which is cool... but we're programmers and we should probably automate this.
Acceptance Criteria:
Note: Relates to #38
Users should be able to search for companies
Acceptance Criteria:
ThougHtbot
should return Thoughtbot
recordThought
should return Thoughtbot
Reach Goal:
The ideal implementation for this feature would remove the requirement to submit the search and instead have fuzzy matches appear in a drop down below the search field on key release.
Size: 5
Acceptance Criteria:
Review the documentation from Amber in BaseCamp
Create and document creating a Docker container for the Rails app
Document the deployment of the Rails app (on either Digital Ocean or Heroku)
Document multi-app deployment using Docker
Reach goal:
Actually deploying both the React Client and Rails App together
Size: 3
React is so hot right now.
But do we need it for LookingFor?
And how, of the many ways we could integrate React, would we want to do it?
ACs:
https://github.com/reactjs/react-rails
https://medium.com/@alexfedoseev/isomorphic-react-with-rails-part-i-440754e82a59#.rukej9jwn
Size: 5
In addition to handling heavy request load from users, our applications will need to handle database load against a db with large numbers of records. To do this, we'll need to seed the various tables in our DBs with lots of records.
Writing your seed script won't be too difficult, but running it can take some time, so it's recommended that you get started on this part early. Additionally, Ryan Bates' Populator Gem may be worth a look.
Acceptance Criteria:
Choice 1
Choice 2
Would like an endpoint to show individual jobs so we can access it using the id (api/v1/jobs/2). Thanks!
CORS - cross origin resource sharing.
We would like to hit the heroku API endpoint with our app, but we are unable to access it currently.
Chelsea set this up previously with a 'rack-cors' gem and David Whitaker just implemented this on his app, so they would be good resources.
Acceptance Criteria:
Relates to #65
Information on the interview process
Acceptance Criteria:
New Relic free account may not give us the information we need for database load testing, so we may need to either bring in another service (Skylight?) or pay for an account for a month or so to get the data we need.
Acceptance:
Breakdown what New Relic provides with both types of accounts compared to what we need
Compare with other services, including what time would be needed to reimplement those services
Provide a recommendation on which service would be best for database load testing and potentially future projects related to response time, etc.
Dependencies: #9
Acceptance Criteria:
As a part of this project, the illustrious Pat Wey created a gem to encapsulate the We Work Remote functionality.
We should consider using this gem.
Pros:
Cons:
Acceptance Criteria:
Either gem is used and internal service is scrapped or decision is made to keep internal service
Concerns:
Angellist has an API that may have jobs that we can use. We would like to have a scraper to pull in the job postings.
Acceptance Criteria:
Resources:
https://angel.co/api/spec/jobs
Concerns:
Many APIs rate limit usage. How do we make sure our application doesn't hit those rate limits?
Acceptance Criteria:
With all the records we're handling now, it won't be feasible to simply send a list of all jobs from the endpoint. The API will need to be scoped to having pages of results
Resources:
http://stackoverflow.com/questions/30229898/rails-api-gem-pagination
We may be able to use some additional APIs to scrape. Some potential sources might be LinkedIn, Github, Dice. These services may not, however, allow us to use them or be feasible to use.
Acceptance Criteria:
Evaluate above services for their viability.
If any are...
Write up an issue with acceptance criteria
If any aren't...
Document why in the Basecamp for the project
Concerns:
We want to make sure our tests are always in a passing state without having to run them.
Acceptance Criteria:
Resources:
https://travis-ci.org/
http://circleci.com
http://codeship.com
https://drone.io/
http://wercker.com/
Concerns:
Should be a stable service that's easy to use and integrate. Should also be free.
Searching for Go jobs is difficult in Authentic Jobs and StackOverflow since they are essentially searching the title and description for the word 'go'
Acceptance Criteria:
Size: 5
APIs change frequently. Very frequently.
Our app should notify us in some way if we start creating Jobs with missing locations, for example. Or if a StackOverflow scrape returns no jobs. While these things may not be 'errors' (we don't want the app to fall over) we should have a window into them.
Acceptance Criteria
Resources:
These notices could live in a page on the LookingFor site that track metrics - they could use a SlackBot to talk to a room in slack to update metrics - they could send an email to maintainers with weekly metrics, etc.
As a user viewing a job show page, we should be able to see the company name (with link to company show if exists), basic job information.
Acceptance Criteria:
Size: 3
The WeWorkRemotely service tests don't test with real data!
Acceptance Criteria:
Resources:
Check out the Sinatra app that handles remote requests in /spec/support
https://robots.thoughtbot.com/how-to-stub-external-services-in-tests
Size: 1
Acceptance Criteria
The project will be expected to comfortably handle several hundreds of requests per minute. We will use New Relic to judge the following:
4: Average response time below 100ms with 600+ RPM
3: Average response time below 200ms with 400+ RPM
2: Average resposne time below 400ms with 300+ RPM
1: Average response time above 400ms, or unable to handle 300 RPM
Needs more info
User Can Sign Up and Get a Regular Email Summary
Concerns:
Should the user sign up for an account OR just add an email that gets emailed by the service.
How frequently should the email go out?
What service would we use to send the emails?
If we don't use a service, how do we handle unsubscribe.
Can we make it a spoken word reading call?
Would be good to have this data normalize - Relates to #37
Size: 5
Acceptance Criteria:
Resources:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.