Coder Social home page Coder Social logo

git-technetium's Introduction

git-technetium

Repository for a github powered application built using the MEAN stack. The following features are planned:

[X] Create modules for viewing statistics on a repository 
[ ] Build meaningful graphs using D3 
[ ] Ability to export reports to PDF
[ ] Unit testing using Mocha/PhantomJS where applicable
[ ] Centralized Issue Tracker
[ ] Repository Subscription Manager
[ ] Integrate application with Bitbucket API

A more detailed set of current tasks can be found here: task list.

Dependencies

After cloning this repository, the first step is to install all dependencies.

git-technetium$ npm install
git-technetium$ bower install

NOTE: If you are on a Mac, you will need to run sudo npm install.

Getting Started

Inside of your Github account settings, please register this application in order to obtain a client_id and client_secret. This will allow you to make up to 5000 requests per hour, and allows for quicker testing. For help on registering an application, see this link Once you have obtained these keys, modify config.js as shown below:

var CLIENT_ID = 'YOUR_CLIENT_ID';
var CLIENT_SECRET = 'YOUR_CLIENT_SECRET';

Useful Libraries / Links

  • istanbul - JS code coverage tool.
  • karma-runner - Powerful test runner supporting several testing frameworks.
  • async.js - A library with powerful functions for dealing with asynchronous code.
  • pdfmake - A client/server-side PDF printing library.
  • QUnit - A powerful JavaScript unit-testing framework.
  • UnitJS - Another powerful JavaScript unit-testing framework.
  • mocha - A JavaScript testing framework with powerful testing features.
  • D3 - A JavaScript library for using documents as data. Useful for a wide array of graphs.
  • PhantomJS - A headless WebKit with a JavaScript API, useful for testing with frameworks such as Mocha.
  • Git API - Github API.
  • Bitbucket API Console - A web console for interacting with the Bitbucket API.

git-technetium's People

Contributors

drksephy avatar chessmasterhong avatar mk200789 avatar chocoshell avatar

Stargazers

Nur-A-Alam Sumon avatar suchunlong avatar liy avatar Joe Sweeney avatar AG avatar Tavi avatar  avatar

Watchers

James Cloos avatar  avatar  avatar  avatar  avatar  avatar

git-technetium's Issues

Pagination problems

As we have recently discovered, the github API only returns a fixed amount of data at a time. The rest of any queried data can be retrieved by pagination. Therefore, we need a clean method of chaining several requests and checking if the needed data is not empty. If it is not empty on each page, we chain requests until we run into an empty set of data, i.e we are done parsing data.

Query and display the commit totals on the client

In order to display the number of commits for each user in a repository, the following needs to be built:

  • Pass the repository name as a parameter from the client to the server.
  • An AngularJS Factory for getting the data. from the server.
  • An AngularJS Controller for handling the data
  • An AngularJS Partial for displaying the data.

Create partial for displaying all issues data on client

The view for the issues. The user will be able to input a repository name into a form. As per the assigned task, the user can expect to see all issue titles for the repository, regardless of its state (open, closed, etc.), provided that a valid, existing repository name was given.

Front-end needs to be built

Once more features start to come in, a front-end needs to be built. It can be taken from another site (such as a template or a theme), or it can be built from scratch.

Everyone can contribute to this, and we will decide which front-end is the best for this application. Any useful themes/templates should be posted here.

Create controller for handling pull request data on client

The client must have a controller to handle the logic when the user visits the respective pulls view. The controller will handle for following:

Accepting the user-defined repository name
Making the call to the pulls factory
Receiving the response from the pulls factory
Sending the response to the pulls view

Create controller for handling issues opened per contributor data on client

The client must have a controller to handle the logic when the user visits the respective number of issues opened per contributor view. The controller will handle for following:

  • Accepting the user-defined repository name
  • Making the call to the opened issues factory
  • Receiving the response from the opened issues factory
  • Sending the response to the issues opened per contributor view

