Code Monkey home page Code Monkey logo

hacktoberfest-checker's Introduction

Hacktoberfest Checker

⚠️ Thanks for the memories, but it's time to sunset this little app, you can read more here: https://jenko.me/hacktoberfest/2022/11/21/hacktoberfest-checking-out


Build Status GitHub

Useful checker web app to see how close you are to achieving the requirements for a free t-shirt as part of Hacktoberfest.

https://hacktoberfestchecker.jenko.me/

Screenshot

2022!

Well I've had next to no time to do anything really other than a very light (and probably broken) re-skin. As far as I'm aware nothing has changed in terms of rules this year, so only a re-skin that was required (if there are new rules, feel free to submit a PR - it'll count towards your total!)

Doesn't DigitalOcean have their progress checker now?

They do! However, I still think it's worth having a checker that doesn't require auth and allows you to check on your mates (or celebrity developers!).

Happy hacking!

Requirements

  • Node LTS (v10/12/14)

    Recommended to use NVM

Running the app

  • Generate a GitHub personal access token to ensure you don't get rate limited as often.

  • Generate a Gitlab personal access token to ensure gitlab is supported.

  • Create a .env file using .env.example as an example. Or export the GitHub/Gitlab token as an environment variable for Node.js to use:

    • Mac/Linux: export GITHUB_TOKEN=YOUR_TOKEN; export GITLAB_TOKEN=YOUR_TOKEN
    • Windows (cmd.exe): set GITHUB_TOKEN=YOUR_TOKEN; set GITLAB_TOKEN=YOUR_TOKEN
    • Windows (PowerShell): $env: GITHUB_TOKEN=YOUR_TOKEN; GITLAB_TOKEN=YOUR_TOKEN
  • $ npm install

  • $ npm run tailwind-gen

  • $ npm start

  • Point browser to localhost:5000

Want to run the API server and the frontend in their processes? Use this:

$ npm run start-frontend
$ npm run start-server

or in a single command...

$ npm run start-development

Running the app within Docker

As an alternative to the section above, you can run the app within a Docker container:

  • $ docker build -t hacktoberfest-checker .

  • $ docker run -p 5000:5000 -e "GITHUB_TOKEN=YOUR_TOKEN" hacktoberfest-checker

or use the docker-compose

  • $ docker-compose up --build

Contributing

Check out the Contributing guidelines to get started on contributing.

Changing styling

Styling is done through tailwind as much as possible, no CSS should be added and class names favoured. However, there will be occasions where custom CSS is required, in this case you need to edit style.css and run npm run tailwind-gen to generate the new CSS file.

Note: You should never directly edit index.css

License

MIT Β© 2015-2021 Ian Jenkins

hacktoberfest-checker's People

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  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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

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

hacktoberfest-checker's Issues

UI improvements?

I know this is only for the time being but some UI could be made, would love to do it. :-)

Should the hacktoberfest checker be timezone agnostic?

For now, the search query shows that I made 0 pull requests.
However, it shouldn't it show 2 pull requests that I made today?
The checker should not be using UTC - 12:00.

I suggest removing the Timezone portion from the search query.

Social Sharing

Once you "check" each username, it would be really nice to have a social sharing button for Twitter - using the #hacktoberfest hashtag and tagging the user.

incorrect status

tracker is currently marking some of my closed PRs as merged.

i know this project is just for shits and giggles, but thought you'd like to know.

btw, do we not even need our PRs merged anymore? we just have to open them?

Routing or template engine crashes

When you search pull request by username and navigation to prev and then next page it shows page without styles.
This occurs because during navigation loads only prs.hbs component without wrapper template

Thinking about how can I solve this problem.

Any suggestions?

Add code style checker

