Ziya/README.md
rizary 67fb3a203e
feat: implement CEX analysis cards and real-time token monitoring
- Add TokenCard and CexAnalysisCard components for displaying token data
- Implement real-time Redis event streaming for token updates
- Add environment-based configuration system for dev/prod Redis servers
- Create comprehensive hunting ground dashboard with card management
- Add individual and bulk card removal functionality
- Implement browser integration for token details viewing
- Add timestamp utilities and proper type handling for Redis events
- Create production-ready configuration with 154.38.185.112 Redis server
- Add comprehensive documentation in README.md and CONTRIBUTORS.md
- Restructure project architecture with proper Electron-Vue integration

BREAKING CHANGE: Redis configuration now uses environment-based settings
2025-06-23 09:03:39 +07:00

158 lines
5.4 KiB
Markdown

# Ziya Token Monitor
A modern Electron-based desktop application for monitoring Solana token creation, CEX analysis, and developer balance source graphs. Built with Vue 3, Nuxt 3, and TypeScript in an Electron wrapper.
## 🏗️ Architecture
This project follows a hybrid architecture combining the power of Nuxt 3 for the frontend with Electron for desktop capabilities:
### Tech Stack
- **Frontend**: Vue 3 (Vapor Mode), Nuxt 3, TypeScript, Pinia, TailwindCSS + DaisyUI
- **Desktop**: Electron with secure IPC communication
- **Backend Integration**: Redis (ioredis) for real-time event streaming
- **Development**: pnpm workspaces, ESLint, hot reload
### Project Structure
```
ziya/
├── app/ # Nuxt 3 application
│ ├── components/ # Vue components
│ │ ├── TokenCard.vue # Individual token display cards
│ │ ├── CexAnalysisCard.vue # CEX analysis results
│ │ └── ...
│ ├── pages/ # Nuxt pages/routes
│ │ └── hunting-ground.vue # Main dashboard
│ ├── stores/ # Pinia state management
│ ├── utils/ # Utility functions
│ └── types/ # TypeScript definitions
├── electron/ # Electron main process
│ ├── main.ts # Electron entry point
│ ├── config/ # Configuration files
│ │ ├── environment.ts # Environment settings
│ │ └── redis.ts # Redis configuration
│ ├── handlers/ # Event handlers
│ ├── utils/ # Electron utilities
│ └── preload.ts # Preload script for IPC
├── types/ # Shared TypeScript types
│ └── redis-events.ts # Redis event definitions
└── .config/ # Configuration files
└── nuxt.ts # Nuxt configuration
```
## ✨ Current Features
### Real-time Token Dashboard
- **Three-column layout** displaying different token event types
- **Live updates** via Redis pub/sub integration
- **Individual card management** with close buttons
- **Bulk operations** with "Clear All" functionality
### Token Event Types
1. **New Token Created** - Recently minted tokens with creator information
2. **CEX Analysis** - Tokens analyzed for centralized exchange connections
3. **Max Depth Analysis** - Tokens that reached maximum analysis depth
### Interactive Features
- **Graph Visualization** - Hover tooltips showing node/edge relationships
- **Duration Display** - Time elapsed since token creation/analysis
- **Browser Integration** - Click to open token details in browser
- **Creator Information** - Display developer names and addresses
- **CEX Integration** - Show exchange connections and analysis results
## 🚀 Quick Start
### Prerequisites
- Node.js >= 18.0.0
- pnpm >= 8.0.0
- Redis server (local or Docker)
### Installation
```bash
# Clone and install
git clone <repository-url>
cd muhafidh/ziya
pnpm install
# Start Redis (Docker)
docker run -d --name bismillahdao-redis -p 6379:6379 redis:alpine
# Start development
pnpm run dev
```
## 🔧 Environment Configuration
The application automatically configures Redis connection based on environment:
### Development
- **Redis**: `localhost:6379` (local) or `bismillahdao-redis:6379` (Docker)
- **Build**: `pnpm run dev`
- **Features**: Hot reload, debug logging
### Production
- **Redis**: `154.38.185.112:6379` (production server)
- **Build**: `pnpm run build:prod`
- **Features**: Optimized builds, minimal logging
## 📋 Available Scripts
```bash
# Development
pnpm run dev # Start development with hot reload
pnpm run dev:nuxt # Start only Nuxt dev server
pnpm run dev:electron # Start only Electron
# Building
pnpm run build # Production build
pnpm run build:dev # Development build
pnpm run build:prod # Production build (explicit)
# Utilities
pnpm run lint # Run ESLint
pnpm run type-check # TypeScript type checking
```
## 🎯 Key Components
### TokenCard.vue
- Displays new token creation events
- Shows creator information and timestamps
- Handles browser integration for token details
### CexAnalysisCard.vue
- Shows CEX analysis and max depth results
- Displays graph data with interactive tooltips
- Includes duration calculation and CEX information
### hunting-ground.vue
- Main dashboard page with three-column layout
- Manages real-time Redis event subscriptions
- Handles card state management and user interactions
## 🔌 Redis Integration
The application subscribes to three Redis channels:
- `new_token_created` - New token creation events
- `token_cex_updated` - CEX analysis completion
- `max_depth_reached` - Maximum analysis depth events
Events are automatically forwarded from Electron main process to renderer via secure IPC.
## 🔒 Security Features
- **Context Isolation**: Enabled for all renderer processes
- **Sandboxing**: Renderer processes run in sandbox mode
- **Secure IPC**: All communication through preload scripts
- **No Node.js Exposure**: APIs not directly accessible to renderer
## 🤝 Contributing
For detailed development setup, code style guidelines, and contribution workflow, please see [CONTRIBUTORS.md](./CONTRIBUTORS.md).
## 📄 License
MIT License - see LICENSE file for details.
---
**Ready to monitor Solana tokens in real-time! 🚀**