Code Monkey home page Code Monkey logo

gci-leaders's Introduction

Google Code-in Leaders


This is a website to show the current leaders from all organizations in GCI.



Note

You require npm v5.8.0 which needs to be installed explicitly using

npm v5.8.0 is the latest release of npm which properly supports optional dependencies, so it won't download extra bits that are not needed, which can help in reducing data downloads.


Installation

npm install

Languages:

  • Node.js
  • JSON

Usage:

npm run build

Getting Involved

If you would like to be a part of the coala community, you can check out our Getting In Touch page or ask us at our active Gitter channel, where we have maintainers from all over the world. We appreciate any help!


Support

Feel free to contact us at our Gitter channel, we'd be happy to help!


Authors

You can contact to author for more information. blazeu


License

License: MIT


gci-leaders's People

Contributors

9r0x avatar andrewda avatar blazeu avatar comradekingu avatar danes44 avatar dob9601 avatar fireballpoint1 avatar hizkifw avatar jayvdb avatar learneradarsh avatar li-boxuan avatar manankalra avatar matejmecka avatar mooncos avatar mvinoba avatar myfrom avatar pshreya2181 avatar rohanrk avatar serekkiri avatar sthkindacrazy avatar synicalsyntax avatar tioirawan avatar utkarsh2102 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gci-leaders's Issues

Remove unnecessary RegEx check

The valid-github-usernames package will only return valid usernames, so there's no point in rechecking that. This can be safely removed as it's not doing anything right now:

