From c414960947b4f99f45bd6a90b8320b0d7118f0d3 Mon Sep 17 00:00:00 2001 From: Rahul Vyas Date: Sat, 30 May 2026 13:00:47 +0530 Subject: [PATCH 1/4] configured deployed.yml according to vite-react app --- .github/workflows/deploy.yml | 84 ++++++++++++------------------------ vite.config.js | 10 +++-- 2 files changed, 33 insertions(+), 61 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index b2622c6..5c10ebf 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -1,91 +1,61 @@ # Workflow for building and deploying to GitHub Pages -name: Deploy site to Pages +name: Deploy Vite App to GitHub Pages on: - # Runs on pushes targeting the default branch push: - branches: ["main"] + branches: + - main - # Allows you to run this workflow manually from the Actions tab workflow_dispatch: -# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages permissions: contents: read pages: write id-token: write -# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. -# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. concurrency: - group: "pages" - cancel-in-progress: false + group: github-pages + cancel-in-progress: true jobs: - # Build job build: runs-on: ubuntu-latest + steps: - - name: Checkout + - name: Checkout repository uses: actions/checkout@v4 - - name: Detect package manager - id: detect-package-manager - run: | - if [ -f "${{ github.workspace }}/yarn.lock" ]; then - echo "manager=yarn" >> $GITHUB_OUTPUT - echo "command=install" >> $GITHUB_OUTPUT - echo "runner=yarn" >> $GITHUB_OUTPUT - exit 0 - elif [ -f "${{ github.workspace }}/package.json" ]; then - echo "manager=npm" >> $GITHUB_OUTPUT - echo "command=ci" >> $GITHUB_OUTPUT - echo "runner=npx --no-install" >> $GITHUB_OUTPUT - exit 0 - else - echo "Unable to determine package manager" - exit 1 - fi - - name: Setup Node + + - name: Setup Node.js uses: actions/setup-node@v4 with: - node-version: "20" - cache: ${{ steps.detect-package-manager.outputs.manager }} - - name: Setup Pages + node-version: 20 + cache: npm + + - name: Setup GitHub Pages uses: actions/configure-pages@v5 - with: - # Automatically inject basePath in your Next.js configuration file and disable - # server side image optimization (https://nextjs.org/docs/api-reference/next/image#unoptimized). - # - # You may remove this line if you want to manage the configuration yourself. - static_site_generator: next - - name: Restore cache - uses: actions/cache@v4 - with: - path: | - .next/cache - # Generate a new cache whenever packages or source files change. - key: ${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json', '**/yarn.lock') }}-${{ hashFiles('**.[jt]s', '**.[jt]sx') }} - # If source files changed but packages didn't, rebuild from a prior cache. - restore-keys: | - ${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json', '**/yarn.lock') }}- + - name: Install dependencies - run: ${{ steps.detect-package-manager.outputs.manager }} ${{ steps.detect-package-manager.outputs.command }} - - name: Build - run: ${{ steps.detect-package-manager.outputs.runner }} next build - - name: Upload artifact + run: npm ci + + - name: Build application + run: npm run build + + - name: Upload build artifact uses: actions/upload-pages-artifact@v3 with: - path: ./out + path: ./dist - # Deployment job deploy: + needs: build + + runs-on: ubuntu-latest + environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} - runs-on: ubuntu-latest - needs: build + steps: - name: Deploy to GitHub Pages id: deployment - uses: actions/deploy-pages@v5 + uses: actions/deploy-pages@v5 \ No newline at end of file diff --git a/vite.config.js b/vite.config.js index 9ffcc67..52f25db 100644 --- a/vite.config.js +++ b/vite.config.js @@ -1,6 +1,8 @@ -import { defineConfig } from 'vite' -import react from '@vitejs/plugin-react' +import { defineConfig } from "vite"; +import react from "@vitejs/plugin-react"; -export default defineConfig({ +export default defineConfig(({ mode }) => ({ plugins: [react()], -}) + + base: mode === "production" ? "/OrgExplorer/" : "/", +})); From f160c8dab0f5f6d0f3618af8cfcb2a4cd6364d3c Mon Sep 17 00:00:00 2001 From: Rahul Vyas Date: Sat, 30 May 2026 13:08:21 +0530 Subject: [PATCH 2/4] feat: add Prettier configuration file --- .prettierrc | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 .prettierrc diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..cd32a12 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,11 @@ +{ + "semi": true, + "singleQuote": false, + "tabWidth": 2, + "useTabs": false, + "trailingComma": "es5", + "printWidth": 80, + "bracketSpacing": true, + "arrowParens": "always", + "endOfLine": "lf" +} From 00b73c64ab16a9576393e6ee1540f3d3e2947e3f Mon Sep 17 00:00:00 2001 From: Rahul Vyas Date: Sat, 30 May 2026 13:15:20 +0530 Subject: [PATCH 3/4] formatted all the files by running npm script --- .coderabbit.yaml | 8 +- .github/ISSUE_TEMPLATE/good_first_issue.yml | 2 +- .github/PULL_REQUEST_TEMPLATE.md | 13 +- .github/release-drafter.yml | 98 ++-- .github/workflows/deploy.yml | 2 +- .github/workflows/sync-pr-labels.yml | 32 +- .github/workflows/version-release.yml | 10 +- .pre-commit-config.yaml | 6 +- .prettierignore | 5 + CONTRIBUTING.md | 32 +- README.md | 36 +- eslint.config.js | 18 +- package.json | 4 +- src/App.jsx | 70 +-- src/components/Navbar.jsx | 139 ++++-- src/components/RateLimitBanner.jsx | 63 ++- src/components/UI.jsx | 251 +++++++---- src/context/AppContext.jsx | 200 +++++---- src/hooks/useSortedData.js | 37 +- src/main.jsx | 14 +- src/pages/AnalyticsPage.jsx | 237 +++++++--- src/pages/ContributorsPage.jsx | 443 ++++++++++++++---- src/pages/GovernancePage.jsx | 468 ++++++++++++++------ src/pages/HomePage.jsx | 291 ++++++++---- src/pages/NetworkPage.jsx | 435 ++++++++++++------ src/pages/OverviewPage.jsx | 337 +++++++++++--- src/pages/RepositoriesPage.jsx | 419 ++++++++++++++---- src/pages/SettingsPage.jsx | 372 ++++++++++++---- src/services/analytics.js | 276 ++++++++---- src/services/github.js | 147 +++--- src/styles/global.css | 80 ++-- 31 files changed, 3205 insertions(+), 1340 deletions(-) create mode 100644 .prettierignore diff --git a/.coderabbit.yaml b/.coderabbit.yaml index f69abfe..5754fec 100644 --- a/.coderabbit.yaml +++ b/.coderabbit.yaml @@ -173,7 +173,7 @@ reviews: - Ensure that "use client" is being used - Ensure that only features that allow pure client-side rendering are used - NextJS best practices (including file structure, API routes, and static generation methods) are used. - + TypeScript: - Avoid 'any', use explicit types - Prefer 'import type' for type imports @@ -217,7 +217,7 @@ reviews: - path: "**/*.{py}" instructions: | Python: - - Check for major PEP 8 violations and Python best practices. + - Check for major PEP 8 violations and Python best practices. # Solidity Smart Contract files - path: "**/*.sol" @@ -244,7 +244,6 @@ reviews: - Integer overflows/underflows (if using unchecked blocks) - Front-running risks where applicable - # Javascript/Typescript test files - path: "**/*.test.{ts,tsx,js,jsx}" instructions: | @@ -254,7 +253,7 @@ reviews: - Async behavior is properly tested - Accessibility testing is included - Test descriptions are sufficiently detailed to clarify the purpose of each test - - The tests are not tautological + - The tests are not tautological # Solidity test files - path: "**/*.test.{sol}" @@ -269,7 +268,6 @@ reviews: - Deterministic behavior (tests should not rely on implicit execution order or shared mutable state). - Clear and descriptive test names that reflect the intended behavior being validated. - # Asset files (images, fonts, etc.) - path: "assets/**/*" instructions: | diff --git a/.github/ISSUE_TEMPLATE/good_first_issue.yml b/.github/ISSUE_TEMPLATE/good_first_issue.yml index 6f1ae36..c01d8ee 100644 --- a/.github/ISSUE_TEMPLATE/good_first_issue.yml +++ b/.github/ISSUE_TEMPLATE/good_first_issue.yml @@ -45,7 +45,7 @@ body: attributes: value: | ## AI Notice - Important! - + We encourage contributors to use AI tools responsibly when creating Pull Requests. While AI can be a valuable aid, it is essential to ensure that your contributions meet the task requirements, build successfully, include relevant tests, and pass all linters. Submissions that do not meet these standards may be closed without warning to maintain the quality and integrity of the project. Please take the time to understand the changes you are proposing and their impact. - type: checkboxes diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 68c5334..de13795 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,18 +1,21 @@ -### Addressed Issues: +### Addressed Issues: + + Fixes #(issue number) +### Screenshots/Recordings: -### Screenshots/Recordings: +### Additional Notes: -### Additional Notes: - ## Checklist + + - [ ] My code follows the project's code style and conventions - [ ] I have made corresponding changes to the documentation - [ ] My changes generate no new warnings or errors @@ -21,4 +24,4 @@ Fixes #(issue number) ## โš ๏ธ AI Notice - Important! - We encourage contributors to use AI tools responsibly when creating Pull Requests. While AI can be a valuable aid, it is essential to ensure that your contributions meet the task requirements, build successfully, include relevant tests, and pass all linters. Submissions that do not meet these standards may be closed without warning to maintain the quality and integrity of the project. Please take the time to understand the changes you are proposing and their impact. +We encourage contributors to use AI tools responsibly when creating Pull Requests. While AI can be a valuable aid, it is essential to ensure that your contributions meet the task requirements, build successfully, include relevant tests, and pass all linters. Submissions that do not meet these standards may be closed without warning to maintain the quality and integrity of the project. Please take the time to understand the changes you are proposing and their impact. diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml index 5df0eb4..f24b7d3 100644 --- a/.github/release-drafter.yml +++ b/.github/release-drafter.yml @@ -1,62 +1,62 @@ -name-template: 'v$RESOLVED_VERSION' -tag-template: 'v$RESOLVED_VERSION' +name-template: "v$RESOLVED_VERSION" +tag-template: "v$RESOLVED_VERSION" categories: - - title: '๐Ÿš€ Features' + - title: "๐Ÿš€ Features" labels: - - 'feature' - - 'enhancement' - - 'feat' - - title: '๐Ÿ› Bug Fixes' + - "feature" + - "enhancement" + - "feat" + - title: "๐Ÿ› Bug Fixes" labels: - - 'fix' - - 'bugfix' - - 'bug' - - title: '๐Ÿงฐ Maintenance' + - "fix" + - "bugfix" + - "bug" + - title: "๐Ÿงฐ Maintenance" labels: - - 'chore' - - 'maintenance' - - 'refactor' - - title: '๐Ÿ“ Documentation' + - "chore" + - "maintenance" + - "refactor" + - title: "๐Ÿ“ Documentation" labels: - - 'documentation' - - 'docs' - - title: '๐Ÿ”ง Configuration' + - "documentation" + - "docs" + - title: "๐Ÿ”ง Configuration" labels: - - 'configuration' - - 'config' - - title: '๐Ÿงช Tests' + - "configuration" + - "config" + - title: "๐Ÿงช Tests" labels: - - 'tests' - - 'test' - - title: 'โฌ†๏ธ Dependencies' + - "tests" + - "test" + - title: "โฌ†๏ธ Dependencies" labels: - - 'dependencies' - - 'deps' - - title: '๐ŸŽจ Frontend' + - "dependencies" + - "deps" + - title: "๐ŸŽจ Frontend" labels: - - 'frontend' - - 'ui' - - title: 'โš™๏ธ Backend' + - "frontend" + - "ui" + - title: "โš™๏ธ Backend" labels: - - 'backend' - - 'api' - - title: '๐Ÿ” Security' + - "backend" + - "api" + - title: "๐Ÿ” Security" labels: - - 'security' - - title: '๐Ÿณ Docker' + - "security" + - title: "๐Ÿณ Docker" labels: - - 'docker' - - title: '๐Ÿš€ CI/CD' + - "docker" + - title: "๐Ÿš€ CI/CD" labels: - - 'ci-cd' - - 'github-actions' - - title: '๐Ÿ‘ฅ Contributors' + - "ci-cd" + - "github-actions" + - title: "๐Ÿ‘ฅ Contributors" labels: - - 'first-time-contributor' - - 'external-contributor' + - "first-time-contributor" + - "external-contributor" -change-template: '- $TITLE @$AUTHOR (#$NUMBER)' +change-template: "- $TITLE @$AUTHOR (#$NUMBER)" change-title-escapes: '\<*_&' template: | @@ -71,14 +71,14 @@ template: | **Full Changelog**: https://github.com/$OWNER/$REPOSITORY/compare/$PREVIOUS_TAG...v$RESOLVED_VERSION exclude-labels: - - 'skip-changelog' - - 'no-changelog' - - 'duplicate' - - 'invalid' - - 'wontfix' + - "skip-changelog" + - "no-changelog" + - "duplicate" + - "invalid" + - "wontfix" replacers: - search: '/CVE-(\d{4})-(\d+)/g' - replace: '[CVE-$1-$2](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-$1-$2)' + replace: "[CVE-$1-$2](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-$1-$2)" include-pre-releases: false diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 5c10ebf..93f1e54 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -58,4 +58,4 @@ jobs: steps: - name: Deploy to GitHub Pages id: deployment - uses: actions/deploy-pages@v5 \ No newline at end of file + uses: actions/deploy-pages@v5 diff --git a/.github/workflows/sync-pr-labels.yml b/.github/workflows/sync-pr-labels.yml index 97155c8..97b1184 100644 --- a/.github/workflows/sync-pr-labels.yml +++ b/.github/workflows/sync-pr-labels.yml @@ -93,13 +93,13 @@ jobs: github-token: ${{ secrets.GITHUB_TOKEN }} script: | const prBody = context.payload.pull_request.body || ''; - + // Match patterns: Fixes #123, Closes #123, Resolves #123, etc. const issuePatterns = [ /(?:fix|fixes|fixed|close|closes|closed|resolve|resolves|resolved)\s+#(\d+)/gi, /#(\d+)/g ]; - + let issueNumber = null; for (const pattern of issuePatterns) { const match = prBody.match(pattern); @@ -109,7 +109,7 @@ jobs: break; } } - + core.setOutput('issue_number', issueNumber || ''); return issueNumber; @@ -121,7 +121,7 @@ jobs: script: | const issueNumber = '${{ steps.extract-issue.outputs.issue_number }}'; const prNumber = context.payload.pull_request.number; - + try { const issue = await github.rest.issues.get({ owner: context.repo.owner, @@ -185,7 +185,7 @@ jobs: script: | const prNumber = context.payload.pull_request.number; const changedFiles = JSON.parse('${{ steps.changed-files.outputs.files }}'); - + const fileLabels = []; const labelMappings = { 'documentation': ['.md', 'README', 'CONTRIBUTING', 'LICENSE', '.txt'], @@ -200,7 +200,7 @@ jobs: 'docker': ['Dockerfile', 'docker-compose', '.dockerignore'], 'ci-cd': ['.github/', '.gitlab-ci', 'Jenkinsfile', '.circleci'] }; - + for (const file of changedFiles) { for (const [label, patterns] of Object.entries(labelMappings)) { for (const pattern of patterns) { @@ -212,7 +212,7 @@ jobs: } } } - + if (fileLabels.length > 0) { console.log(`Applying file-based labels: ${fileLabels.join(', ')}`); await github.rest.issues.addLabels({ @@ -237,12 +237,12 @@ jobs: repo: context.repo.repo, pull_number: prNumber }); - + const additions = pr.data.additions; const deletions = pr.data.deletions; const totalChanges = additions + deletions; console.log(`PR has ${additions} additions and ${deletions} deletions (${totalChanges} total changes)`); - + let sizeLabel = ''; if (totalChanges <= 10) { sizeLabel = 'size/XS'; @@ -255,19 +255,19 @@ jobs: } else { sizeLabel = 'size/XL'; } - + console.log(`Applying size label: ${sizeLabel}`); - + const currentLabels = await github.rest.issues.listLabelsOnIssue({ owner: context.repo.owner, repo: context.repo.repo, issue_number: prNumber }); - + const sizeLabelsToRemove = currentLabels.data .map(label => label.name) .filter(name => name.startsWith('size/')); - + for (const label of sizeLabelsToRemove) { await github.rest.issues.removeLabel({ owner: context.repo.owner, @@ -276,7 +276,7 @@ jobs: name: label }); } - + await github.rest.issues.addLabels({ owner: context.repo.owner, repo: context.repo.repo, @@ -294,7 +294,7 @@ jobs: script: | const prNumber = context.payload.pull_request.number; const prAuthor = context.payload.pull_request.user.login; - + try { const commits = await github.rest.repos.listCommits({ owner: context.repo.owner, @@ -362,4 +362,4 @@ jobs: console.log('='.repeat(50)); console.log(`Current labels on PR #${prNumber}:`); console.log(currentLabels.join(', ') || 'No labels'); - console.log('='.repeat(50)); \ No newline at end of file + console.log('='.repeat(50)); diff --git a/.github/workflows/version-release.yml b/.github/workflows/version-release.yml index 981ebab..26f103a 100644 --- a/.github/workflows/version-release.yml +++ b/.github/workflows/version-release.yml @@ -5,7 +5,7 @@ on: branches: - main paths: - - 'VERSION' + - "VERSION" permissions: contents: write @@ -14,7 +14,7 @@ jobs: release: if: ${{ github.repository_owner == 'AOSSIE-Org' }} runs-on: ubuntu-latest - + steps: - name: Checkout code uses: actions/checkout@v4 @@ -62,16 +62,16 @@ jobs: github-token: ${{ secrets.GITHUB_TOKEN }} script: | const version = 'v${{ steps.get_version.outputs.version }}'; - + // Get all releases const { data: releases } = await github.rest.repos.listReleases({ owner: context.repo.owner, repo: context.repo.repo, }); - + // Find the draft release const draftRelease = releases.find(release => release.draft === true); - + if (draftRelease) { console.log(`Found draft release: ${draftRelease.name}`); diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 2a9b56d..6b830ba 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -23,7 +23,7 @@ repos: - id: check-merge-conflict - id: check-added-large-files - id: mixed-line-ending - args: ['--fix=lf'] + args: ["--fix=lf"] # ---------------------------------- # 2. Config & data files validation @@ -42,11 +42,11 @@ repos: rev: v1.4.0 hooks: - id: detect-secrets - + # args: ['--baseline', '.secrets.baseline'] (Maintainers should add a .secrets.baseline file for secret scanning.) # ============================================================================== -# IMPORTANT: +# IMPORTANT: # Pre-commit runs locally every time you commit; only simple logic should be included here. # Heavy operations should be handled by CI/CD pipelines (GitHub Actions, etc.) # ============================================================================== diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..33c4a87 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,5 @@ +node_modules +dist +build +package-lock.json +yarn.lock \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 286b79e..e2bb064 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -50,12 +50,12 @@ 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`) | +| 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`) | Approximate layout: @@ -163,14 +163,14 @@ Fix any ESLint or TypeScript errors reported by these commands. Conventional prefixes help scan history: -| Prefix | Use for | -|--------|---------| -| `feat:` | New user-facing behavior | -| `fix:` | Bug fixes | -| `docs:` | Documentation only | -| `style:` | Formatting, no logic change | -| `refactor:` | Internal restructuring | -| `chore:` | Tooling, config, dependencies | +| Prefix | Use for | +| ----------- | ----------------------------- | +| `feat:` | New user-facing behavior | +| `fix:` | Bug fixes | +| `docs:` | Documentation only | +| `style:` | Formatting, no logic change | +| `refactor:` | Internal restructuring | +| `chore:` | Tooling, config, dependencies | Example: @@ -224,17 +224,21 @@ Use rebase or merge according to what maintainers prefer; rebasing keeps history ```markdown ## Description + Brief summary of changes. ## Related issue + Fixes #23 ## Testing + - `npm run lint` - `npm run build` - Manual: โ€ฆ ## Checklist + See PR template. ``` diff --git a/README.md b/README.md index 3c5adf2..a3fcd5c 100644 --- a/README.md +++ b/README.md @@ -71,21 +71,25 @@ TODO: List your main features here: TODO: Update based on your project ### Frontend + - React / Next.js / Flutter / React Native - 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 ### Blockchain (if applicable) + - Solidity / solana / cardano / ergo Smart Contracts - Hardhat / Truffle / foundry - Web3.js / Ethers.js / Wagmi @@ -98,21 +102,21 @@ TODO: Update based on your project 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. + - [ ] 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] + - [ ] 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. + - [ ] 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. + - [ ] 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. --- @@ -135,12 +139,14 @@ TODO: Add your system architecture diagram here ``` 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) Example structure to include: + - Frontend components - Backend services - Database architecture @@ -241,8 +247,8 @@ For detailed setup instructions, please refer to our [Installation Guide](./docs TODO: Add screenshots showcasing your application -| | | | -|---|---|---| +| | | | +| ------------ | ------------ | ------------ | | Screenshot 1 | Screenshot 2 | Screenshot 3 | --- @@ -277,4 +283,4 @@ Thanks a lot for spending your time helping TODO grow. Keep rocking ๐Ÿฅ‚ [![Contributors](https://contrib.rocks/image?repo=AOSSIE-Org/TODO)](https://github.com/AOSSIE-Org/TODO/graphs/contributors) -ยฉ 2025 AOSSIE +ยฉ 2025 AOSSIE diff --git a/eslint.config.js b/eslint.config.js index 5e6b472..75d3c46 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -1,14 +1,14 @@ -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' +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']), + globalIgnores(["dist"]), { - files: ['**/*.{ts,tsx}'], + files: ["**/*.{ts,tsx}"], extends: [ js.configs.recommended, tseslint.configs.recommended, @@ -20,4 +20,4 @@ export default defineConfig([ globals: globals.browser, }, }, -]) +]); diff --git a/package.json b/package.json index 73ab888..f070819 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,9 @@ "scripts": { "dev": "vite", "build": "vite build", - "preview": "vite preview" + "preview": "vite preview", + "format": "prettier . --write", + "format:check": "prettier . --check" }, "dependencies": { "react": "^18.3.1", diff --git a/src/App.jsx b/src/App.jsx index 28cce36..923a9c0 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -1,38 +1,42 @@ -import React from 'react' -import { Routes, Route, Navigate } from 'react-router-dom' -import { AppProvider } from './context/AppContext' -import Navbar from './components/Navbar' -import RateLimitBanner from './components/RateLimitBanner' -import HomePage from './pages/HomePage' -import OverviewPage from './pages/OverviewPage' -import RepositoriesPage from './pages/RepositoriesPage' -import ContributorsPage from './pages/ContributorsPage' -import NetworkPage from './pages/NetworkPage' -import AnalyticsPage from './pages/AnalyticsPage' -import GovernancePage from './pages/GovernancePage' -import SettingsPage from './pages/SettingsPage' +import React from "react"; +import { Routes, Route, Navigate } from "react-router-dom"; +import { AppProvider } from "./context/AppContext"; +import Navbar from "./components/Navbar"; +import RateLimitBanner from "./components/RateLimitBanner"; +import HomePage from "./pages/HomePage"; +import OverviewPage from "./pages/OverviewPage"; +import RepositoriesPage from "./pages/RepositoriesPage"; +import ContributorsPage from "./pages/ContributorsPage"; +import NetworkPage from "./pages/NetworkPage"; +import AnalyticsPage from "./pages/AnalyticsPage"; +import GovernancePage from "./pages/GovernancePage"; +import SettingsPage from "./pages/SettingsPage"; function Layout({ children }) { return ( -
+
{children}
-
+
V2.0.0 ยท GITHUB ยท DOCUMENTATION ยท TERMS 2026 ORGEXPLORER ยท BUILT BY RITIK
- ) + ); } export default function App() { @@ -40,17 +44,17 @@ export default function App() { - } /> - } /> + } /> + } /> } /> } /> - } /> - } /> - } /> - } /> - } /> + } /> + } /> + } /> + } /> + } /> - ) + ); } diff --git a/src/components/Navbar.jsx b/src/components/Navbar.jsx index 75ac7b8..832139f 100644 --- a/src/components/Navbar.jsx +++ b/src/components/Navbar.jsx @@ -1,73 +1,120 @@ -import React from 'react' -import { NavLink, useNavigate } from 'react-router-dom' -import { FiSettings, FiZap } from 'react-icons/fi' -import { useApp } from '../context/AppContext' +import React from "react"; +import { NavLink, useNavigate } from "react-router-dom"; +import { FiSettings, FiZap } from "react-icons/fi"; +import { useApp } from "../context/AppContext"; const LINKS = [ - { to: '/overview', label: 'Overview' }, - { to: '/repositories', label: 'Repositories' }, - { to: '/contributors', label: 'Contributors' }, - { to: '/network', label: 'Network' }, - { to: '/analytics', label: 'Analytics' }, - { to: '/governance', label: 'Governance' }, -] + { to: "/overview", label: "Overview" }, + { to: "/repositories", label: "Repositories" }, + { to: "/contributors", label: "Contributors" }, + { to: "/network", label: "Network" }, + { to: "/analytics", label: "Analytics" }, + { to: "/governance", label: "Governance" }, +]; export default function Navbar() { - const { orgs, rateLimit } = useApp() - const navigate = useNavigate() - const hasData = orgs.length > 0 - const lowLimit = rateLimit && rateLimit.remaining < 15 + const { orgs, rateLimit } = useApp(); + const navigate = useNavigate(); + const hasData = orgs.length > 0; + const lowLimit = rateLimit && rateLimit.remaining < 15; return ( -