A sleek, modern, and minimalistic Flutter app for monitoring your Raspberry Pi's system statistics in real-time. Features a clean dark theme with smooth animations and intuitive design.
- Live System Stats: CPU, Memory, Disk, Network, Temperature
- Real-Time Charts: Historical data visualization with smooth animations
- Process Monitoring: Top CPU processes with detailed information
- Per-Core CPU Usage: Individual core performance tracking
- Dark Theme: Sleek black background with neon accent colors
- Glassmorphism Cards: Modern frosted glass effect containers
- Neon Borders: Animated glowing borders for critical alerts
- Smooth Animations: Fluid transitions and micro-interactions
- Responsive Design: Optimized for mobile devices
- Auto-Discovery: Automatic network scanning for Raspberry Pi devices
- WebSocket Connection: Real-time data streaming
- Auto-Reconnect: Handles disconnections gracefully
- Connection Testing: Verify device accessibility before connecting
- Circular Progress Indicators: CPU, Memory, Storage usage
- Linear Progress Bars: Process-specific resource usage
- Real-Time Line Charts: Historical trends over time
- Color-Coded Status: Green/Yellow/Red indicators based on thresholds
lib/
├── core/
│ ├── theme/
│ │ └── app_theme.dart # Futuristic dark theme
│ ├── constants/
│ │ └── app_constants.dart # App-wide constants
│ └── utils/
│ └── helpers.dart # Utility functions
├── data/
│ ├── models/
│ │ └── system_stats.dart # Data models for Pi stats
│ └── services/
│ └── websocket_service.dart # WebSocket communication
├── providers/
│ └── system_stats_provider.dart # State management
├── screens/
│ ├── dashboard/
│ │ └── dashboard_screen.dart # Main monitoring dashboard
│ ├── connection/
│ │ └── connection_screen.dart # Device connection interface
│ ├── processes/
│ │ └── processes_screen.dart # Process monitoring
│ └── settings/
│ └── settings_screen.dart # App settings
├── widgets/
│ ├── cards/
│ │ └── futuristic_card.dart # Custom card components
│ ├── charts/
│ │ └── real_time_chart.dart # Chart widgets
│ └── indicators/
│ └── progress_indicators.dart # Progress visualizations
└── main.dart # App entry point
- Primary:
#00D4FF(Cyan) - Secondary:
#6C63FF(Purple) - Accent:
#00FFA3(Green) - Background:
#0A0A0A(Deep Black) - Surface:
#1A1A1A(Dark Gray) - Success:
#00FFA3(Green) - Warning:
#FFB800(Orange) - Error:
#FF4757(Red)
- Font Family: Inter (Google Fonts)
- Heading Styles: Bold, increased letter spacing
- Body Text: Regular weight, optimized readability
- Monospace: Code and numeric values
- Flutter SDK (3.5.4+)
- Dart SDK (3.5.4+)
- Android Studio or VS Code with Flutter extensions
- Raspberry Pi with WebSocket stats server running
- 📡 Pi Server Setup Guide - Complete server installation and configuration
-
Clone the Repository
git clone https://github.com/yourusername/nerva.git cd nerva -
Install Dependencies
flutter pub get
-
Run the App
flutter run
Your Raspberry Pi needs to run a WebSocket server that broadcasts system stats. The server should:
- Listen on port
8765 - Broadcast JSON data every second
- Include all system metrics (CPU, memory, disk, network, etc.)
The app includes several configurable constants in lib/core/constants/app_constants.dart:
- WebSocket port and connection settings
- UI spacing and animation durations
- Performance thresholds for warnings
- Chart data retention limits
- System Overview: Uptime, process count, load average, temperature
- Performance Metrics: Real-time CPU, memory, and storage usage
- Live Charts: Historical performance data
- System Details: Hardware specifications and network information
- Process Overview: Total process count and system usage
- Top CPU Processes: Detailed breakdown of resource-intensive processes
- CPU Core Usage: Per-core performance monitoring
- Manual Connection: Enter IP address manually
- Auto Discovery: Scan network for Raspberry Pi devices
- Connection Testing: Verify device accessibility
- Connection Status: Real-time connection monitoring
- Connection Management: View status and disconnect options
- Display Settings: Theme and update interval configuration
- About Information: App details and requirements
- Efficient WebSocket handling with automatic reconnection
- Smart data throttling to prevent UI blocking
- Historical data retention with configurable limits
- Error handling and graceful degradation
- Lazy loading for large data sets
- Efficient chart rendering with fl_chart
- Memory management for continuous data streams
- Background processing for network operations
- Intuitive navigation with bottom tab bar
- Contextual error messages and status indicators
- Smooth animations and transitions
- Responsive design for different screen sizes
- provider: State management
- web_socket_channel: WebSocket communication
- fl_chart: Chart visualizations
- google_fonts: Typography
- animated_text_kit: Text animations
- shimmer: Loading animations
- glassmorphism: Glass effect containers
- intl: Date and number formatting
- network_info_plus: Network information
- connectivity_plus: Network connectivity monitoring
The app uses intelligent color-coding based on performance thresholds:
- Green: 0-70% (Normal)
- Yellow: 70-85% (Warning)
- Red: 85-100% (Critical)
- Green: 0-75% (Normal)
- Yellow: 75-90% (Warning)
- Red: 90-100% (Critical)
- Green: Below 65°C (Normal)
- Yellow: 65-80°C (Warning)
- Red: Above 80°C (Critical)
- Multiple Pi support with device switching
- Historical data export (CSV/JSON)
- Custom alert thresholds
- Push notifications for critical events
- Widget support for home screen
- Remote command execution
- Custom dashboard layouts
- Data analytics and trends
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
The NERVA logo is located at assets/icon/icon.png and represents the modern, tech-focused nature of this Raspberry Pi monitoring application.
- Flutter Team for the amazing framework
- Raspberry Pi Foundation for the incredible hardware
- Open Source Community for the fantastic packages used in this project
Built with ❤️ using Flutter




