|
1 | | -# MinAn V1 |
| 1 | +# MinAn 2.0 - CSV-Schnellanalyse-App fuer Windows |
2 | 2 |
|
3 | 3 | [](LICENSE) |
4 | 4 | [](https://www.python.org/downloads/) |
5 | 5 | [](https://github.com/mickhornung-oss/minan-csv-analyse/actions/workflows/python-tests.yml) |
6 | 6 |
|
7 | | -Stable release (`v1.4.0`) of a production-ready Windows desktop mini-tool for fast CSV analysis. |
| 7 | +MinAn 2.0 ist eine lokale Windows-Desktop-App fuer schnelle CSV-Analyse ohne Installation, ohne Adminrechte und ohne Serververbindung. |
8 | 8 |
|
9 | | -## Product Overview |
10 | | - |
11 | | -MinAn loads CSV files, analyzes structure and data quality, and lets users filter/edit an active view before exporting CSV or HTML reports. The source CSV is never overwritten. |
12 | | - |
13 | | -Target users: analysts, QA teams, and developers who need fast local CSV sanity checks without cloud dependencies. |
| 9 | +Autor und GitHub-Owner: `Michael Hornung / mickhornung-oss` |
14 | 10 |
|
15 | 11 |  |
16 | 12 |  |
17 | 13 |
|
18 | | -## Status and Scope |
| 14 | +## Produktueberblick |
| 15 | + |
| 16 | +MinAn laedt CSV-Dateien, analysiert Struktur und Datenqualitaet und stellt eine aktive Arbeitsansicht fuer Pruefung, Vergleich und Export bereit. Die Quelldatei wird dabei nie ueberschrieben. |
| 17 | + |
| 18 | +Der aktuelle Produktstand ist: |
| 19 | + |
| 20 | +- Produktlinie: `MinAn 2.0` |
| 21 | +- Release-Identitaet: `v2.0.0` |
| 22 | +- Zielplattform: Windows 10/11 |
| 23 | +- Auslieferung: portable One-Folder-EXE unter `dist/MinAn_2_0/` |
| 24 | +- Teststand: `167 automatisierte Tests` |
| 25 | +- Belastungstest: `5.000 Zeilen x 19 Spalten` |
| 26 | + |
| 27 | +## Funktionsumfang |
| 28 | + |
| 29 | +- Lokale CSV-Schnellanalyse ohne Cloud, SaaS oder Serveranbindung |
| 30 | +- 6 Tabs: `Ueberblick`, `Daten`, `Kennzahlen`, `Diagramme`, `Vergleich`, `Export` |
| 31 | +- Datenqualitaetspruefung, Kennzahlen und Visualisierungen |
| 32 | +- 6 Diagrammtypen: |
| 33 | + - Fehlwerte |
| 34 | + - Histogramm |
| 35 | + - Boxplot |
| 36 | + - Top-Kategorien |
| 37 | + - Streudiagramm |
| 38 | + - Korrelation |
| 39 | +- SQL-Schema-Vorschau und Export fuer `SQLite`, `PostgreSQL` und `MySQL` |
| 40 | +- Aktive Arbeitsansicht mit Filtern, Quick-Views und Vergleich zum Original |
| 41 | +- Gebuendelter Beispieldatensatz fuer den Schnellstart |
19 | 42 |
|
20 | | -- Product line: `MinAn 1.4` |
21 | | -- Release identity: `v1.4.0` |
22 | | -- Scope: local/offline desktop usage (Windows) |
23 | | -- Delivery model: portable one-folder build (`dist/MinAn_1_4/`) |
24 | | -- Public hosted demo: not provided |
25 | | -- Reference test run (2026-04-17): `155 passed` via `pytest -q` |
| 43 | +## Exportformate |
26 | 44 |
|
27 | | -## Core Features |
| 45 | +MinAn 2.0 unterstuetzt fuenf Export- bzw. Ausgabeformate: |
28 | 46 |
|
29 | | -- CSV import with automatic encoding and separator detection |
30 | | -- Dataset overview with profile, quality findings, and summary |
31 | | -- Active-view workflow with filters and quick views (missing values, duplicates, outlier candidates) |
32 | | -- Tab-based desktop UI (Overview, Table, Metrics, Charts, Edit, Export) |
33 | | -- CSV export of the active view |
34 | | -- HTML report export of the active view |
35 | | -- Bundled sample dataset for quick local evaluation |
| 47 | +- `CSV`: aktive Sicht als neue CSV-Datei |
| 48 | +- `HTML-Bericht`: lokaler Analysebericht mit eingebetteten Diagrammen |
| 49 | +- `JSON-Metadaten`: strukturierter Export der Analyse- und View-Metadaten |
| 50 | +- `SQL-Schema`: `CREATE TABLE`-Statement als `.sql` |
| 51 | +- `PNG-Diagramme`: gespeicherte Diagramm-Snapshots aus dem Diagramm-Tab |
| 52 | + |
| 53 | +Nicht Teil des Produkts sind Excel-Import, KI-Funktionen, Cloud-Workflows oder automatische Datenbereinigung als stiller Hintergrundprozess. |
36 | 54 |
|
37 | 55 | ## Tech Stack |
38 | 56 |
|
39 | 57 | - Python 3.10+ |
40 | | -- PySide6 (desktop UI) |
41 | | -- pandas + numpy (data processing) |
42 | | -- matplotlib (charts/report snapshots) |
43 | | -- pytest (automated tests) |
44 | | -- PyInstaller (portable packaging) |
| 58 | +- PySide6 |
| 59 | +- pandas |
| 60 | +- matplotlib |
| 61 | +- PyInstaller |
| 62 | +- Git / GitHub |
45 | 63 |
|
46 | | -## Quickstart |
| 64 | +## Schnellstart |
47 | 65 |
|
48 | | -### End user (portable build) |
| 66 | +### Endnutzer |
49 | 67 |
|
50 | | -1. Build a release (or use an already built one): |
| 68 | +1. Release bauen oder vorhandenen Build verwenden: |
51 | 69 | `build_release.bat` |
52 | | -2. Run: |
53 | | - `dist\\MinAn_1_4\\MinAn.exe` |
| 70 | +2. Anwendung starten: |
| 71 | + `dist\\MinAn_2_0\\MinAn.exe` |
54 | 72 |
|
55 | | -### Developer mode |
| 73 | +### Entwicklung |
56 | 74 |
|
57 | | -1. Install dependencies: |
| 75 | +1. Abhaengigkeiten installieren: |
58 | 76 | `pip install -r requirements.txt` |
59 | | -2. Start app: |
| 77 | +2. Anwendung starten: |
60 | 78 | `run_dev.bat` |
61 | 79 |
|
62 | | -## Testing and Quality Gates |
| 80 | +Alternativ direkt: |
| 81 | + |
| 82 | +`python src/minan_v1/main.py` |
| 83 | + |
| 84 | +## Tests und Qualitaet |
63 | 85 |
|
64 | | -Baseline local gates (compile + tests): |
| 86 | +Lokale Baseline-Gates: |
65 | 87 |
|
66 | 88 | `python scripts/quality_gates.py` |
67 | 89 |
|
68 | | -Full local gates (compile + tests + release build + EXE smoke): |
| 90 | +Volle lokale Gates inklusive Build und EXE-Smoke: |
69 | 91 |
|
70 | 92 | `python scripts/quality_gates.py --with-build --with-exe-smoke` |
71 | 93 |
|
72 | | -## Packaging and Build |
| 94 | +Aktueller verifizierter Teststand in diesem Repository: |
73 | 95 |
|
74 | | -Build command: |
| 96 | +- `167 passed` via `python -m pytest tests/ -q` |
| 97 | + |
| 98 | +## Packaging |
| 99 | + |
| 100 | +Build-Einstieg: |
75 | 101 |
|
76 | 102 | `build_release.bat` |
77 | 103 |
|
78 | | -Build source of truth: |
| 104 | +Massgebliche Packaging-Quellen: |
| 105 | + |
| 106 | +- `packaging/pyinstaller/minan_v1.spec` |
| 107 | +- `packaging/pyinstaller/windows_version_info.txt` |
79 | 108 |
|
80 | | -- PyInstaller spec: `packaging/pyinstaller/minan_v1.spec` |
81 | | -- Windows version metadata: `packaging/pyinstaller/windows_version_info.txt` |
82 | | -- Bundled release sample: `_internal/sample_data/test_csv_deutsch_200x15.csv` |
| 109 | +Generierte Artefakte werden bewusst nicht versioniert: |
83 | 110 |
|
84 | | -Generated artifacts are intentionally not versioned (`build/`, `dist/`, `output/`). |
| 111 | +- `build/` |
| 112 | +- `dist/` |
| 113 | +- `output/` |
85 | 114 |
|
86 | | -## Documentation |
| 115 | +## Dokumentation |
87 | 116 |
|
88 | | -Primary docs index: [`docs/README.md`](docs/README.md) |
| 117 | +Primarer Doku-Einstieg: [`docs/README.md`](docs/README.md) |
89 | 118 |
|
90 | | -- Release notes: [`docs/release.md`](docs/release.md) |
91 | | -- Change history: [`CHANGELOG.md`](CHANGELOG.md) |
92 | | -- Project status: [`docs/status.md`](docs/status.md) |
| 119 | +- Release: [`docs/release.md`](docs/release.md) |
| 120 | +- Projektstatus: [`docs/status.md`](docs/status.md) |
| 121 | +- Packaging: [`docs/packaging.md`](docs/packaging.md) |
| 122 | +- Nutzung: [`docs/usage.md`](docs/usage.md) |
| 123 | +- Aenderungshistorie: [`CHANGELOG.md`](CHANGELOG.md) |
93 | 124 |
|
94 | | -## Repository Structure |
| 125 | +## Repository-Struktur |
95 | 126 |
|
96 | 127 | ```text |
97 | 128 | . |
98 | | -|- src/minan_v1/ # app core (domain/services/ui/utils) |
99 | | -|- tests/ # automated tests |
100 | | -|- assets/ # icons, sample CSV, screenshots |
101 | | -|- packaging/pyinstaller/ # versioned build/packaging sources |
102 | | -|- docs/ # public + internal documentation |
103 | | -|- scripts/ # product-check helper scripts |
104 | | -|- run_dev.bat # local developer start |
105 | | -|- build_release.bat # release build entrypoint |
| 129 | +|- src/minan_v1/ # App-Kern (domain/services/ui/utils) |
| 130 | +|- tests/ # automatisierte Tests |
| 131 | +|- assets/ # Icons, Beispieldaten, Screenshots |
| 132 | +|- packaging/pyinstaller/ # versionierte Build-Konfiguration |
| 133 | +|- docs/ # oeffentliche und interne Dokumentation |
| 134 | +|- scripts/ # Qualitaets- und Produktcheck-Skripte |
| 135 | +|- run_dev.bat # lokaler Entwicklungsstart |
| 136 | +|- build_release.bat # Release-Build |
106 | 137 | `- requirements.txt |
107 | 138 | ``` |
108 | 139 |
|
109 | | -## Known Limitations |
| 140 | +## Grenzen |
110 | 141 |
|
111 | | -- Windows-first desktop target (no cross-platform packaging support documented yet) |
112 | | -- No hosted/web demo; evaluation is local only |
113 | | -- CI remains intentionally minimal (Windows quality gates on push/PR, packaging smoke on manual dispatch) |
114 | | -- No automated GitHub artifact publishing pipeline is defined yet |
| 142 | +- Windows-first; kein dokumentierter Cross-Platform-Releasepfad |
| 143 | +- Kein gehostetes Web-Frontend, kein Online-Demo-Deployment |
| 144 | +- Keine automatisierte GitHub-Release-Pipeline im aktuellen Stand |
115 | 145 |
|
116 | | -## License |
| 146 | +## Lizenz |
117 | 147 |
|
118 | | -Licensed under the MIT License. See [`LICENSE`](LICENSE). |
| 148 | +MIT-Lizenz, siehe [`LICENSE`](LICENSE). |
0 commit comments