Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 28 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,30 @@
# Vite ts default

# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

node_modules
dist
dist-ssr
*.local

# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?

## Core latex/pdflatex auxiliary files:
*.aux
*.lof
Expand Down Expand Up @@ -323,4 +350,4 @@ TSWLatexianTemp*
# REVTeX puts footnotes in the bibliography by default, unless the nofootinbib
# option is specified. Footnotes are the stored in a file with suffix Notes.bib.
# Uncomment the next line to have this generated file ignored.
#*Notes.bib
#*Notes.bib
171 changes: 58 additions & 113 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,133 +48,94 @@
---

<div align="center">
<h1>TODO: Project Name</h1>
<h1> OrgExplorer</h1>
</div>

[TODO](https://TODO.stability.nexus/) is a ... TODO: Project Description.
OrgExplorer is a lightweight, browser-based web application that helps visualize and understand activity within a GitHub organization.
It fetches publicly available data from the GitHub API and presents it in a summarized and structured way, making it easier to track repositories, contributors, and overall organizational activity beyond what GitHub’s default UI provides.

The application is designed to be fully client-side, with no backend dependency, and uses local caching to efficiently manage GitHub API rate limits.


---

## 🚀 Features

TODO: List your main features here:
### 🚀 Features

- **Organization-level insights**
View high-level information about a GitHub organization, including repository activity and overall growth indicators.

- **Repository-level analytics**
Analyze repositories within an organization, such as activity status, update frequency, issues, pull requests, and language usage.

- **Feature 1**: Description
- **Feature 2**: Description
- **Feature 3**: Description
- **Feature 4**: Description
- **Contributor summaries**
Identify and rank contributors based on their activity across repositories using aggregated contribution data.

- **Client-side caching**
Uses IndexedDB (via a lightweight wrapper) to cache fetched data locally, reducing redundant API calls and helping avoid rate limits.

- **Optional GitHub authentication**
Works with unauthenticated GitHub API calls by default, with optional support for a user-provided GitHub Personal Access Token (PAT) for higher rate limits when needed.

---

## 💻 Tech Stack

TODO: Update based on your project

### Frontend
- React / Next.js / Flutter / React Native
- React
- TypeScript
- TailwindCSS

### Backend
- Flask / FastAPI / Node.js / Supabase
- Database: PostgreSQL / SQLite / MongoDB

### AI/ML (if applicable)
- LangChain / LangGraph / LlamaIndex
- Google Gemini / OpenAI / Anthropic Claude
- Vector Database: Weaviate / Pinecone / Chroma
- RAG / Prompt Engineering / Agent Frameworks
- Github REST API
- Database: idb(for browser indexed db)

Comment on lines 90 to 93
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix “GitHub” capitalization in Tech Stack.

Docs should use the official “GitHub” spelling.

✏️ Proposed fix
-### Backend
-- Github REST API
-- Database: idb(for browser indexed db)
+### Backend
+- GitHub REST API
+- Database: idb (browser IndexedDB)
🧰 Tools
🪛 LanguageTool

[uncategorized] ~91-~91: The official name of this software platform is spelled with a capital “H”.
Context: ...TypeScript - TailwindCSS ### Backend - Github REST API - Database: idb(for browser in...

(GITHUB)

🤖 Prompt for AI Agents
In `@README.md` around lines 90 - 93, Update the Tech Stack entry under the "###
Backend" section by correcting the capitalization of "Github REST API" to the
official spelling "GitHub REST API"; locate the bullet line "- Github REST API"
and replace it with "- GitHub REST API" so the README uses the correct product
name.

### Blockchain (if applicable)
- Solidity / solana / cardano / ergo Smart Contracts
- Hardhat / Truffle / foundry
- Web3.js / Ethers.js / Wagmi
- OpenZeppelin / alchemy / Infura

---

## ✅ 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.

---

## 🔗 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)
[Main Repository](https://github.com/AOSSIE-Org/OrgExplorer)


---

## 🏗️ Architecture Diagram

TODO: Add your system architecture diagram here

```
[Architecture Diagram Placeholder]
```

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)
<img height="620" alt="image" src="https://github.com/user-attachments/assets/40b1d108-5698-4945-9662-99369f25e8ee" />

Example structure to include:
- Frontend components
- Backend services
- Database architecture
- External APIs/services
- Data flow between components

---


## 🔄 User Flow

TODO: Add user flow diagrams showing how users interact with your application
<img height="1020" alt="image" src="https://github.com/user-attachments/assets/8480c706-0a7d-4cda-bcb5-f9d61bfc4df5" />

```
[User Flow Diagram Placeholder]
```

### Key User Journeys

TODO: Document main user flows:

1. **User Journey 1**: Description
- Step 1
- Step 2
- Step 3

2. **User Journey 2**: Description
- Step 1
- Step 2
- Step 3

3. **User Journey 3**: Description
- Step 1
- Step 2
- Step 3
1. ### Explore an Organization (Default Flow)
- User opens the application
- User enters a GitHub organization name
- Application checks IndexedDB for cached data
- If cached data exists, it is loaded immediately
- Otherwise, data is fetched from the GitHub API and cached locally
- Organization and repository insights are displayed

2. ### Optional Authentication for Higher Rate Limits
- User optionally provides a GitHub Personal Access Token (PAT)
Comment on lines +118 to +127
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Remove extra spaces in ### headings.

Markdownlint flags the double space after the hashes.

📝 Proposed fix
-1. ###  Explore an Organization (Default Flow)
+1. ### Explore an Organization (Default Flow)

-2. ###  Optional Authentication for Higher Rate Limits
+2. ### Optional Authentication for Higher Rate Limits
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
1. ### Explore an Organization (Default Flow)
- User opens the application
- User enters a GitHub organization name
- Application checks IndexedDB for cached data
- If cached data exists, it is loaded immediately
- Otherwise, data is fetched from the GitHub API and cached locally
- Organization and repository insights are displayed
2. ### Optional Authentication for Higher Rate Limits
- User optionally provides a GitHub Personal Access Token (PAT)
1. ### Explore an Organization (Default Flow)
- User opens the application
- User enters a GitHub organization name
- Application checks IndexedDB for cached data
- If cached data exists, it is loaded immediately
- Otherwise, data is fetched from the GitHub API and cached locally
- Organization and repository insights are displayed
2. ### Optional Authentication for Higher Rate Limits
- User optionally provides a GitHub Personal Access Token (PAT)
🧰 Tools
🪛 markdownlint-cli2 (0.20.0)

124-124: Multiple spaces after hash on atx style heading

(MD019, no-multiple-space-atx)


132-132: Multiple spaces after hash on atx style heading

(MD019, no-multiple-space-atx)

🤖 Prompt for AI Agents
In `@README.md` around lines 124 - 133, The headings in README.md use two spaces
after the '###' which markdownlint flags; update the headings "###  Explore an
Organization (Default Flow)" and "###  Optional Authentication for Higher Rate
Limits" to have a single space after '###' (i.e., "### Explore an Organization
(Default Flow)" and "### Optional Authentication for Higher Rate Limits") so the
markdown complies with markdownlint.

- Token is stored locally in the browser
- Subsequent API requests use authenticated GitHub requests
- Enables higher rate limits and deeper data access

3. ### Refresh Organization Data
- User manually refreshes organization data
- Cached data is invalidated or updated
- Latest data is fetched from the GitHub API
- Updated insights are stored back in IndexedDB

> Note: Diagrams and flows will evolve as features and UI components are finalized.

---

Expand All @@ -184,22 +145,20 @@ TODO: Document main user flows:

TODO: List what developers need installed

- Node.js 18+ / Python 3.9+ / Flutter SDK
- Node.js 18+
- npm / yarn / pnpm
- [Any specific tools or accounts needed]

### Installation

TODO: Provide detailed setup instructions
### Installation

#### 1. Clone the Repository

```bash
git clone https://github.com/AOSSIE-Org/TODO.git
cd TODO
git clone https://github.com/AOSSIE-Org/OrgExplorer.git
cd OrgExplorer
```

#### 2. Install Dependencies
#### 3. Install Dependencies

```bash
npm install
Expand All @@ -209,15 +168,7 @@ yarn install
pnpm install
```

#### 3. Configure Environment Variables(.env.example)

Create a `.env` file in the root directory:

```env
# Add your environment variables here
API_KEY=your_api_key
DATABASE_URL=your_database_url
```

#### 4. Run the Development Server

Expand All @@ -231,19 +182,15 @@ pnpm dev

#### 5. Open your Browser

Navigate to [http://localhost:3000](http://localhost:3000) to see the application.
Navigate to [http://localhost:5173/](http://localhost:5173) to see the application.

For detailed setup instructions, please refer to our [Installation Guide](./docs/INSTALL_GUIDE.md) (if you have one).

---

## 📱 App Screenshots

TODO: Add screenshots showcasing your application

| | | |
|---|---|---|
| Screenshot 1 | Screenshot 2 | Screenshot 3 |
> Screenshots will be added once the initial UI and data visualizations are implemented.

---

Expand All @@ -257,10 +204,8 @@ Thank you for considering contributing to this project! Contributions are highly

## ✨ Maintainers

TODO: Add maintainer information

- [Maintainer Name](https://github.com/username)
- [Maintainer Name](https://github.com/username)
- [Bruno](https://github.com/Zahnentferner)

---

Expand Down
23 changes: 23 additions & 0 deletions eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import js from '@eslint/js'
import globals from 'globals'
import reactHooks from 'eslint-plugin-react-hooks'
import reactRefresh from 'eslint-plugin-react-refresh'
import tseslint from 'typescript-eslint'
import { defineConfig, globalIgnores } from 'eslint/config'

export default defineConfig([
globalIgnores(['dist']),
{
files: ['**/*.{ts,tsx}'],
extends: [
js.configs.recommended,
tseslint.configs.recommended,
reactHooks.configs.flat.recommended,
reactRefresh.configs.vite,
],
languageOptions: {
ecmaVersion: 2020,
globals: globals.browser,
},
},
])
13 changes: 13 additions & 0 deletions index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/aossie-logo.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Orgexplorer</title>
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Align the page title with project branding.

Use “OrgExplorer” to match the README and UI naming.

✏️ Proposed fix
-    <title>Orgexplorer</title>
+    <title>OrgExplorer</title>
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
<title>Orgexplorer</title>
<title>OrgExplorer</title>
🤖 Prompt for AI Agents
In `@index.html` at line 7, Update the HTML title element to match project
branding by changing the <title> element value from "Orgexplorer" to
"OrgExplorer" (modify the <title> tag in index.html accordingly) so the page
title matches the README and UI naming.

</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>
Loading