Synaplan
기업을 위한 오픈소스 AI 플랫폼
MBTimer로 팀을 스마트폰·태블릿·PC에서 타이머 관리
Mit MBTimer stempelt Ihr Team am Handy, am Tablet oder am PC. Urlaub, Krankmeldungen und Zeitkorrekturen laufen über dieselbe Anwendung im Browser.
비즈니스TypeScript · JavaScriptGitHub @Muecahitbyr가동 상태 재확인 필요운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Marketing-Webseite und klickbare Demo für MBTimer, eine webbasierte Arbeitszeiterfassung mit Personalverwaltung für Betriebe jeder Branche mit Mitarbeitern. Rein statisch: kein Backend, keine Datenbank, keine Cookies, kein Tracking, keine externen Schriften oder CDNs.
/, /preise, /impressum, /datenschutz): wird beim Build als statisches HTML vorgerendert./demo): läuft komplett im Browser mit erfundenen Daten eines Beispielbetriebs (fiktive „Zahnarztpraxis Sonnenschein“).npm install # Abhängigkeiten installieren
npm run dev # Entwicklungsserver: http://localhost:5173
npm run build # Typprüfung, Build und Prerendering → dist/
npm run preview # gebaute Seite lokal ansehen: http://localhost:4173
Weitere Befehle:
npm test # Unit-Tests (Vitest): Preisrechner, URL-Parameter, Zeitberechnung, Feiertage, Demo-Store
npm run lint # ESLint (inkl. jsx-a11y)
npm run screenshots # Demo-Screenshots für die Webseite neu erzeugen (public/screenshots/*.webp)
npm run screenshots -- --pricing <ordner> # Preisseite Desktop + Handy als PNG
Für npm run screenshots wird einmalig der Playwright-Browser benötigt: npx playwright install chromium.
Das Skript startet selbst einen Dev-Server, meldet sich in der Demo an und fotografiert sie mit fester Uhrzeit 10:15.
Hinweis zu
npm run preview: Der Vite-Preview-Server liefert für/preise(ohne Schrägstrich am Ende) die Startseiten-Datei aus. Die Seite funktioniert trotzdem (sie wird dann im Browser gerendert), nur das Prerendering greift lokal dort nicht. Auf Cloudflare wirdpreise/index.htmldirekt ausgeliefert.
Live: https://mbtimer.vercel.app
Das Vercel-Projekt mbtimer ist mit diesem GitHub-Repository verbunden: Jeder Push auf main wird automatisch
gebaut und veröffentlicht. Andere Branches erhalten Vorschau-URLs.
Konfiguration in vercel.json:
npm run build (inkl. Prerendering), Ausgabe dist/, nur statische Dateien, kein Server-Code.dist/preise/index.html) werden direkt ausgeliefert; alle anderen Pfade
(z. B. /demo/kiosk) bekommen index.html. Ein kleines Inline-Skript blendet deren Inhalt aus, bis die App die
richtige Seite im Browser gerendert hat.trailingSlash: false: /preise/ leitet auf /preise um./assets/ werden ein Jahr lang gecacht.Manuell geht es auch per CLI: npx vercel deploy --prod.
Alle Preise und preisbezogenen Texte stehen ausschließlich in src/config/pricing.ts.
Nirgends sonst sind Beträge hartcodiert – Tarifkarten, Kostenrechner, Vergleichstabelle, FAQ und Meta-Texte
lesen alle aus dieser Datei.
| Feld | Bedeutung |
|---|---|
vatMode | 'net' → Beträge werden standardmäßig brutto („inkl. 19 % MwSt.“) angezeigt, im Rechner gibt es den Schalter „Nettopreise für Unternehmen anzeigen“ (?netto=1); 'kleinunternehmer' → „gem. § 19 UStG keine Umsatzsteuer“, kein Schalter |
vatRate | MwSt.-Satz für die Brutto-Anzeige (z. B. 0.19) |
yearlyFreeMonths | Gratis-Monate bei Jahreszahlung (2 → Jahrespreis = 10 × Monatspreis) |
trialDays | Testzeitraum (erscheint in „30 Tage kostenlos testen …“) |
tiers | Tarife: name, maxEmployees (Grenze; null = individuelle Kalkulation), monthlyNet (netto/Monat; null = „auf Anfrage“), tagline, extras, optional badge (z. B. „Beliebt“) |
setupService | Einrichtungsservice: price (einmalig), label, items |
includedFeatures | Funktionen, die in allen Tarifen enthalten sind |
calculator | Bereich des Mitarbeiter-Reglers (1–60; Werte über der höchsten Grenze zeigen „50+“) |
Ebenfalls dort: PRICE_DISCLAIMER (Pflichthinweis „Unverbindliche Beispielrechnung – kein Angebot …“),
priceNote() (Steuerhinweis brutto/netto), vatFactor() (Umrechnung netto → brutto) und trialNote().
Regeln, die der Code automatisch einhält:
Nach Änderungen bitte npm test ausführen. Die Tests in
src/site/pricing/calculate.test.ts prüfen die Tarifgrenzen
1/10/11/25/26/50/51, Jahrespreis, Ersparnis, Einrichtung, Pro-Kopf-Wert, Brutto und ungültige Eingaben.
Sie gehen von den aktuellen Werten aus (Starter/Team/Plus: 49/89/149 €, Grenzen 10/25/50) und müssen bei geänderten Preisen
mit angepasst werden.
Eine Rechnung lässt sich als Link teilen, z. B. /preise?ma=18&zahlweise=jahr&einrichtung=1 (optional &brutto=1).
Webseitentexte (Hero, Funktionen, FAQ, Kontakt) stehen in src/config/site.ts,
Seitentitel und Meta-Beschreibungen in src/site/seo.ts.
Rechtliches und Kontakt:
여기까지가 README 앞부분입니다. 나머지는 원문에서 읽을 수 있습니다. README 전문 보기 ↗