--- title: mona emoji: 🤖 colorFrom: blue colorTo: purple sdk: gradio sdk_version: 5.34.2 app_file: app.py pinned: false --- # MONA Dashboard MONA (Monitoring & Analytics) is a comprehensive Streamlit dashboard application for data visualization, monitoring, and analytics. ## 🚀 Features - **Interactive Dashboard**: Real-time data visualization with multiple chart types - **Data Upload & Analysis**: Support for CSV, Excel, JSON, and Parquet files - **Real-time Monitoring**: Live system metrics and performance tracking - **Configurable Settings**: Customizable themes, layouts, and preferences - **Error Handling**: Robust error management and logging - **Data Storage**: In-memory and session-based data persistence ## 📁 Project Structure ``` mona/ ├── app.py # Main application entry point ├── requirements.txt # Python dependencies ├── README.md # Project documentation ├── pages/ │ ├── dashboard.py # Main dashboard page │ └── settings.py # Settings and configuration page └── utils/ ├── config.py # Configuration management ├── storage.py # Data storage utilities ├── error_handling.py # Error handling and decorators └── logging.py # Logging utilities ``` ## 🛠️ Installation 1. Clone or download the project files 2. Install dependencies: ```bash pip install -r requirements.txt ``` 3. Run the application: ```bash streamlit run app.py ``` ## 📊 Usage ### Dashboard Features 1. **Overview Tab**: - Key metrics and KPIs - Trend analysis charts - Category distribution visualizations 2. **Analytics Tab**: - Date range filtering - Multiple chart types (Line, Bar, Scatter, Area, Histogram) - Customizable metrics selection 3. **Data Upload Tab**: - File upload support (CSV, Excel, JSON) - Data preview and summary - Basic analytics on uploaded data 4. **Real-time Tab**: - Live system monitoring - Performance metrics (CPU, Memory, Network) - System status indicators - Event logs ### Settings Configuration - **General Settings**: Application name, performance parameters - **Display Settings**: Themes, chart types, layout preferences - **Data Settings**: File size limits, supported formats, cache settings - **System Settings**: Configuration management, debug options ## 🔧 Configuration The application uses a configuration system with the following defaults: - **Max Data Points**: 1000 - **Refresh Interval**: 30 seconds - **Default Chart**: Line chart - **Theme**: Light mode - **File Size Limit**: 10MB - **Supported Formats**: CSV, Excel, JSON, Parquet Configuration can be modified through the Settings page or environment variables. ## 🗄️ Data Storage The application supports two storage types: 1. **Memory Storage**: Temporary storage for the current session 2. **Session Storage**: Streamlit session state persistence Data is automatically managed and can be cleared through the Settings page. ## 🚨 Error Handling The application includes comprehensive error handling: - **Data Exceptions**: Validation and processing errors - **UI Exceptions**: Interface and rendering errors - **File Operations**: Upload and processing errors - **Configuration Errors**: Settings and validation errors All errors are logged and displayed to users with appropriate messages. ## 📝 Logging Logging is configured with: - **Log Level**: INFO (configurable) - **Format**: Timestamp, Logger Name, Level, Message - **Output**: Console/stdout - **Functions**: `log_error`, `log_info`, `log_warning`, `log_debug` ## 🔒 Security Notes - File uploads are limited by size and type - No persistent file storage on server - Session-based data isolation - Input validation and sanitization ## 🐛 Troubleshooting ### Common Issues 1. **Import Errors**: Ensure all dependencies are installed via `requirements.txt` 2. **File Upload Issues**: Check file size limits and supported formats 3. **Performance Issues**: Adjust max data points in settings 4. **Memory Issues**: Clear storage regularly or reduce data cache timeout ### Debug Mode Enable debug mode in General Settings to: - View detailed error information - Access session state data - See configuration details - Enable developer options ## 🤝 Contributing To contribute to this project: 1. Report bugs through issues 2. Suggest features and improvements 3. Submit pull requests with fixes 4. Follow the existing code structure and style ## 📄 License This project is open source and available under standard terms. ## 🔄 Version History - **v1.0.0**: Initial release with core dashboard functionality - Bug fixes and feature updates as needed ## 📞 Support For support and questions: - Check the troubleshooting section - Review error logs in debug mode - Ensure all dependencies are properly installed