First commit

This commit is contained in:
2025-11-14 08:05:43 +00:00
commit 01fc486db7
3 changed files with 792 additions and 0 deletions

95
CLAUDE.md Normal file
View File

@@ -0,0 +1,95 @@
# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Project Overview
This is a single-page HTML application for visualizing SDS (Feinstaub/particulate matter) sensor data. The application is a self-contained HTML file (`feinstaub.html`) with embedded CSS and JavaScript, designed for deployment as a static web page.
**Language**: German (UI labels, documentation, and metadata are in German)
## Architecture
### Single-File Architecture
- **feinstaub.html**: Complete standalone application with embedded styles and scripts
- No build system, package manager, or external dependencies beyond CDN resources
- Uses Chart.js v3.9.1 from CDN for data visualization
### Core Components
**Data Processing Pipeline**:
1. Data input: JSON file upload or API endpoint
2. Auto-detection of outlier thresholds using IQR (Interquartile Range) method
3. Filtering based on user-defined or auto-detected thresholds
4. Chart rendering and statistics calculation
**Key Functions**:
- `processData(jsonData)`: Entry point for data loading, handles different JSON formats
- `applyFilters(data)`: Filters data based on SDS_P1 and SDS_P2 thresholds
- `calculateOutlierThreshold(values)`: IQR-based outlier detection (Q1, Q3, 1.5×IQR rule, capped at 95th percentile)
- `autoDetectThresholds(data)`: Automatically sets filter thresholds based on data distribution
- `renderChart()`: Sorts data by timestamp, applies filters, updates chart and statistics
- `updateChart(labels, p1Data, p2Data)`: Creates/updates Chart.js line chart
### Data Format
Expected JSON structure (flexible):
```javascript
// Array format
[
{ Uhrzeit: "10:00:38", SDS_P1: 9.15, SDS_P2: 6.22 },
// ...
]
// Or object with data property
{
"data": [ /* records */ ],
// or "records": [ /* records */ ]
}
```
Timestamp field detection (checked in order):
- `Uhrzeit` (primary)
- `timestamp`
- `Zeitstempel`
- `created_at`
## Development
### Local Testing
```bash
# Open directly in browser
open feinstaub.html # macOS
xdg-open feinstaub.html # Linux
start feinstaub.html # Windows
# Or serve via local web server
python3 -m http.server 8000
# Then visit: http://localhost:8000/feinstaub.html
```
### Making Changes
Since this is a single HTML file with embedded scripts and styles:
1. Edit `feinstaub.html` directly
2. Refresh browser to see changes
3. No build or compilation step required
### Testing with Sample Data
The application includes example data at the bottom of the script (lines 529-536) that loads automatically on page load for demonstration purposes.
## Metadata and Attribution
**Author**: Joachim Hummel (Next8AI)
**Copyright**: © 2025 Joachim Hummel
**Website**: https://next8ai.de/sds-visualisierung/
**Preview Image**: https://web.unixweb.home64.de/assets/sds-preview.png
All metadata, Open Graph tags, and footer links reference the author and Next8AI branding. Preserve these when making modifications.
## UI/UX Notes
- Gradient background (purple theme: #667eea to #764ba2)
- Responsive grid layouts using CSS Grid
- Auto-sizing chart container (600px height)
- Filter controls with real-time slider updates
- Statistics cards showing: data points, averages, time range, filtered count