Windows-Systemtool zum Aufräumen und Navigieren – gebaut mit Electron + TypeScript
| Modul | Beschreibung |
|---|---|
| Temp-Cleaner | Bereinigt Windows-Temp, User-Temp, Browser-Caches und weitere konfigurierte Ziele mit einem Klick. Zeigt vorher Dateizahl und Groesse an. |
| Path-Locator | Listet gaengige Entwicklerpfade (npm, pip, Cargo, Go, Android SDK u.a.) mit Existenz-Check. Oeffnen, Aufdecken oder Kopieren per Knopfdruck. |
| System-Info | Laufwerke, freier Speicher und Elevations-Status auf einen Blick. |
# Abhaengigkeiten installieren
npm install
# App starten
npm start| Skript | Wirkung |
|---|---|
npm run build |
Kompiliert Main, Preload und Renderer nach dist/ |
npm start |
Build + App starten |
npm run dev |
Build + App mit DevTools |
npm run icon |
Regeneriert assets/icon.png und assets/icon.ico |
npm run typecheck |
Nur Typpruefung |
npm run clean |
dist/ loeschen |
npm run dist |
Installer + Portable-EXE bauen (NSIS) |
Fuer
C:\Windows\TempundSoftwareDistribution\Downloaddie App als Administrator starten. Ohne Elevation werden geschuetzte Dateien uebersprungen – die App bricht nicht ab.
system-utility-by-dgkn/
├── assets/
│ ├── icon.svg Vektor-Quelle des Logos
│ ├── icon-small.svg Variante fuer kleine Groessen
│ ├── icon.png 256x256, generiert
│ └── icon.ico Multi-Size 16..256, generiert
├── scripts/
│ ├── make-icon.cjs Rendert Logo → PNG + ICO
│ ├── copy-assets.mjs Kopiert Renderer-Assets nach dist/
│ └── clean.mjs Loescht dist/
├── src/
│ ├── main/main.ts Main-Prozess: Ziele, Allowlist, fs-Walker, IPC
│ ├── preload/preload.ts ContextBridge
│ ├── renderer/
│ │ ├── index.html UI-Geruest (strikte CSP)
│ │ ├── styles.css Dark-Mode-Theme
│ │ ├── renderer.ts UI-Logik
│ │ ├── splash.html Splashscreen
│ │ └── splash.css Splash-Styling
│ └── shared/
│ ├── api.d.ts Typen fuer alle drei Prozesse
│ └── channels.ts IPC-Kanalnamen
├── package.json
├── tsconfig.main.json
└── tsconfig.renderer.json
Die App folgt Electrons Best Practices fuer Prozessisolation:
- Context Isolation + Sandbox – kein
nodeIntegration - Strikte CSP im Renderer (
default-src 'none') - IPC nur ueber IDs – der Renderer sendet niemals rohe Dateipfade
- Allowlist im Main-Prozess – jeder Loeschpfad muss in einem registrierten Ziel liegen
- Blockliste fuer kritische Systempfade (
C:\,C:\Windows,System32, Benutzerprofil) - Symlinks/Junctions werden nicht verfolgt
- Bestaetigungsdialog vor jedem Loeschlauf
Das Logo ist eine Verlaufskachel (Teal → Cyan → Blau → Violett) mit dem Monogramm DG.
npm run icon rendert das SVG in einem Offscreen-BrowserWindow und erzeugt icon.png und icon.ico.
Beim Start zeigt ein rahmenloser, transparenter Splashscreen Logo und Fortschrittsbalken, bevor das Hauptfenster erscheint. Mindestanzeigedauer: 1100 ms; Timeout: 12 s.
Renderer Preload (ContextBridge) Main
──────── ─────────────────────── ────
btn-clean click
api.cleaner.confirm() → ipcRenderer.invoke → dialog.showMessageBox
api.cleaner.clean() → ipcRenderer.invoke → sanitizeIds → purgeDirectory
← CleanResult[] ←
onProgress(cb) ← ipcRenderer.on ← webContents.send('op:progress')
Vollstaendige Kanaluebersicht: src/shared/channels.ts
# Installer + Portable-EXE erzeugen
npm run dist
# Nur entpacktes Verzeichnis (schnellerer Test)
npm run dist:dirAusgabe landet in release/. Der NSIS-Installer erlaubt benutzerdefinierte Installationspfade und erstellt Desktop- und Startmenue-Verknuepfungen.
MIT © DGKN@Labs

