Giter Site home page Giter Site logo

dannycalleri / gitly.dev Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 12.75 MB

gitly.dev 🔧Check the quality of a GitHub repository 💎

Home Page: https://gitly.dev

License: GNU General Public License v3.0

Dockerfile 0.92% TypeScript 32.86% JavaScript 50.89% Go 15.34%
community golang typescript

gitly.dev's Introduction

gitly.dev

gitly.dev is a web application that takes in input the name of a GitHub repository and outputs a score that tells how active a GitHub repository is. I often found myself doing this sort of checks manually, thus I thought it would have been nice to automatize the whole process.

This is a project written for fun in TypeScript, Go and plain JavaScript with React for the front-end.

Since it has been written for fun, over-engineering was the rule.

Architecture

The actors involved are:

  • a web application serving web pages written in JavaScript using Next.js (found inside the app folder)
  • APIs (TypeScript + Node.js) (found inside the api folder)
  • a processing daemon written in Go (found inside the processing folder)
  • Redis - used as cache and PubSub system

Both the APIs and the processing Go applications are subscribed to the same Redis PubSub channels. When the web application sends a request to calculate the score for a particular repository:

  • APIs: publish a message inside the channel with a particular id that identifies the request
  • APIs: record a callback for that particular request, waiting for a response
  • Processing daemon: calculates the score inside a goroutine and publishes it inside the channel
  • APIs: return the result to the client

I hope to publish a sequence diagram soon.

How to get better

Parallelize requests inside api/app.ts with Promise.all(), at the moment they are serial for simplicity.

Right now, as you can see in docker-compose.production.yml each node has its own Redis, this should be externalized and shared, especially if traffic will be high (unlikely).

How to help

Open an issue, sends pull requests, you're free to contribute.

Support

Buy Me A Coffee

gitly.dev's People

Contributors

dannycalleri avatar

Watchers

James Cloos avatar  avatar

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.