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
+25
View File
@@ -0,0 +1,25 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" width="100" height="100">
<!--
Aura, dunkel ("Mond"): der Vollmond an derselben Stelle wie die Sonne im
hellen Modus - weicher Hof, blasse Scheibe, ein paar Krater.
-->
<defs>
<radialGradient id="hof" cx="50" cy="50" r="50" gradientUnits="userSpaceOnUse">
<stop offset="0.3" stop-color="#dfe4ff" stop-opacity="0.45" />
<stop offset="0.65" stop-color="#b9c2ff" stop-opacity="0.12" />
<stop offset="1" stop-color="#b9c2ff" stop-opacity="0" />
</radialGradient>
<radialGradient id="scheibe" cx="44" cy="44" r="22" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#fbfbff" />
<stop offset="1" stop-color="#d7dcef" />
</radialGradient>
</defs>
<circle cx="50" cy="50" r="50" fill="url(#hof)" />
<circle cx="50" cy="50" r="18" fill="url(#scheibe)" />
<g fill="#b8bfd8" opacity="0.55">
<circle cx="44" cy="46" r="3.5" />
<circle cx="55" cy="55" r="2.5" />
<circle cx="52" cy="41" r="1.8" />
<circle cx="43" cy="57" r="1.5" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB