Git Product home page Git Product logo

apex's Introduction

APEX

Apache Incubator Project Explorer (APEX) is a long-term research project, in which models and algorithms to integrate and advance the analysis and visualization of social networks and technical networks are being developed. APEX is the design and implementation of a software tool intended for research in OSS projects, especially for ASF incubator projects.

Installation

Packages needed :

  1. d3 v3
  2. d3 v4
  3. Bootstrap 3.3.5
  4. jquery 1.9.2 or 2.1.3

Usage

cd <downloaded project folder>
#run a local host server
python -m http.server
#or
python3 -m http.server

Functionality / How to use the dashboard

Since APEX is designed to so as to understand the the socio-technical aspects of a Open Sourced Project it can be used in the following way.

  1. First Use the input drop down menu/selector to select a the desired project
  2. Once the project is selected all the windows will be populated with data or visuals
  3. The visuals show are:
    • Graduation Forecast Visual:
      1. Which shows a forecast value associated with each project time period.
      2. The current month for all the visuals can be also changed here by hover over the desired month and clicked to change the month
      3. Current month is indicated at all time by a red dot
    • Social Network:
      1. Allows us to visualize the select project and the current months email exchange between developers working for that particular project
      2. Visual has two sides , the sender nodes and the receiver nodes
      3. Both have a the names of the developers who participated in selected project and month . Also shows a percentage based on the number of replies in the receiver side or the number of emails sent in the sender side by that particular developer.
      4. On hovering over a particular developer on can drill through to further understand the developer habits and the email patterns based on who the email more often.
      5. On clicking on a particular developer . On can find their name available in the Social Network Nodes button where upon further clicking on will find a popover window all their emails sorted by the time.
    • Technical Network:
      1. All the functionality is the same as the social network. But instead it shows developer and the files that they have committed
  4. Below both the social and technical network visuals we shows some stats associated with the project for that month . Like Number of emails exchanges for that month , etc
  5. Some other functionality include the ability to resize windows to better understand the data /visuals/text. Also the social and technical networks have buttons to help control their size.

Working of the dashboard

Select the Project using the the Selector 
├── resetAll()-- called inside the updating.js function --(https://github.com/anirudhsuresh/APEX/blob/main/updating.js)
│   └── this resets the current month and the months in whole dashboard 
│       └── updateAll() is also called after this
│           ├── getMonth();
│           │   └── get the current month for the projects reports 
│           ├── make_reports();
│           │   └── calls the projects reports to be added 
│           ├── $("#chk").prop("checked", false);
│           │   └── ensure range slider is closed at this point
│           ├── $("#make_range_slider").prop("checked", false);
│           ├── $("#hideableDiv").hide();
│           ├── $("#hideableDiv2").show();
│           │   └── closes the range slider
│           └── UpdateprojectInfo();
│               ├── updates the project information
│               ├── UpdateEmailNet()--(https://github.com/anirudhsuresh/APEX/blob/main/social_net.js)
│               │   └── updates the social network
│               ├── UpdateTechnicalNet() --(https://github.com/anirudhsuresh/APEX/blob/main/tech_net.js)
│               │   └── updates the technical network
│               ├── reducing zeros in email / commit network
│               │   ├── function removes people who contirbute less than 1%
│               │   └── --(https://github.com/anirudhsuresh/APEX/blob/main/thresholds_for_networks.js)
│               └── event handling inside both networks
│                   ├── mouseover
│                   │   └── make the particular dev bold
│                   ├── mouseout
│                   └── click
│                       ├── on click grab the developer name 
│                       └── calls call_table_commits/emails()
│                           └── build the popover and the links for the email and commit deep dive
│                               └── --(https://github.com/anirudhsuresh/APEX/blob/main/email_links~orcommit_links.js)
└── make_chart()
    └── builds the graduation forecast
        └── ---(https://github.com/anirudhsuresh/APEX/blob/main/graduation_forecast.js)

Range Slider 
├── click the checkbox 
└── updateAll_for_range_slider() is triggered --(https://github.com/anirudhsuresh/APEX/blob/main/updating.js line 22)
    ├── creates the no ui html slider --(https://github.com/anirudhsuresh/APEX/blob/main/no_ui_slider.js)
    └── aggregate__network_stats()
        ├── which works on calling other functions that aggregate the network and the statistics
        ├── we have various functions that aggregate the social network , technical network,  and the stats
        ├── create the current date range and then feed it to other functions
        └── make buttons in the project window component
            └── updateSliderRange(min, max) 
                └── get the max incubation of the current project and update the range slider 

File Tree :

UPDATED DATA
├── new
│   ├── commits_measure : Data about the commit measurements
│   ├── email_measures :Data about the email measurements
│   ├── new_about_data : Data about the various projects
│   ├── new_emails : Data for social network
│   ├── grouped_new_commits :Data for tech network 
│   ├── new_forecast : Data for forecast viz
│   └── new_month_intervals : Data about the dates
├── new_monthly_commits
│   └── Commit Links Data : Data about the commit links
├── Takeout
│   └── Drive
│       └── new_deep_dive_email_data
│           └── tester_monthly_emails
│               └── Emails Links Data : data about the email links
└── data1
    └── report data

License

MIT

Current working version hosted here: Link

apex's People

Contributors

anirudhsuresh avatar lkyin 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.