Create factory for getting data on client from server

The factory will handle the request to the issues endpoint defined in the server route for getting issues. The factory will handle the following:

  • Send the provided repository name to the server
  • Returns the server response to wherever this factory is called

Create controller for handling number of issues closed per contributor data on client

The client must have a controller to handle the logic when the user visits the respective number of issues closed per contributor view. The controller will handle for following:

  • Accepting the user-defined repository name
  • Making the call to the closed issues factory
  • Receiving the response from the closed issues factory
  • Sending the response to the number of issues closed per contributor view

Create factory for getting issue comments data on client from server

The factory will handle the request to the issue comments endpoint defined in the server route for getting issue comments per contributor. The factory will handle the following:

  • Send the provided repository name to the server
  • Returns the server response to wherever this factory is called

Parse issues opened per contributor data before sending to client

The server must first obtain the repository issue data from the GitHub API and then parse the necessary data relevant to our application. As per the assigned task, the following data will be parsed:

  • Issues opened
  • Name of contributor who opened the issue

Then the server must tally up which contributor opened which issue. Once all issues are tallied, the server will send the data to the client.

Parse number of issues assigned per contributor data before sending to client

The server must first obtain the repository issue data from the GitHub API and then parse the necessary data relevant to our application. As per the assigned task, the following data will be parsed:

  • Issues assigned
  • Name of contributor who was assigned the issue

Then the server must tally up which contributor was assigned which issue. Once all issues are tallied, the server will send the data to the client.

Create controller for handling pull request comments data on client

The client must have a controller to handle the logic when the user visits the respective pull requests comments view. The controller will handle for following:

  • Accepting the user-defined repository name
  • Making the call to the pull request comments factory
  • Receiving the response from the pull request comments factory
  • Sending the response to the pull request comments view

Build route for querying number of commits

In order to return the number of commits per contributor in a repository, a route must be built on the server which queries the https://developer.github.com/v3/repos/statistics/ endpoint.

Create controller for handling issue data on client

The client must have a controller to handle the logic when the user visits the respective issues view. The controller will handle for following:

  • Accepting the user-defined repository name
  • Making the call to the issues factory
  • Receiving the response from the issue factory
  • Sending the response to the issues view

Parse number of issues closed per contributor data before sending to client

The server must first obtain the repository issue data from the GitHub API and then parse the necessary data relevant to our application. As per the assigned task, the following data will be parsed:

  • Issues closed
  • Name of contributor who was closed the issue

Then the server must tally up which contributor closed which issue. Once all issues are tallied, the server will send the data to the client.

Create controller for handling number of issues assigned per contributor data on client

The client must have a controller to handle the logic when the user visits the respective number of issues assigned per contributor view. The controller will handle for following:

  • Accepting the user-defined repository name
  • Making the call to the assigned issues factory
  • Receiving the response from the assigned issues factory
  • Sending the response to the number of issues assigned per contributor view

Parse data before sending to client

The server must first obtain repository issue data from the GitHub API and then parse the necessary data relevant to our application. As per the assigned task, the following data will be parsed:

  • Issue title

Create factory for getting data (pull requests) on client from server

The factory will handle the request to the pulls endpoint defined in the server route for getting pull request per contributor. The factory will handle the following:

Send the provided repository name to the server
Returns the server response to wherever this factory is called

Create factory for getting pull request comments data on client from server

The factory will handle the request to the pull request comments endpoint defined in the server route for getting pull request comments per contributor. The factory will handle the following:

  • Send the provided repository name to the server
  • Returns the server response to wherever this factory is called

Create controller for handling issue comment data on client

The client must have a controller to handle the logic when the user visits the respective issue comments view. The controller will handle for following:

  • Accepting the user-defined repository name
  • Making the call to the issue comments factory
  • Receiving the response from the issue comments factory
  • Sending the response to the issue comments view

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.