Skip to content

Latest commit

Β 

History

188 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

AOSSIE

OrgExplorer

Website Discord License


OrgExplorer transforms GitHub organizations into interactive, visual intelligence dashboards. Explore repository relationships, contributor networks, activity trends, risk metrics, and organizational healthβ€”all without leaving your browser.

Key Insights

  • Repository relationship mapping
  • Contributor collaboration networks
  • Activity trends and growth patterns
  • Bus factor & single-point-of-failure detection
  • Technology stack distribution
  • Real-time organizational metrics

πŸš€ Features

  • Fully Browser-Based β€” Runs entirely in the browser with GitHub's REST API. No backend server required.

  • Organization Dashboard β€” Overview of repositories, stars, contributors, creation timeline, tech stack, and activity metrics.

  • Repository Analytics β€” Deep insights into repository health, commit frequency, contributor density, issue trends, and language composition.

  • Contributor Network Visualization β€” Graph-based view of how contributors collaborate across repositories.

  • Bus Factor & Risk Detection β€” Identify single points of failure and contributor concentration risks.

  • Activity & Growth Trends β€” Track repository creation patterns, commit activity, and engagement over time.

  • Authenticated Mode β€” Optional GitHub GraphQL API for enhanced data access and deeper analytics.


πŸ’» Tech Stack

Frontend: React 18 Β· TypeScript Β· TailwindCSS Β· Vite
Visualizations: D3.js Β· Recharts
Data: GitHub REST & GraphQL APIs
Storage: IndexedDB (browser-based caching)
Build: Vite with React plugin


πŸ—οΈ Architecture

flowchart TD

%% =========================
%% USER BROWSER - MAIN FLOW
%% =========================

subgraph USER_BROWSER["User Browser"]

    %% -------------------------
    %% UI LAYER
    %% -------------------------
    subgraph UI_LAYER["UI Layer"]
        UI1[Organization Selector]
        UI2[Repo List]
        UI3[Contributor View]
        UI4[Graph View]
        UI5[Settings View<br/>Add PAT / Refresh Data]
    end

    %% -------------------------
    %% LOGIC LAYER
    %% -------------------------
    subgraph LOGIC_LAYER["Logic Layer"]
        L1[User Interaction with UI]
        L2[UI State Handling<br/>Selection Tracking]
        L3[Cache Validation Logic<br/>Check IndexedDB]
        L4[Rate Limit Awareness]
    end

end

UI1 --> L1
UI2 --> L1
UI3 --> L1
UI4 --> L1
UI5 --> L1

L1 --> L2
L2 --> L3

%% =========================
%% CACHE CHECK
%% =========================

L3 --> CACHE_DECISION{Data cached<br/>in IndexedDB?}

CACHE_DECISION -- Yes --> LOAD_CACHE[Load Data from IndexedDB]

CACHE_DECISION -- No --> API_FLOW_START[Start Data Fetch <br/>GraphQL / REST]

%% =========================
%% AUTH MODE DECISION
%% =========================

subgraph AUTH_LAYER["GitHub API Request Logic"]

    AUTH_CHECK{PAT Available?}

    AUTH_CHECK -- Yes --> AUTH_MODE[Request using PAT<br/>Higher Rate Limit]
    AUTH_CHECK -- No --> UNAUTH_MODE[Unauthenticated Mode<br/>60 req/hour]

end

API_FLOW_START --> AUTH_CHECK

AUTH_MODE --> API_REQUEST
UNAUTH_MODE --> API_REQUEST

%% =========================
%% GITHUB API LAYER
%% =========================

API_REQUEST[GitHub API Request]
API_REQUEST --> GITHUB_LAYER[GitHub API Layer<br/>GitHub Server]

GITHUB_LAYER --> RESPONSE_CHECK{Data Response}

RESPONSE_CHECK -- Success --> STORE_DATA[Store in IndexedDB]
RESPONSE_CHECK -- Failure --> ERROR_STATE[Error Message<br/>Failed to Load Data]

STORE_DATA --> LOAD_CACHE

%% =========================
%% LOCAL STORAGE LAYER
%% =========================

subgraph LOCAL_STORAGE["Local Storage Layer"]

    subgraph INDEXED_DB["IndexedDB (via idb)"]
        DB1[Org Store]
        DB2[Repo Store]
        DB3[Contributor Store]
        DB4[Graph Store]
        DB5[Node-Edge Store]
        DB6[Metadata]
    end

    subgraph LOCAL_STORAGE_META["localStorage"]
        LS1[Last Fetched]
        LS2[TTL]
        LS3[GitHub Rate Info]
        LS4[Known Present Flags]
    end

end

STORE_DATA --> INDEXED_DB
STORE_DATA --> LOCAL_STORAGE_META

LOAD_CACHE --> VISUAL_PAGE_1
LOAD_CACHE --> VISUAL_PAGE_2

%% =========================
%% VISUALIZATION PAGE 1
%% =========================

subgraph VISUAL_PAGE_1["Page 1 - Repo + Contributors Graph"]

    subgraph GRAPH_LAYER_1["Visualization Layer (Graph Visualization)"]
        G1_NODE[Node Builder]
        G1_EDGE[Edge Builder]
        G1_LAYOUT[Layout Engine]
        G1_INTERACT[Interaction Layer<br/>Hover β†’ Tooltip<br/>Click β†’ Detail Panel]
    end

    G1_NOTE[Shows one repo with all contributors<br/>Node & Edge Form]

end

%% =========================
%% VISUALIZATION PAGE 2
%% =========================

subgraph VISUAL_PAGE_2["Page 2 - All Repos Graph"]

    subgraph GRAPH_LAYER_2["Visualization Layer (Graph Visualization)"]
        G2_NODE[Node Builder]
        G2_EDGE[Edge Builder]
        G2_LAYOUT[Layout Engine]
        G2_INTERACT[Interaction Layer<br/>Hover β†’ Tooltip<br/>Click β†’ Detail Panel]
    end

    G2_NOTE[Shows all repos<br/>Node & Edge Form]

end
Loading

System Structure

  • Frontend (React + D3.js)
  • Data Processing Layer (analytics engine)
  • GitHub REST API
  • Optional GitHub GraphQL API
  • Database (IndexedDB for caching, local storage for user settings)
  • UI Rendering Layer (dashboard, graphs, panels)

Data flows:

User β†’ Frontend β†’ API β†’ GitHub APIs β†’ Processing Layer β†’ Database β†’ UI Rendering


πŸ”„ User Flow

User enters organization name
        ↓
REST API fetches public insights
        ↓
Analytics engine computes metrics
        ↓
Dashboard renders visual intelligence
        ↓
(Optional) User enables authenticated mode

Quick Start

  1. Clone & Install

    git clone https://github.com/AOSSIE-Org/OrgExplorer.git
    cd OrgExplorer
    npm install
  2. Run Development Server

    npm run dev

    Open http://localhost:5173 in your browser.

  3. Build for Production

    npm run build

For detailed setup instructions, see CONTRIBUTING.md.


🀝 Contributing

We welcome contributions from developers, designers, and open-source enthusiasts. See CONTRIBUTING.md for:

  • How to report bugs and suggest features
  • Development workflow and coding standards
  • Pull request guidelines
  • Community communication

πŸ“ License

Licensed under the GNU General Public License v3.0. See LICENSE for details.


πŸ™ Acknowledgments

  • AOSSIE Community
  • GitHub API Documentation
  • React, Vite, and D3.js communities

Β© 2026 AOSSIE. All rights reserved.