Skip to content

NERVA is a sleek, real-time Raspberry Pi monitoring app built with Flutter, featuring futuristic UI, live system stats, and smart connectivity.

License

Notifications You must be signed in to change notification settings

CrayFish0/nerva

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

1 Commit
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿš€ NERVA - Raspberry Pi Stats Monitor

NERVA Logo

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.

โœจ Features

๐ŸŽฏ Real-Time Monitoring

  • 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

๐ŸŽจ Futuristic UI/UX

  • 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

๐Ÿ”Œ Smart Connectivity

  • 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

๐Ÿ“Š Advanced Visualizations

  • 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

๏ฟฝ Screenshots

๐Ÿ  Dashboard Screen

Dashboard showing real-time system stats

๐Ÿ“Š System Monitoring

Real-time charts and performance metrics

โš™๏ธ Process Monitor

Top CPU processes and core usage

๐Ÿ”Œ Connection Screen

Device connection and auto-discovery

โš™๏ธ Settings

App settings and configuration

๏ฟฝ๐Ÿ› ๏ธ Technical Architecture

๐Ÿ“ Project Structure

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

๐ŸŽจ Design System

Color Palette

  • 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)

Typography

  • Font Family: Inter (Google Fonts)
  • Heading Styles: Bold, increased letter spacing
  • Body Text: Regular weight, optimized readability
  • Monospace: Code and numeric values

๐Ÿš€ Getting Started

Prerequisites

  1. Flutter SDK (3.5.4+)
  2. Dart SDK (3.5.4+)
  3. Android Studio or VS Code with Flutter extensions
  4. Raspberry Pi with WebSocket stats server running

Installation

  1. Clone the Repository

    git clone https://github.com/yourusername/nerva.git
    cd nerva
  2. Install Dependencies

    flutter pub get
  3. Run the App

    flutter run

๐Ÿ”ง Configuration

Raspberry Pi Setup

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.)

App Configuration

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

๐Ÿ“ฑ App Screens

๐Ÿ  Dashboard

  • 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

โš™๏ธ Processes

  • Process Overview: Total process count and system usage
  • Top CPU Processes: Detailed breakdown of resource-intensive processes
  • CPU Core Usage: Per-core performance monitoring

๐Ÿ”Œ Connection

  • 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

โš™๏ธ Settings

  • Connection Management: View status and disconnect options
  • Display Settings: Theme and update interval configuration
  • About Information: App details and requirements

๐ŸŽฏ Key Features

Real-Time Data Processing

  • Efficient WebSocket handling with automatic reconnection
  • Smart data throttling to prevent UI blocking
  • Historical data retention with configurable limits
  • Error handling and graceful degradation

Performance Optimizations

  • Lazy loading for large data sets
  • Efficient chart rendering with fl_chart
  • Memory management for continuous data streams
  • Background processing for network operations

User Experience

  • Intuitive navigation with bottom tab bar
  • Contextual error messages and status indicators
  • Smooth animations and transitions
  • Responsive design for different screen sizes

๐Ÿ”ง Dependencies

Core Flutter Packages

  • provider: State management
  • web_socket_channel: WebSocket communication
  • fl_chart: Chart visualizations

UI/UX Packages

  • google_fonts: Typography
  • animated_text_kit: Text animations
  • shimmer: Loading animations
  • glassmorphism: Glass effect containers

Utility Packages

  • intl: Date and number formatting
  • network_info_plus: Network information
  • connectivity_plus: Network connectivity monitoring

๐Ÿš€ Performance Thresholds

The app uses intelligent color-coding based on performance thresholds:

CPU Usage

  • Green: 0-70% (Normal)
  • Yellow: 70-85% (Warning)
  • Red: 85-100% (Critical)

Memory Usage

  • Green: 0-75% (Normal)
  • Yellow: 75-90% (Warning)
  • Red: 90-100% (Critical)

Temperature

  • Green: Below 65ยฐC (Normal)
  • Yellow: 65-80ยฐC (Warning)
  • Red: Above 80ยฐC (Critical)

๐Ÿ”ฎ Future Enhancements

  • 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

๐Ÿค Contributing

We welcome contributions! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐ŸŽจ Logo & Branding

The NERVA logo is located at assets/icon/icon.png and represents the modern, tech-focused nature of this Raspberry Pi monitoring application.

๐Ÿ™ Acknowledgments

  • 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

About

NERVA is a sleek, real-time Raspberry Pi monitoring app built with Flutter, featuring futuristic UI, live system stats, and smart connectivity.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors