Giter Site home page Giter Site logo

devlibrary's Introduction

Welcome to the Google Dev Library

Get started with Google Dev Library

Google Dev Library is content library of open source projects and technical blogs featuring Google technologies authored and contributed by developers from around the world. Find the inspiration you need for your next project with #googledevlibrary!

If you are a developer who has built an open-source project, or has written about a solution you have solved using the below Google technologies you submit your own content to be featured in Dev Library !

  • Android
  • Angular
  • Flutter
  • Firebase
  • Google Cloud
  • Machine Learning
  • Google Assistant
  • Google Maps Platform

Dev Library Interview with Authors : Our Youtube Playlist

Watch interviews of some of our contributors talking about their open source projects and why they contributed to Dev Library. You can access the complete playlist here.

Blogs

The official newsletter by Dev Library highlights some of the best submissions of the month, spotlights our authors and shares events of interest for developer communities. Here are some blog posts detailing on how developers have used the platform to showcase their contributions. You can access the full archive here.

How to get started:

Headover to our product website, and browse through the various projects contributed by the developer community. "Watch" the repository for any future updates. If you have specific questions about the roadmap and create an issue.

devlibrary's People

Contributors

26damb avatar akitikkx avatar ayoub9360 avatar bampakoa avatar barnesjoseph avatar biswakpl avatar bokthyeyeow avatar dependabot[bot] avatar developerseb avatar dumbbillyhardy avatar foxanna avatar garimame avatar hossein13m avatar jollypolly123 avatar kindavishal avatar mijaz18 avatar mtacchino avatar nikosanif avatar patilshreyas avatar rodrigokamada avatar samtstern avatar satantime avatar sayannath avatar shadowshot-x avatar subhadiptech avatar suyashsonawane avatar techtrailhead avatar tranvictoria avatar yash-garg avatar yogeshhk 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  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

devlibrary's Issues

Repos with improper licenses are not being removed

Today on the homepage I noticed this entry:
image

When I clicked through I got a 404. Diagnosing the repo shows that it's a license issue:

$ npm run diagnoserepo ../config/android/repos/mmarashan-google-billingclient-wrapper.json

> [email protected] diagnoserepo /Users/samstern/Projects/ugc.dev/shared
> ts-node ./scripts/diagnoserepo.ts "../config/android/repos/mmarashan-google-billingclient-wrapper.json"


Repo: https://github.com/mmarashan/google-billingclient-wrapper

❌ Error: mmarashan/google-billingclient-wrapper does not have a license.
✅ Valid content README.md

So this repo should have been deleted!

Refresh projects cron function is taking too long

The function refreshProjectsCron takes too long to run.
The timeout is 540s and right now it's taking over 200s, which is way too long given the fan-out architecture. It should be very fast, leaving most of the work to the other functions.

Screen Shot 2021-12-15 at 11 50 43 AM

Convert to Nuxt for SEO

I think the site SEO will be pretty bad as-is. We should move to Nuxt.js to statically generate as much as we can.

This will also let us add OpenGraph meta tags which will help us do better with social sharing.

Fix outstanding content issues

I ran the following script to find all existing content issues:

$ find ../config -path "*repos*" -name "*.json" | xargs -n 1 npm run diagnoserepo | grep Error

Here are the results:

No License (13)

❌ Error: ng-girls/todo-list-tutorial does not have a license.
❌ Error: DmitryEfimenko/ng-expandable-input does not have a license.
❌ Error: alkaj/spa-dockerize does not have a license.
❌ Error: Yash-Garg/FlutSplash does not have a license.
❌ Error: gihan667/flutter-login-ui does not have a license.
❌ Error: jmrchelani/flutter_portfolio does not have a license.
❌ Error: gboliknow/game_ui does not have a license.
❌ Error: radi-cho/tfjs-firebase does not have a license.
❌ Error: devskope/apollo-firesource does not have a license.
❌ Error: akauppi/firebase-ci-builder does not have a license.
❌ Error: kennysong/adversarial.js does not have a license.
❌ Error: mmarashan/google-billingclient-wrapper does not have a license.
❌ Error: Shivamdhuria/flows_guide does not have a license.