diff --git a/lib/scrape.js b/lib/scrape.js
index 9542abc..3d2b346 100644
--- a/lib/scrape.js
+++ b/lib/scrape.js
@@ -173,11 +173,6 @@ async function findGitHubUser({ display_name }, org) {
   const username = await findGitHubUserInOrg(display_name, org)
   if (username) return username
 
-  const displayNamePattern = /^[a-zA-Z0-9-]{1,39}$/
-
-  const displayNameMatches = displayNamePattern.exec(shortName)
-  if (!displayNameMatches) return
-
   const user = await getGitHubUser(shortName)
   if (!user) return

Broken social link

broken2
broken1

This probably comes from trying to place a chat link, even though Catrobat doesn't have one.

Add "last generated" timestamp

As the contents of the page include a static snapshot of org activity , it is important to know when it was last generated in UTC, and show how long ago it was generated , aware that the readers timezone is likely not UTC.

Design overhaul

The current design with multiple columns looks really cramped.

@synicalsyntax Proposed to make a single column instead.

If possible, use and modify the current grid styling.

The new design should look neat and tidy on large (larger than body width), medium (lower than body width) screen and mobile.

And it's allowed to add css for other elements, such as a or li.

Add logos of each org

Display the logos of each org, obtained from the GCI website dynamically.
i.e. do not store the logos in this repository.

Add chat link

Each org lists a URL to their chat system. Some are direct links, such as https://coala.zulipchat.org or https://gitter.im/scorelab/scorelab or http://systers.io/slack-systers-opensource/ , but others are using that field to store a http page where more information can be found, such as https://github.com/MovingBlocks/Terasology/wiki/Using-IRC .

This task is to add a clickable chat logo beside the github logo.

For this task, find/create a npm package which interrogates a URL to return metadata about the chat system. It should return at least a short name for the type of chat system, such as 'irc', 'gitter', 'zulip', 'slack' and a consistent logo URL for that chat system.

That package can then be used when building this page.

Extra points for extracting direct chat links from the http page some orgs are using instead of direct links into their chat system.

Import pre-2017 Finalists and winners

It appears there is no raw data, so it will need to be scraped from the website.

Present on a separate page, either as one page , or a page per year.

Reduce number of GitHub API hits

In the initial GitHub org detection (78d0eaa), the following orgs were resolved using a GitHub search, as is recorded in the build log.

Could not find GitHub org for Apertium. Resorting to GitHub API hit.
Could not find GitHub org for BRL-CAD. Resorting to GitHub API hit.
Could not find GitHub org for Catrobat. Resorting to GitHub API hit.
Could not find GitHub org for CCExtractor Development. Resorting to GitHub API hit.
Could not find GitHub org for Drupal. Resorting to GitHub API hit.
Could not find GitHub org for Haiku. Resorting to GitHub API hit.
Could not find GitHub org for LibreHealth. Resorting to GitHub API hit.
Could not find GitHub org for MetaBrainz Foundation. Resorting to GitHub API hit.
Could not find GitHub org for OpenMRS. Resorting to GitHub API hit.
Could not find GitHub org for OpenWISP. Resorting to GitHub API hit.
Could not find GitHub org for OSGeo. Resorting to GitHub API hit.
Could not find GitHub org for Sugar Labs. Resorting to GitHub API hit.
Could not find GitHub org for Ubuntu. Resorting to GitHub API hit.
Could not find GitHub org for Wikimedia. Resorting to GitHub API hit.
Could not find GitHub org for XWiki. Resorting to GitHub API hit.

This task is for you to find alternative approaches to identity the GitHub org, in order to avoid using a GitHub API hit for these org.

Your build must be rebased and have at least one less API hit than master.

Add padding to column

The padding should be around 2-3em. Find what's the most comfortable.

The padding should be applied once in between every column.

Vertical and horizontal padding should be consistent.

Also we don't need that centered column at the bottom.

Getting perfect Lighthouse score

Lighthouse analyzes web apps and web pages, collecting modern performance metrics and insights on developer best practices.

https://github.com/GoogleChrome/lighthouse

This is our current Lighthouse audit result: https://u.teknik.io/4SV0f.html

This task is for increasing our Lighthouse score, multiple students can take this task.

For now, don't worry about service worker / offline support, I think we will have another task for that.

Your build must be rebased and have at least one more audit passed than master.

Guess GitHub username of leaders

Link to the GitHub user for the leaders, ensuring that only highly probable links are made.

At least confirm that a username is a member of the relevant GitHub organisation before linking to it.

This is a repeatable GCI task.

Use "Related to https://github.com/coala/gci-leaders/issues/8" at the bottom of your commit message, so it doesnt close this issue.

og:image is broken

<meta property="og:image" content="{{{rootURL}}}/images/GCI-logo.jpg">

https://gci-leaders.netlify.com/images/GCI-logo.jpg = 404

Also, consider replacing it with slightly bigger one + padding on the sides for better look on share card such as Facebook.

Minimum Image Size
The minimum image size is 200 x 200 pixels. If you try to use an image smaller than this you will see an error in the Sharing Debugger.
https://developers.facebook.com/docs/sharing/best-practices/

Expand "GCI" in title

The website title is "GCI Current Leaders".

For participants & mentors, we know what it means, but nobody else does, and a google search for "GCI" will not help them.

The only way to find out is to click on an org to go to the codein website.

Improve the title & heading of the website so that the reader knows it is about Google Code-in 2017.

Org heading contains invalid element

Task completed and github logo should go outside the h3 tag.

<p>Task Completed: {{completed_task_instance_count}}</p>
{{#github}}
<a href="https://github.com/{{github}}">
<img
src="https://assets-cdn.github.com/images/modules/logos_page/GitHub-Mark.png"
height="18"
/>
</a>
{{/github}}
</h3>

Link to Google Groups

A few of the orgs have Google Groups listed, usually as their 'mailing list'.

We should identify them separately, as a Google group has a forum web-interface as well as a traditional mailing list, and a consistent archive browsing mechanism that makes it easy to get involved, without needing to use 'subscribe' type emails, or browse pipermail.

Add GCI logo

The website title is "GCI Current Leaders".

For participants & mentors, we know what it means, but nobody else does, and a google search for "GCI" will not help them.

The only way to find out is to click on an org to go to the codein website.

Improve the title & heading of the website by expanding it to "Google Code-in 2017" so that the reader knows what's it all about.

The GCI logo should be there also.

Make sure the logo placement is appropriate based on the Google media rules.

https://developers.google.com/open-source/gci/resources/media

We need to make sure that the logo and the title appears correctly in social media share.

Put some Open Graph <meta> tag. We need atleast og:title, og:description, and og:image.

http://ogp.me/

Add data/cache version checking

This was discussed briefly in #78, but I'll use this issue as a way to better express my ideas around the bigger problem here. Our data.(js|min.js|yml) files are going to be changing quite often while this site is in development, not just in their values but also in their keys.

For example, if we were to make some large changes to the data file. Let's say, for example, the desired effect of our change is to move the wikidata link of an organization to a new key:

- "wikidata_url": "//www.wikidata.org/wiki/Q170855"
+ "wikidata_link": "//www.wikidata.org/wiki/Q170855"

When we deploy the code, it will still expect a "wikidata_url" key to exist, despite the name being changed to "wikidata_link". On top of that, the caching code will use the existing organization's object instead of making another API request to GCI (because we don't expect their returned data to change) so the "wikidata_url" will stick around along with the new "wikidata_link" leading to some very cluttered data.

So how do we fix this?

Pretty straight-forward. Adding a CACHE_VERSION or DATA_VERSION constant in our code and putting that value in our data.(js|min.js|yml) files will allow us to check if our data format is up to date. We would increment this version every time a breaking change is made to the data format (be it adding or removing a key, or updating the name of an existing key). If the DATA_VERSION we expect and the DATA_VERSION of the data file we're reading from don't match up, we ignore it and re-fetch all the data.

Create a README.md

The new README should explain the

  • basic objects of the projects, and
  • the technologies used,
  • how developers can build it

Add "built by coala"

This website should mention that it has been built by the coala team.

This is a design task; do just add "built by coala".

Remove GCI orgs from twitter feed

Some orgs are drowning out everyone else on the feed, and many orgs are too busy to tweet. Best remove them all and let the individuals voices be heard.

Use NLP to detect nationality statistics

Use the participants display name to determine nationality.

Discard data which is unsuitable or confidence level is low, but clearly display what percentage of the participants display names were unsuitable or was unusable for the statistics.

wrt unsuitable data, if #32 doesnt land first, skip any display name which contains numerals and doesnt contain an uppercase letter.

To warm you up a bit, see here

Come onto the coala Zulip to discuss how to solve this.

Randomise order of participants

A lot of research backs up that the ballot order has an impact on the voting patterns.

Likewise a stable alpha ordering of the participants may cause some unintentional bias towards the participants at the top of that ordering.

This task is to introduce client side randomisation of the participants.

Add i18n

Include at least a few i18n strings, but this task is not about doing translations.

Add .coafile

It should check for the file types already in the repository.
Exclude package*.json file and out folder.

Ideally we should use prettier.io to format, because initially I used that.
But PrettierBear doesn't exists yet.

So, use ESLintBear and https://github.com/prettier/eslint-plugin-prettier instead.

The settings should be:

  • no semicolon
  • es5 trailing commas
  • single quote

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.