feat: perinco Pulse - Zeiterfassung fuer perinco

Erste Fassung, live unter https://pulse.perinco.de.

Frontend React 19 + TypeScript + Tailwind 4 (Vite), Backend Express mit
mysql2 auf MariaDB, Exporte als PDF (pdfkit), Excel (exceljs) und CSV.
Aufbau, Designsystem und die sieben Themes kommen aus dem perinco CRM.

Fachlich:
- Buchung mit Wochen-, Monats- und Jahresansicht, Zeiten als 1:23 oder 1,5
- Projekte mit n Budgettoepfen: Laufzeit, Volumen, Sperre bei Ablauf oder
  aufgebrauchtem Budget, Buchung nur auf den passenden Topf
- Kunden, Team mit Hierarchie, Reports im Harvest-Stil, Monatsexporte
- Rollen user/lead/management/admin, doppelt geprueft (Menue und Backend)
- SSO gegen Microsoft Entra ID, Uebernahme der AD-Benutzer per Drag & Drop

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
schakal00783
2026-09-17 22:52:20 +02:00
co-authored by Claude Opus 5
commit ef676a95f4
104 changed files with 21030 additions and 0 deletions
+22
View File
@@ -0,0 +1,22 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="100" height="100">
<!--
Aura, hell ("Sunshine"): die Sonne. Sie sitzt in der Ecke oben rechts der
Leiste und ist nur zur Haelfte zu sehen (Position in index.css). Von ihrem
Mittelpunkt gehen die Sonnenstrahlen aus (components/AuraWeather.tsx) -
wer die Groesse oder Lage aendert, muss dort SUN_* nachziehen.
-->
<defs>
<radialGradient id="schein" cx="50" cy="50" r="50" gradientUnits="userSpaceOnUse">
<stop offset="0.3" stop-color="#ffd76a" stop-opacity="0.9" />
<stop offset="0.6" stop-color="#ffc94a" stop-opacity="0.35" />
<stop offset="1" stop-color="#ffc94a" stop-opacity="0" />
</radialGradient>
<radialGradient id="kern" cx="45" cy="45" r="22" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#fff6c9" />
<stop offset="0.7" stop-color="#ffd24d" />
<stop offset="1" stop-color="#ffb81f" />
</radialGradient>
</defs>
<circle cx="50" cy="50" r="50" fill="url(#schein)" />
<circle cx="50" cy="50" r="20" fill="url(#kern)" />
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB