Using the Github Archive API, create a command-line tool to find popular repos to add lots of hipster acronyms to your resume!
It should support a date range in the past in case time travel becomes possible and you decide to go back and learn different things.
You should use Ruby or Javascript based on the role you are being considered for.
Given the date range, you'll collect event data from the Github Archive and give each repo a popularity score.
- Activity archives are available starting 2/12/2011.
- Activity archives for dates between 2/12/2011-12/31/2014 was recorded from the (now deprecated) Timeline API.
- Activity archives for dates starting 1/1/2015 is recorded from the Events API.
Example Usage
rdd [--after DATETIME] [--before DATETIME] [--top COUNT]
rdd --after 2015-03-18T13:00:00Z
rdd --after 2015-08-05T15:10:02-00:00
rdd --after 2015-03-16
rdd --top 500
rdd --after 2015-01-01 --before 2015-01-08
Options:
[--after=AFTER] # Date to start search at, ISO8601 or YYYY-MM-DD format
# Default: 28 days ago
[--before=BEFORE] # ISO8601 Date to end search at, ISO8601 or YYYY-MM-DD format
# Default: Now
[--top=N] # The number of repos to show
# Default: 20
./rdd.rb --after 2015-08-05T20:10:02-00:00 --top 20
Getting Github statistics for 2015-08-05 20:10:02 UTC - 2015-08-05 21:56:30 UTC
Results (~15 seconds):
#1. jtleek/datasharing - 70 points
#2. docker/libcompose - 59 points
#3. daveliepmann/tufte-css - 52 points
#4. rdpeng/ExData_Plotting1 - 50 points
#5. DataScienceSpecialization/DataScienceSpecialization.github.io - 49 points
#6. servant-app/JAWS - 43 points
#7. octocat/Spoon-Knife - 40 points
#8. skirmer/R_Coursera_Cleaning - 30 points
#9. JuanitoFatas/fast-ruby - 25 points
#10. WasatchInstitute/wit-website - 25 points
#11. sux13/DataScienceSpCourseNotes - 25 points
#12. familiar-protein/familiar-protein - 25 points
#13. reactoroverflow/reactoroverflow.com - 22 points
#14. trilkk/faemiyah-demoscene_2015-08_4k-intro_ghosts_of_mars - 22 points
#15. FreeCodeCamp/freecodecamp - 21 points
#16. mkolh/nodeschool-module-solutions - 20 points
#17. normanjaeckel/Lotophage - 20 points
#18. jbsturgeon/tourOfGo - 20 points
#19. lopezjorge1/ColorGenius - 20 points
#20. travishaby/sales_engine - 20 points
- 10 points if its a new repo
- 5 points if a repo is forked
- 3 points when a repo has a member added
- 2 point when a pull request is closed & merged
- 1 point for the repo when the repo is watched
- 1 points when the repo has an issue created
- What factors impact performance? What would you do to improve them?
- How could you add additional reporting formats besides STDOUT plain text?
- If you had to implement this using only one gem/package, which would it be? Why?