Bad License (10)

❌ Error: GeOsmFamily/geosm-frontend-final has invalid license type: gpl-3.0
❌ Error: PatrickJS/awesome-angular has invalid license type: cc0-1.0
❌ Error: ionicfirebaseapp/getwidget has invalid license type: other
❌ Error: jayeshpansheriya/awesome_extensions has invalid license type: bsd-3-clause
❌ Error: fluttercommunity/plus_plugins has invalid license type: bsd-3-clause
❌ Error: sgr-ksmt/Lobster has invalid license type: bsd-3-clause
❌ Error: FirebaseExtended/flutterfire has invalid license type: bsd-3-clause
❌ Error: sgarciac/fuego has invalid license type: gpl-3.0
❌ Error: SamuelMarks/ml-params has invalid license type: other
❌ Error: KaustubhPatange/Gear-VPN has invalid license type: gpl-3.0

Other (3)

❌ Error: alkaj/spa-dockerize has no content path README.md
❌ Error: CorneilleEdi/sweetsheet has no content path READEME.md
❌ Error: SuyashSonawane/AI-Dancer has no content path README.md

So I need to take the following actions:

  • Delete all projects with license issues
  • Ask all repos with no license to add one (and then file an issue here to get re-added)
  • Fix all content issues

Add alerting for data issues

We should get an alert if:

  • Any cloud functions crash
  • If we are unable to locate the README for a project
  • If we are unable to locate the LICENSE for a project

Right now things mostly fail silently.

Add breadcrumbs to the UI

Especially in mobile views, we need something to show where the user is on the page

Here's what they look like on DevSite:
Screen Shot 2021-02-10 at 11 48 20 AM

GitHub project cards should have clickable links to author pages

GitHub repositories right now always show the name / photo of the GitHub owner. We should show the DevLibrary author when we have that information and allow clicking through from the card to their profile.

This will require inlining some author information (at least name) into the RepoData objects in the database so that this can be done efficiently. Right now we only have authorIds: [] which is enough to link but not enough to display.

Blog cards already have this feature.

Make all author IDs lowercase

Right now we use the author ID as the file name and our config scripts use file existence to check for author existence. However the issue here is that the macOS file system is case insensitive while the author lookup system (via Firestore) is case sensitive.

This mismatch can only really be resolved by forcing lowercase IDs.

Filter by Language

A lot of feedback in V1 revolved around how users will sort out by content in specific languages, so in order to incorporate this, we need to:

  • Ask people about the language of their submission
  • Add in the config file
  • Update schema of both blogs and projects to include language

Nightly refresh hitting GitHub's API rate limits

Background

GitHub's rate limit is 5000 requests per hour:
https://docs.github.com/en/rest/overview/resources-in-the-rest-api#rate-limiting

As of this writing we have 359 repos on the site

$ find config -type f -path "*repo*" -name "*.json" | wc -l
     359

So we can afford to make 13 API calls per repository per hour at our current rate.

For each repo we do the following API requests on refresh:

  • Get the repo metadata from our config folder (1 API call)
  • Get the repo stats (1 API call)
  • Get the repo license (1 API call)
  • Get the default branch (1 API call)
  • Get the content of each page (1+ API calls)

So let's round to 5 API calls per repo. That means we can only afford to grow to 1000 repos currently.

Short Term Solution

We need to do something to reduce the API calls per repo to increase our headroom (mostly fixed in #274)

Long Term Solution

We should find a way to schedule the repo refreshes to be more spread out over time to not hit the API limit.

Finish Author pages launch

TODO:

  • Page to browse all authors (#138)
  • Authors header in the nav bar
  • Link to authors from repo pages, etc
  • Authors in search results

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.