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
24 changes: 24 additions & 0 deletions apps/CortensorPulse/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# 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?
76 changes: 76 additions & 0 deletions apps/CortensorPulse/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
CortensorPulse - Hackathon #2 Submission

CortensorPulse is a backend-less, real-time observability dashboard for the Cortensor decentralized inference network. It connects directly to the official network API to provide live stats on node performance and health.

✨ Features

"At a Glance" Summary Cards: Instantly view high-level network health:

Total Active Nodes

Average Total Score (Qualitative)

Average Level (Quantitative)

Interactive Node Leaderboard: A fully searchable and sortable table of all active nodes.

Live Search & Filter: Instantly filter the entire list by a node's wallet address as you type.

One-Click Sorting: Re-order the leaderboard by Official Rank or by Total Score (high to low).

"Node Detail" Modal: Click any node to open a pop-up with granular, "deep-dive" stats, including all cognitive points, timestamps, and quantitative data.

100% Live Data: Connects directly to the official Cortensor Dashboard API (https://db-be-7.cortensor.network/leaderboard) for real-time data.

🚀 Getting Started

This project is a 100% frontend application and does not require a separate backend.

Prerequisites

Node.js (v18 or later)

npm (comes with Node.js)

Installation

Clone the repository:

git clone [https://github.com/Sanjugupta21/cortensor-pulse.git](https://github.com/Sanjugupta21/cortensor-pulse.git)


Navigate to the project directory:

cd cortensor-pulse


Install the project dependencies:

npm install


Install the icon library (if not already in package.json):

npm install lucide-react


Usage

Once the installation is complete, run the development server:

npm run dev


This will automatically open the dashboard in your browser, usually at http://localhost:5173. The app will fetch live data from the Cortensor network immediately.

👤 Maintainer

Gupta Sanju Babul

🤝 Contributing

Contributions are welcome! Please feel free to fork the repository and submit a Pull Request.

📄 License

This project is licensed under the MIT License.
29 changes: 29 additions & 0 deletions apps/CortensorPulse/eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import js from '@eslint/js'
import globals from 'globals'
import reactHooks from 'eslint-plugin-react-hooks'
import reactRefresh from 'eslint-plugin-react-refresh'
import { defineConfig, globalIgnores } from 'eslint/config'

export default defineConfig([
globalIgnores(['dist']),
{
files: ['**/*.{js,jsx}'],
extends: [
js.configs.recommended,
reactHooks.configs['recommended-latest'],
reactRefresh.configs.vite,
],
languageOptions: {
ecmaVersion: 2020,
globals: globals.browser,
parserOptions: {
ecmaVersion: 'latest',
ecmaFeatures: { jsx: true },
sourceType: 'module',
},
},
rules: {
'no-unused-vars': ['error', { varsIgnorePattern: '^[A-Z_]' }],
},
},
])
20 changes: 20 additions & 0 deletions apps/CortensorPulse/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>CortensorPulse</title>


<script src="https://cdn.tailwindcss.com"></script>

</head>
<body>

<div id="root"></div>


<script type="module" src="/src/main.jsx"></script>
</body>
</html>
Loading