Giter Site home page Giter Site logo

ghs's Introduction

GitHub Stats - Commit Tracker Dashboard

Alt text

GitHub Stats is a versatile Commit Tracker Dashboard that allows you to effortlessly monitor and analyze commit activities in multiple GitHub repositories. Whether you're managing a project, collaborating with a team, or just curious about a specific repository's development, GitHub Stats provides insightful visualizations and detailed statistics to keep you informed.

Features

  • Real-time Commit Monitoring: Stay up-to-date with the latest commits in real-time, ensuring you are always in the loop about projects progress.

  • Comprehensive Statistics: Gain valuable insights into commit history and commit frequency.

  • User-friendly Interface: The intuitive and user-friendly interface makes it easy for both developers and non-technical users to navigate and understand the commit data.

  • Customizable Dashboards: Tailor the dashboard to suit your needs by selecting specific time ranges or contributors. #TODO add custom css themes

  • Easy Integration: GitHub Stats seamlessly integrates with your GitHub repositories, requiring nothing but an API key.

ghs's People

Contributors

wlinds avatar

Watchers

 avatar

ghs's Issues

Make dashboard mobile friendly

rn dashboard looks terrible on phone

Since the plot is within a div, perhaps only resizing the div with CSS using something like @media screen and (max-width: 900px) should do the trick.

Also, buttons for changing plot type etc. must be relocated from their current abs pos

Add additional custom css templates

Add additional css template, allow selection in dropdown.

  • Light mode template
  • ITHS mode template

The plot might visually might need to be reconfigured for each color palette, as it's made for dark mode:

    return fig.update_layout(
        plot_bgcolor='rgba(0, 0, 0, 0)', paper_bgcolor='rgba(0, 0, 0, 0)', height=400,
        font_color='rgb(186,186,186)', margin=dict(l=2, r=2, t=30, b=1),
        yaxis=dict(gridcolor='rgba(255, 255, 255, 0.1)', title=''),
        xaxis=dict(gridcolor='rgba(255, 255, 255, 0.1)', title=''))

Probably best to use a list in Python with the color schemes to select from, update css and plot by picking item in list?

Total Commits does not update

Total commits should be updated, either by dcc.interval or by global var in the while loop (similarly to how Last & Next run currently is updated).

Refactor threaded loop for api calls

  1. Site should be refreshed automatically after each API call
  2. Consider using dcc.Interval instead of threading (refactoring the whole loop, removing global variables)
def git_scraper():
    global last_run, next_run, plot_data
    while True:
        last_run = (datetime.datetime.now())
        fetch_all_repos(REPOS, commit_limit=8)
        next_run = datetime.datetime.now() + datetime.timedelta(seconds=CHECK_INTERVAL_SECONDS)
        print(f"Run completed. Next run: {next_run.strftime('%Y-%m-%d %H:%M:%S')}")

        app.layout.children[-1].children = f"Last run: {last_run.strftime('%Y-%m-%d %H:%M:%S')} | Next run: {next_run.strftime('%Y-%m-%d %H:%M:%S')}"
        time.sleep(CHECK_INTERVAL_SECONDS)

^ Current loop which runs threaded, completely outside dash architecture.

Create README.md

Add readme.md with setup instruction, requirements and example.

  • Provide some example data (example.csv with some repos)
  • Add example image of plot

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.