Giter Club home page Giter Club logo

analytics4github's Introduction

analytics4github

Build Status Codacy Badge codecov GitHub license

http://195.211.154.179 Java web application to enhance github.com search mechanism. Provided options facilitate search of new perspective projects Preview changes with good commits/stars/contributors grown. Internally, the existed GitHub API is using. To access a REST API documentation - run the application and access http://195.211.154.179/swagger-ui.html

Demo

Prerequisites

Deployment

To run locally execute

 ./mvnw install -Dmaven.test.skip=true
  java -jar target/analytics4github*.jar 

accessible by default at http://127.0.0.1:8080

Development

architecture

Tests stopped to work properly via maven but you can run them via Intellij

IntellijIdea
reload backend

To reload controllers after editing - press ctl + f9 and wait till application restart. It'll execute "Make" and trigger hot-redeploy via spring-boot-devtools.

working with frontend

adjust application.properties to use static resources from a file system, not a jar file. It will simplify frontend development

analytics4github's People

Contributors

alycecil avatar azozello avatar glyashen avatar iivanyshyn avatar kolorobot avatar lyashenkogs avatar naz1719 avatar vshpelyk avatar

Stargazers

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

Watchers

 avatar  avatar  avatar

Forkers

fredrick-dominy

analytics4github's Issues

Trigger automatic analysis on a tab click

  • As a user,
    I want to see already analysed new stars for the current month and week during the application home page load.
  • As a user,
    I want to trigger the "analyse" button automatically, at click on tabs(stars, commits, unique contributors)

Stars
image
Unique contributors
image

Network issues handling

Currently, the project relies on

  • GitHub REST API
  • GitHub trending page (parsing via JSoup)
    Need to implement appropriate exceptions and their handling (show a message on UI) for cases of network connectivity issues.

Acception criteria

  1. In case of absence of access to Github display the according error message
    image
  2. In case of absence of access to Github Trending page, display the according error message
    image

Display available requests number

GitHub provides 5 000 requests per hour for authorised users. In your case authorised user is the analytics4github production server.A number of left requests can be acquired from a header of response from GitHub API. See https://developer.github.com/v3/#rate-limiting.

The goal is to display current rate limit on the application start and update after each analyse operation(unique stargazers, commits, etc.)
requestnumbercounter mockup

Update gradle

  • Update Gradle to version 3.2.1 include wrapper
  • assure that the project works correctly on AWS and Openshift

Insufficient memory on EC2 during a Jenkins builds. Adjust the infrastructure

The application is deployed on an EC2 micro instance (1GB Ram).
Currently EC2 serves

screen shot 2017-03-11 at 9 23 45 pm

To fix:

  • disable MongoDB UI
  • if this will not help -> disable a MongoDB

To prevent such things:

  • Setup Jenkins email notifications on a build fail
  • Setup Zabbix based monitoring. Zabbix server and agents installation process should be automated by ansible playbooks.
  • Research possibility to switch to AWS container service. Consider a need in a MongoDB, preferably installed on an EC2.
    A screenshot after a build fail due to insuficcient memmory size that shows the application ~200mb and jenkins ~300mb RAM

screen shot 2017-03-17 at 9 48 25 pm

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.