Giter Club home page Giter Club logo

gitstat's Introduction

GitStat

Description

GitStat is a simple android app designed to aggregate Github profile data into informative cards and graphs.

Major features:

  • Profile summary
  • Pie chart with programming languages of your repositories
  • List of your repositories with filters and sorting
  • Repository page
  • Contributions summary
  • Charts for contributions (types, count per day, contribution rate)
  • Contributions grid (Github-like)

Download from Google Play

Technology (some notes)

  • Used single activity approach and Navigation component (with SafeArgs) to navigate across fragments.
  • Used Hilt for dependency injection.
  • View binding is used to interact with views within fragments and recyclerview adapters.
  • Kotlin coroutines are used for asynchronous operations.
  • Apollo Android (Retrofit before v3.0) is used to perform Github API calls to obtain the data. Also use OkHttp Logging Interceptor to log requests.
  • Room database is used for cache implementation.
  • Google's FlexboxLayout as LayoutManager and custom checkable LinearLayout are used to implement languages filter (see third screenshot).
  • CircleImageView and Picasso libs are involved to obtain and display user profile image.
  • MPAndroidChart library is used for plots and diagrams in the application.
  • Use Timber logging in order to prevent log calls removal before every release building.
  • Use Firebase Crashlytics to catch and fix crashes.
  • Use Firebase Authentication to implement Github Oauth authorization.

Screenshots

Privacy Policy

  • We use Github Oauth (Firebase) for user authentication. As soon as you click the login button, system opens the browser. You have to enter the login and password from your Github account.
  • As Oauth method is used for authentication, even if you log out, you may be able log in again without entering your Github login and password. Clear your browser cache after logging out if you wish to change GitHub account.
  • We get access to read:user and repo access scopes. We do not perform any write operations on your github account. Full repo scope is used only to have access to your private repos data and not to perform malicious write operations.
  • We do not store your account data anywhere outside the device local storage.

Used tools

  • Used Avocado to optimize vector drawables drawn in Figma.
  • Used gh-md-toc to create table of contents for this README.

gitstat's People

Contributors

alexandr7035 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

gitstat's Issues

UI backlog

  • Progress bar on authentication
  • #16
  • Label for empty db
  • Logout confirmation dialog
  • #17
  • #23
  • #37
  • #38
  • Handle long repo names
  • #41
  • #42
  • Disable recycler animation in filters' dialog
  • #47
  • #49
  • #50
  • Mark on toolbar icon indicating that filters are applied
  • X/Y repos count below toolbar (?)
  • Empty repositories list
  • Get rid of nested layouts
  • #57
  • #69
  • #72

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.