Add a way of checking code style and have it fail the build (see #106) if the code doesn't adhere. Am open to tools/libraries.

Add travis badge to readme

Add the following badge to the top of the readme

[![Build Status](https://travis-ci.org/jenkoian/hacktoberfest-checker.svg?branch=master)](https://travis-ci.org/jenkoian/hacktoberfest-checker)

Invalid PRs being counted

Apparently, PRs created in my fork of the Hacktoberfest repo are also being counted as Contributions, and closed PRs (closed without merging) also add to valid contributions.

Does not show my contribution :(

If you enter my username, it shows 0 contribution but if you open my profile you can see that I have 2 contributions already. :(

Add language to the list of hacktoberfest repos

I would like to see a 'php', 'javascript' or whatever next to the list of hacktoberfest labelled issues underneath the score, to make it easier for newer guys to find projects they can work on in their language.

I attempted to look at this myself, before I realised it was node.js, that I knew nothing about node.js, and after spending two hours on it, couldn't figure out how to use the npm-github-api to gather any detail about the repo! (but any help would be great so I can get it done!)

Scrolling should be possible

If there are quite a lot PR listed on the checker's site then only the head of the list is visible ans scrolling is awefully missed.

Incorrect Count

I'm seeing way more pull requests submitted than I've actually made.
screen shot 2016-10-21 at 8 34 41 am

I believe I should have like two. Trying a couple of other usernames, it seems like the incorrect ones are present for them as well.

Travis build

Although there are no tests yet we could still build on travis to lint etc. Don't want to go mad with JS build stuff but some basic linting should be ok.

Add tests

This app is something I knocked together pretty quickly, but as I now seem to be recycling it every year it'd be cool to make it a bit more maintainable. So it'd be cool to get some tests in place so that if I did wanna refactor I could do say with a modicum of reassurance.

Says 0/4

Disclaimer - I'm not sure if the fest has really started.
I have registered, and have submitted 3 PRs already. But the app says I've submitted 0/4. Is it me, or is it the app?

Bug in created datetime range in GH API query (options)

First of all awesome tool. We're raising a code challenge to make this in py Bottle and will refer people to this as template.

I got an issue: the GUI included this PR which should be outside the range:
https://api.github.com/repos/synedra/irresistible/pulls/4
"created_at": "2017-09-30T21:07:47Z",

controllers/index.js L15

        q: `-label:invalid+created:2017-09-30T00:00:00-12:00..2017-10-31T23:59:59-12:00+type:pr+is:public+author:${username}`
  • why label:invalid? Any PR should do ("Find an issue labeled Hacktoberfest, but remember you aren’t limited to those")
  • this includes the 30h of Sept
  • I am not sure the -12 hours is needed, it seems to exclude the final hours 31st of Oct

For example my buddy Julian opened this PR AUS evening but API converted it to CET as per best practice working with datetimes:
https://api.github.com/repos/pybites/challenges/pulls/107
"created_at": "2017-10-03T09:02:32Z",

Their site is indeed a bit confusing: "To get a shirt, you must make four pull requests between October 1–31 in any timezone" - but I think as the API returns CET (the 'Z' at the end of 'created_at') we don't have to add/subtract hours. But I could be wrong of course, what do you think?

Incorrect Date Frame

Looking at the Github PR query, it is currently fetching PR requests filtered by time between 2016-09-30T00:00:00-12:00 and 2016-10-31T23:59:59-12:00. Shouldn't it start on October 1st instead of September 30th? I noticed this because I have 4 PRs in September 30th that are currently being counted which I don't think they should be.

Add quick access to my personal account

If you add a login button and allow people to login through GitHub, it would allow the site to automatically display their current stats.

Or you could store the last-checked user as a cookie and automatically display that the next time the user opens the site.

Only show 4 PRs

Currently, if you have more than 4 PRs, you get a very long list to show what you've contributed to, what if we made it that only 4 showed, and then you could expand the list to show all of the PRs? I think this could be a nice feature for those who have tons of PRs.

Add graph of PRs opened throughout Hacktoberfest

Was thinking it'd be cool to have a graph or like a sparkline somewhere of PRs opened throughout October, maybe we can dip a little in to September also to give a comparison.

Should be able to call something like https://api.github.com/search/issues?q=created:2016-09-30T00:00:00-12:00..2016-10-01T23:59:59-12:00&sort=created&order=asc&type=pr which will give you the total_count at the top. We can then use this total count for each time period (each day I guess) and then plot our graph. If that ends up firing off too many API requests (it could potentially mean over 30 API requests per request) then possibly we can just give that one API request the complete range (e.g. mid september to end of october) and then traverse the results to work out when the PRs were created. Results are paginated though so would need to take that into account also.

not responsive on mobile

When I search my username account via smartphone, the PR results didn't show the exact same as web result, like this :

issue1

Checker's icons don't distinguish between Merged and Closed PRs

The checker's icons don't distinguish between Merged and Closed PRs. They both show as the Merged icon.

A Closed PR should use the "Request" icon but it should be colored Red. That is how Github represents them.

I think the fix would be related to the file https://github.com/jenkoian/hacktoberfest-checker/blob/master/views/partials/prs.hbs. It appears that there are only two states defined - one for "open" and one for "closed".

See line <div class="fl w-10 pa2 closed">

There probably needs to be a third state defined so there is "open" (which is the green request icon), "merged" (which is the purple merge icon), and "closed" (which is a red request icon).

Happy Hacktoberfest!

Add travis CI integration

Build PRs and master with Travis CI. For this ticket, simply building the app (running npm install without error etc.) is enough, tests, code style etc. to be done as part of other tickets.

Text overlaps on smaller screens

There's a bit of problem on smaller screen like for example mobile. The text overlaps the container as you can see on this image.

image

Update: I created a PR to simply enable ellipsis on the text so it stays on one line

Render github flavoured markdown as html

At the moment the app is showing the plaintext version of the issue descriptions such as [sometext](somelink) rather than just the hyperlink. It would be great if this markdown (GFM) could be converted to html.

$ prefix for commands

I have read thats its a good practice to write prefix commands with $ to differentiate among comments. So can we change them in readme

User result page social media share feature

People are sharing screenshots of the Hacktoberfest checker page in Twitter and other social media. Perhaps it would be possible to make the user's result page sharable with Open Graph meta tags so just sharing your result URL would unfurl in Twitter etc. There could also be share buttons like "Tweet this".

http://ogp.me/
https://developer.twitter.com/en/docs/tweets/optimize-with-cards/overview/abouts-cards
https://developers.facebook.com/docs/sharing/webmasters/
https://dev.twitter.com/web/tweet-button

Open / Rejected PRs count?

May be it's a question for Digital Ocean team. But, as usual they don't seem to have a repo for the hacktoberfest site.

Any PR made during the window counts or it needs to be merged?

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.