diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 286b79e..dd92f70 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -50,12 +50,15 @@ Before opening an issue, search existing ones to avoid duplicates. Useful bug re OrgExplorer is a **single-package frontend** application: -| Area | Stack | -|------|--------| -| UI | [React](https://react.dev/) 19 | -| Language | [TypeScript](https://www.typescriptlang.org/) | -| Build & dev server | [Vite](https://vite.dev/) (with `@vitejs/plugin-react`) | -| Linting | [ESLint](https://eslint.org/) 9 (flat config in `eslint.config.js`) | +| Component | Technology | +|-----------|-----------| +| **UI Framework** | React 18 with JavaScript | +| **Styling** | TailwindCSS | +| **Build Tool** | Vite | +| **Linting** | ESLint 9 | +| **Data Fetching** | GitHub REST & GraphQL APIs | +| **Visualizations** | D3.js & Recharts | +| **Storage** | IndexedDB (browser-based) | Approximate layout: @@ -63,19 +66,24 @@ Approximate layout: OrgExplorer/ ├── public/ # Static assets (e.g. logos) ├── src/ -│ ├── App.tsx # Root UI -│ ├── main.tsx # React entry -│ └── *.css # Styles -├── index.html -├── vite.config.ts -├── eslint.config.js -├── tsconfig.json # TypeScript project references -└── package.json +│ ├── App.jsx # Root component +│ ├── main.jsx # React entry point +│ ├── components/ # Reusable components +│ ├── pages/ # Page components +│ ├── context/ # Context providers +│ ├── hooks/ # Custom hooks +│ ├── services/ # API clients and utility functions +│ └── styles/ # Global & module styles +├── index.html # HTML entry point +├── vite.config.js # Vite configuration +├── eslint.config.js # ESLint rules +├── tsconfig.json # TypeScript config +└── package.json # Dependencies & scripts ``` There is **no `test` script** in `package.json` yet. Before opening a PR, run **lint** and **build** locally (see below). -## Getting started +## Getting Started ### Prerequisites @@ -229,10 +237,7 @@ Brief summary of changes. ## Related issue Fixes #23 -## Testing -- `npm run lint` -- `npm run build` -- Manual: … +### JavaScript & React ## Checklist See PR template. @@ -240,14 +245,9 @@ See PR template. ## Code style -### TypeScript and React - -- Follow the existing **ESLint** setup in `eslint.config.js` (`typescript-eslint`, React Hooks, React Refresh for Vite). -- Prefer `const`; use `let` only when reassignment is needed. -- Use meaningful names; keep components and functions focused. -- Match formatting and patterns in nearby files. - -### General +- **No unnecessary dependencies** — Use browser APIs when possible +- **No secrets or large artifacts** — Don't commit API keys, build outputs, or node_modules +- **Keep it simple** — Avoid over-engineering; favor readability - Avoid unnecessary dependencies. - Do not commit secrets or large generated artifacts unrelated to the feature. @@ -265,4 +265,10 @@ See PR template. --- -Thank you for helping improve OrgExplorer. +## Questions? + +- 💬 **Discord**: Ask on [AOSSIE server](https://discord.gg/hjUhu33uAn) +- 🐛 **Bug reports**: Open an [issue](https://github.com/AOSSIE-Org/OrgExplorer/issues) +- 💡 **Ideas**: Start a [discussion](https://github.com/AOSSIE-Org/OrgExplorer/discussions) + +Thank you for contributing to OrgExplorer! 🎉 diff --git a/README.md b/README.md index 3c5adf2..7cb9cea 100644 --- a/README.md +++ b/README.md @@ -3,278 +3,331 @@
+ AOSSIE -
-  +
- -
-[![Static Badge](https://img.shields.io/badge/aossie.org/TODO-228B22?style=for-the-badge&labelColor=FFC517)](https://TODO.aossie.org/) - - - -
- - -

- - -Telegram Badge -   - -X (formerly Twitter) Badge +X Badge    - Discord Badge    - - - Medium Badge -   - LinkedIn Badge    - Youtube Badge -

+    ---- +[![License](https://img.shields.io/badge/License-GPLv3-blue.svg)](LICENSE) -
-

TODO: Project Name

-[TODO](https://TODO.stability.nexus/) is a ... TODO: Project Description. +--- + +**OrgExplorer** transforms GitHub organizations into interactive, visual intelligence dashboards. Explore repository relationships, compare two or more organizations, contributor networks, activity trends, risk metrics, and organizational health—all without leaving your browser. + +### Key Insights + +- Organizational structure and repository relationships +- Comparative analysis of multiple organizations +- 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 -TODO: List your main features here: +- **Fully Browser-Based** — Runs entirely in the browser using GitHub APIs with no backend server required. -- **Feature 1**: Description -- **Feature 2**: Description -- **Feature 3**: Description -- **Feature 4**: Description +- **Organization Overview Dashboard** — Explore repositories, contributors, activity trends, tech stack distribution, and organization growth insights. ---- +- **Advanced Repository Analytics** — Analyze repository activity, contributor density, issue and PR trends, health metrics, and lifecycle status. -## 💻 Tech Stack +- **Contributor & Repository Network Graphs** — Interactive visualizations for contributor collaboration and repository-centric contributor relationships. + +- **Multi-Organization Analysis** — Compare and analyze multiple GitHub organizations together. + +- **Repository Health & Governance Insights** — Detect inactive repositories, stale issues/PRs, missing licenses, and contributor concentration risks. -TODO: Update based on your project +- **Time-Series Activity Charts** — Visualize weekly and monthly repository, issue, and pull request activity trends. -### Frontend -- React / Next.js / Flutter / React Native -- TypeScript -- TailwindCSS +- **Persistent API Cache & Performance Optimization** — IndexedDB-powered caching and optimized handling for large organizations and datasets. -### Backend -- Flask / FastAPI / Node.js / Supabase -- Database: PostgreSQL / SQLite / MongoDB +- **Personal Access Token (PAT) & API Quota Support** — Optional authenticated mode with rate limit awareness and enhanced API access. -### AI/ML (if applicable) -- LangChain / LangGraph / LlamaIndex -- Google Gemini / OpenAI / Anthropic Claude -- Vector Database: Weaviate / Pinecone / Chroma -- RAG / Prompt Engineering / Agent Frameworks +- **Advanced Repository Explorer** — Interactive repository table with filtering, sorting, and computed analytics metrics. -### Blockchain (if applicable) -- Solidity / solana / cardano / ergo Smart Contracts -- Hardhat / Truffle / foundry -- Web3.js / Ethers.js / Wagmi -- OpenZeppelin / alchemy / Infura +- **Export & Share Features** — Export analytics reports and share application state through URL-based deep linking. + +--- + +## 💻 Tech Stack + +**Frontend**: React 18 · JavaScript · TailwindCSS · Vite +**Visualizations**: D3.js · Recharts +**Data**: GitHub REST & GraphQL APIs +**Storage**: IndexedDB (browser-based caching), Local Storage (user settings) +**Build**: Vite with React plugin --- ## ✅ Project Checklist -TODO: Complete applicable items based on your project type - -- [ ] **The protocol** (if applicable): - - [ ] has been described and formally specified in a paper. - - [ ] has had its main properties mathematically proven. - - [ ] has been formally verified. -- [ ] **The smart contracts** (if applicable): - - [ ] were thoroughly reviewed by at least two knights of The Stable Order. - - [ ] were deployed to: [Add deployment details] -- [ ] **The mobile app** (if applicable): - - [ ] has an _About_ page containing the Stability Nexus's logo and pointing to the social media accounts of the Stability Nexus. - - [ ] is available for download as a release in this repo. - - [ ] is available in the relevant app stores. -- [ ] **The AI/ML components** (if applicable): - - [ ] LLM/model selection and configuration are documented. - - [ ] Prompts and system instructions are version-controlled. - - [ ] Content safety and moderation mechanisms are implemented. - - [ ] API keys and rate limits are properly managed. +- [x] Organization overview dashboard implemented +- [x] Repository-level analytics implemented +- [x] Contributor graph visualization system built +- [x] Advanced GraphQL authenticated mode +- [x] Enterprise-grade caching and rate optimization +- [x] Historical data tracking engine --- ## 🔗 Repository Links -TODO: Update with your repository structure - -1. [Main Repository](https://github.com/AOSSIE-Org/TODO) -2. [Frontend](https://github.com/AOSSIE-Org/TODO/tree/main/frontend) (if separate) -3. [Backend](https://github.com/AOSSIE-Org/TODO/tree/main/backend) (if separate) +1. [Main Repository](https://github.com/AOSSIE-Org/OrgExplorer) --- ## 🏗️ Architecture Diagram -TODO: Add your system architecture diagram here +```mermaid +flowchart TD -``` -[Architecture Diagram Placeholder] -``` +%% ========================= +%% USER BROWSER - MAIN FLOW +%% ========================= -You can create architecture diagrams using: -- [Draw.io](https://draw.io) -- [Excalidraw](https://excalidraw.com) -- [Lucidchart](https://lucidchart.com) -- [Mermaid](https://mermaid.js.org) (for code-based diagrams) +subgraph USER_BROWSER["User Browser"] -Example structure to include: -- Frontend components -- Backend services -- Database architecture -- External APIs/services -- Data flow between components + %% ------------------------- + %% UI LAYER + %% ------------------------- + subgraph UI_LAYER["UI Layer"] + UI1[Organization Selector] + UI2[Repo List] + UI3[Contributor View] + UI4[Graph View] + UI5[Settings View
Add PAT / Refresh Data] + end ---- + %% ------------------------- + %% LOGIC LAYER + %% ------------------------- + subgraph LOGIC_LAYER["Logic Layer"] + L1[User Interaction with UI] + L2[UI State Handling
Selection Tracking] + L3[Cache Validation Logic
Check IndexedDB] + L4[Rate Limit Awareness] + end -## 🔄 User Flow +end -TODO: Add user flow diagrams showing how users interact with your application +UI1 --> L1 +UI2 --> L1 +UI3 --> L1 +UI4 --> L1 +UI5 --> L1 -``` -[User Flow Diagram Placeholder] -``` +L1 --> L2 +L2 --> L3 -### Key User Journeys +%% ========================= +%% CACHE CHECK +%% ========================= -TODO: Document main user flows: +L3 --> CACHE_DECISION{Data cached
in IndexedDB?} -1. **User Journey 1**: Description - - Step 1 - - Step 2 - - Step 3 +CACHE_DECISION -- Yes --> LOAD_CACHE[Load Data from IndexedDB] -2. **User Journey 2**: Description - - Step 1 - - Step 2 - - Step 3 +CACHE_DECISION -- No --> API_FLOW_START[Start Data Fetch
GraphQL / REST] -3. **User Journey 3**: Description - - Step 1 - - Step 2 - - Step 3 +%% ========================= +%% AUTH MODE DECISION +%% ========================= ---- +subgraph AUTH_LAYER["GitHub API Request Logic"] -## �🍀 Getting Started + AUTH_CHECK{PAT Available?} -### Prerequisites + AUTH_CHECK -- Yes --> AUTH_MODE[Request using PAT
Higher Rate Limit] + AUTH_CHECK -- No --> UNAUTH_MODE[Unauthenticated Mode
60 req/hour] -TODO: List what developers need installed +end -- Node.js 18+ / Python 3.9+ / Flutter SDK -- npm / yarn / pnpm -- [Any specific tools or accounts needed] +API_FLOW_START --> AUTH_CHECK -### Installation +AUTH_MODE --> API_REQUEST +UNAUTH_MODE --> API_REQUEST -TODO: Provide detailed setup instructions +%% ========================= +%% GITHUB API LAYER +%% ========================= -#### 1. Clone the Repository +API_REQUEST[GitHub API Request] +API_REQUEST --> GITHUB_LAYER[GitHub API Layer
GitHub Server] -```bash -git clone https://github.com/AOSSIE-Org/TODO.git -cd TODO -``` +GITHUB_LAYER --> RESPONSE_CHECK{Data Response} -#### 2. Install Dependencies +RESPONSE_CHECK -- Success --> STORE_DATA[Store in IndexedDB] +RESPONSE_CHECK -- Failure --> ERROR_STATE[Error Message
Failed to Load Data] -```bash -npm install -# or -yarn install -# or -pnpm install -``` +STORE_DATA --> LOAD_CACHE -#### 3. Configure Environment Variables(.env.example) +%% ========================= +%% LOCAL STORAGE LAYER +%% ========================= -Create a `.env` file in the root directory: +subgraph LOCAL_STORAGE["Local Storage Layer"] -```env -# Add your environment variables here -API_KEY=your_api_key -DATABASE_URL=your_database_url -``` + 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 -#### 4. Run the Development Server + subgraph LOCAL_STORAGE_META["localStorage"] + LS1[Last Fetched] + LS2[TTL] + LS3[GitHub Rate Info] + LS4[Known Present Flags] + end -```bash -npm run dev -# or -yarn dev -# or -pnpm dev -``` +end -#### 5. Open your Browser +STORE_DATA --> INDEXED_DB +STORE_DATA --> LOCAL_STORAGE_META -Navigate to [http://localhost:3000](http://localhost:3000) to see the application. +LOAD_CACHE --> VISUAL_PAGE_1 +LOAD_CACHE --> VISUAL_PAGE_2 -For detailed setup instructions, please refer to our [Installation Guide](./docs/INSTALL_GUIDE.md) (if you have one). +%% ========================= +%% VISUALIZATION PAGE 1 +%% ========================= ---- +subgraph VISUAL_PAGE_1["Page 1 - Repo + Contributors Graph"] -## 📱 App Screenshots + subgraph GRAPH_LAYER_1["Visualization Layer (Graph Visualization)"] + G1_NODE[Node Builder] + G1_EDGE[Edge Builder] + G1_LAYOUT[Layout Engine] + G1_INTERACT[Interaction Layer
Hover → Tooltip
Click → Detail Panel] + end -TODO: Add screenshots showcasing your application + G1_NOTE[Shows one repo with all contributors
Node & Edge Form] -| | | | -|---|---|---| -| Screenshot 1 | Screenshot 2 | Screenshot 3 | +end ---- +%% ========================= +%% VISUALIZATION PAGE 2 +%% ========================= + +subgraph VISUAL_PAGE_2["Page 2 - All Repos Graph"] -## 🙌 Contributing + subgraph GRAPH_LAYER_2["Visualization Layer (Graph Visualization)"] + G2_NODE[Node Builder] + G2_EDGE[Edge Builder] + G2_LAYOUT[Layout Engine] + G2_INTERACT[Interaction Layer
Hover → Tooltip
Click → Detail Panel] + end -⭐ Don't forget to star this repository if you find it useful! ⭐ + G2_NOTE[Shows all repos
Node & Edge Form] -Thank you for considering contributing to this project! Contributions are highly appreciated and welcomed. To ensure smooth collaboration, please refer to our [Contribution Guidelines](./CONTRIBUTING.md). +end +``` + +### System Structure + +- Frontend (React + D3.js + Recharts) +- 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 --- -## ✨ Maintainers +## 🔄 User Flow + +``` +User enters organization name + ↓ +REST API fetches public insights for organization + ↓ +Analytics engine computes metrics + ↓ +Dashboard renders visual intelligence + ↓ +(Optional) User enables advanced authenticated mode +``` + +### Key User Journeys + +1. **Clone & Install** + + ```bash + git clone https://github.com/AOSSIE-Org/OrgExplorer.git + cd OrgExplorer + npm install + ``` + +2. **Run Development Server** -TODO: Add maintainer information + ```bash + npm run dev + ``` -- [Maintainer Name](https://github.com/username) -- [Maintainer Name](https://github.com/username) + Open http://localhost:5173 in your browser. + +3. **Risk Assessment** + - Open bus factor panel + - Detect low contributor redundancy + - Review critical repositories --- +## 🍀 Getting Started + +We welcome contributions from developers, designers, and open-source enthusiasts. See [CONTRIBUTING.md](./CONTRIBUTING.md) for: + +- How to report bugs and suggest features +- Development workflow and coding standards +- Pull request guidelines +- Community communication + ## 📍 License -This project is licensed under the GNU General Public License v3.0. +This project is licensed under the GNU General Public License v3.0. See the [LICENSE](LICENSE) file for details. --- ## 💪 Thanks To All Contributors -Thanks a lot for spending your time helping TODO grow. Keep rocking 🥂 +Open source grows because of people like you. + +© 2026 AOSSIE. All rights reserved. + +--- -[![Contributors](https://contrib.rocks/image?repo=AOSSIE-Org/TODO)](https://github.com/AOSSIE-Org/TODO/graphs/contributors) +Thanks a lot for spending your time helping OrgExplorer grow. Keep rocking 🥂 -© 2025 AOSSIE + + Contributors + +