https://github.com/4211421036/githubiotpy
GitHubIoT is a comprehensive toolkit designed to simplify the visualization of IoT (Internet of Things) data with seamless GitHub integration. The application provides an intuitive graphical interface for real-time data monitoring, analysis, and configuration
https://github.com/4211421036/githubiotpy
cli esp32 esp8266 github-actions github-iot matplotlib numpy pypi-packages python tkinter
Last synced: about 1 month ago
JSON representation
GitHubIoT is a comprehensive toolkit designed to simplify the visualization of IoT (Internet of Things) data with seamless GitHub integration. The application provides an intuitive graphical interface for real-time data monitoring, analysis, and configuration
- Host: GitHub
- URL: https://github.com/4211421036/githubiotpy
- Owner: 4211421036
- License: mit
- Created: 2025-02-25T14:01:52.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2025-02-27T00:01:22.000Z (3 months ago)
- Last Synced: 2025-03-29T03:51:17.411Z (about 2 months ago)
- Topics: cli, esp32, esp8266, github-actions, github-iot, matplotlib, numpy, pypi-packages, python, tkinter
- Language: Python
- Homepage: https://pypi.org/project/githubiot/
- Size: 205 KB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# GitHubIoT Documentation
![]()
Before Started Develoment this Application. Please Readme Wiki repository GitHub IoT for Arduino IDE Application at [https://github.com/4211421036/githubiot/wiki](https://github.com/4211421036/githubiot/wiki), following step by step. And The last, your can develoment webApp with GA [https://github.com/marketplace/actions/generate-iot-dashboard](https://github.com/marketplace/actions/generate-iot-dashboard) automation step by step. Thank You!
## Table of Contents
- [Introduction](#introduction)
- [Installation](#installation)
- [Quick Start](#quick-start)
- [Features](#features)
- [Usage](#usage)
- [Command Line Interface](#command-line-interface)
- [Using as a Module](#using-as-a-module)
- [Application Structure](#application-structure)
- [Core Components](#core-components)
- [User Interface](#user-interface)
- [Data Handling](#data-handling)
- [Configuration](#configuration)
- [Configuration File](#configuration-file)
- [Runtime Configuration](#runtime-configuration)
- [Customization](#customization)
- [Themes](#themes)
- [Chart Types](#chart-types)
- [Animation Settings](#animation-settings)
- [Troubleshooting](#troubleshooting)
- [Common Issues](#common-issues)
- [Debug Mode](#debug-mode)
- [API Reference](#api-reference)
- [Main Methods](#main-methods)
- [Data Processing Functions](#data-processing-functions)
- [Contributing](#contributing)
- [License](#license)
- [Authors](#authors)## Introduction
GitHubIoT is a comprehensive toolkit designed to simplify the visualization of IoT (Internet of Things) data with seamless GitHub integration. The application provides an intuitive graphical interface for real-time data monitoring, analysis, and configuration, making it ideal for both beginners and experienced developers working with IoT devices.
> [!Note]
> GitHubIoT is designed to work with JSON data feeds, making it compatible with most IoT platforms and REST APIs.## Installation
You can install GitHubIoT using pip:
```bash
pip install githubiot
```or using Docker command line:
```bash
docker pull galihridhoutomo/githubiot
```### Prerequisites
- Python 3.7 or higher
- Required dependencies:
- Matplotlib
- NumPy
- Requests
- TkInter> [!Important]
> Make sure you have the latest version of pip to avoid compatibility issues.## Quick Start
After installation, you can quickly start the application with default settings:
```bash
githubiot --create-app
```This will launch the application with default configurations. For a customized setup:
```bash
githubiot --name "My IoT Dashboard" --json-url "https://my-iot-api.com/data"
```and the last step
```bash
githubiot --run
```if you build this app to .exe application Desktop. Can be interact CLI githubiot below
```bash
githubiot --build
```## Features
- **Real-time Data Visualization**: Monitor IoT data streams in real-time
- **Multiple Chart Types**: Support for various visualization methods
- **Customizable Themes**: Choose from multiple built-in themes or create your own
- **Animation Control**: Enable/disable animations for performance optimization
- **Graph Export**: Save visualizations in various formats (PNG, PDF, etc.)
- **Responsive Interface**: Adapts to different screen sizes
- **JSON Data Integration**: Connect to any JSON data source
- **Configurable Settings**: Customize application behavior through configuration files## Usage
### Command Line Interface
GitHubIoT provides a comprehensive command line interface for various operations:
| Command | Description |
|---------|-------------|
| `githubiot --create-app` | Create a new application template |
| `githubiot --build` | Build the application to an executable |
| `githubiot --run` | Run the application |
| `githubiot --json-url URL` | Set custom JSON URL |
| `githubiot --name NAME` | Set custom application name |
| `githubiot -v, --version` | Show version information |### Using as a Module
You can also integrate GitHubIoT into your own Python projects:
```python
import githubiot# Start with custom parameters
githubiot.start(
name="My IoT Dashboard",
url_json="https://api.example.com/data",
icon="https://example.com/icon.ico",
status="build" # or "run"
)
```## Application Structure
### Core Components
The application is built around the `JSONGraphApp` class, which manages the following key aspects:
1. **Configuration Management**: Loads and applies settings from a configuration file
2. **UI Construction**: Creates the menu system and UI widgets
3. **Data Handling**: Fetches and processes data from JSON sources
4. **Graph Rendering**: Visualizes data using Matplotlib
5. **Animation Control**: Manages real-time animation of data### User Interface
The UI consists of:
- Main visualization area
- Toolbar for common actions
- Menu system with File, Options, and Help menus
- Theme selection and customization options### Data Handling
The application can:
- Connect to remote JSON data sources
- Generate sample data when connection fails
- Process and transform data for visualization
- Refresh data on demand## Configuration
### Configuration File
GitHubIoT uses a `config.json` file for persistent settings:
```json
{
"url": "https://api.example.com/data",
"app_name": "GitHubIoT App"
}
```> [!Warning]
> Do not manually edit the configuration file while the application is running. Use the application interface or CLI commands to modify settings.### Runtime Configuration
The application can detect and apply configuration changes at runtime. When you modify settings externally, the application will update automatically.
## Customization
### Themes
GitHubIoT supports multiple visualization themes:
- Default
- Classic
- Dark Background
- GGPlot
- Seaborn
- Solarize Light
- BMH
- Tableau Colorblind-friendly
- FiveThirtyEight
- Custom themesTo cycle through themes, use the "Change Theme" option in the File menu.
### Chart Types
While the current implementation focuses on line charts for EM wave visualization, the architecture supports extending to other chart types:
- Line charts
- Bar charts
- Scatter plots
- Area charts### Animation Settings
Animation can be toggled on/off from the Options menu. This is particularly useful when:
- Working with very large datasets
- Running on resource-constrained devices
- Generating static exports## Troubleshooting
### Common Issues
1. **Data Not Loading**
- Verify your internet connection
- Check that the JSON URL is correct and accessible
- Ensure the JSON format matches the expected structure2. **Application Crashes**
- Update to the latest version
- Check for conflicting Python packages
- Verify that all dependencies are installed correctly3. **Visualization Issues**
- Try changing the theme
- Restart the application
- Verify your data structure### Debug Mode
For advanced troubleshooting, you can run the application in debug mode:
```bash
githubiot --debug
```This will provide additional console output to help diagnose issues.
## API Reference
### Main Methods
| Method | Description |
|--------|-------------|
| `githubiot.start()` | Initializes and starts the application |
| `githubiot.load_config()` | Loads configuration from file |
| `githubiot.update_config()` | Updates configuration settings |
| `githubiot.build()` | Builds executable version |### Data Processing Functions
| Function | Description |
|----------|-------------|
| `load_data()` | Fetches data from JSON source |
| `refresh_data()` | Updates data from source |
| `generate_sample_data()` | Creates sample data for testing |
| `create_graph()` | Renders visualization from data |## Contributing
Contributions to GitHubIoT are welcome! Please follow these steps:
1. [Fork](https://github.com/4211421036/githubiotpy/fork) the repository
2. Create a feature branch
3. Commit your changes
4. Push to the branch
5. Open a Pull RequestPlease ensure your code follows the project's coding standards and includes appropriate tests.
## License
This project is licensed under the MIT LICENCE [https://github.com/4211421036/githubiotpy/LICENCE](https://github.com/4211421036/githubiotpy/LICENCE) - see the LICENSE file for details.
## Authors
1. GALIH RIDHO UTOMO
2. Fionita Fahra Azzahra## Cite
Please cite this respotory, if your use in the publication```bibtex
@misc{githubiot,
author = {Utomo, Galih Ridho, Fionita Fahra Azzahra},
title = {GitHub IoT a comprehensive toolkit designed to simplify the visualization of IoT (Internet of Things) data with seamless GitHub integration. The application provides an intuitive graphical interface for real-time data monitoring, analysis, and configuration, making it ideal for both beginners and experienced developers working with IoT devices microcontroler (ESP32 or ESP8266) realtime},
year = {2025},
howpublished = {\url{https://hub.docker.com/r/galihridhoutomo/githubiot}},
note = {GitHub repository},
}
```---
GitHubIoT - Building the Future with Integrated Microcontroller Solutions