Zurück zu den Projekten

CRM App

Next.js-CRM mit anpassbaren Dashboard-KPIs, Pipeline (Tabelle + Kanban), Kontakten, Aufgaben, Reports und rollenbasierter Zugriffskontrolle.

CRM dashboard preview
Anpassbares Dashboard mit KPI-Karten und Pipeline.

Ein Full-Stack-CRM mit anpassbarem Dashboard (KPI-Karten, Funnel, Umsatztrend, Leaderboard, aktuelle Deals), Pipeline in Tabellen- oder Kanban-Ansicht, Kontakte (Liste, Suche, 360°-Detail), Aufgaben und schreibgeschützte Reports. AppShell: klappbare Sidebar auf Desktop, Bottom-Navigation auf Mobile; Ladezustand mit Widget-Skeletons. KPI-Engine in /lib/calculations (Abschlussquote, gewichtete Prognose, Trend). RBAC: Admin und Manager sehen alle Deals und Leaderboard; Sales Rep nur eigene Deals. NextAuth für Auth; Server Actions und Prisma (SQLite); Notizen on-demand pro Deal. Gebaut mit react-hook-form + Zod, Zustand für Dashboard-Präferenzen, react-grid-layout für Widgets, @dnd-kit für Kanban.

Architektur

Funktionen

  • KPI-Engine in /lib/calculations — Abschlussquote (Conversion), gewichtete Prognose nach Stufenwahrscheinlichkeit, Perioden-Trend; Dashboard und Reports rufen sie einmal pro Request auf.
  • RBAC (Admin, Manager, Sales Rep) — Admin und Manager sehen alle Deals und Leaderboard; Sales Rep nur eigene Deals, kein Leaderboard.
  • Pipeline — Recharts-Funnel; Deal-Stufen von Prospecting bis Closed Won / Lost; Tabellen- oder Kanban-Ansicht (@dnd-kit); Filter nach Owner, Datum, Status.
  • Datenladung — Deals-Liste mit include owner; Notizen on-demand über getNotesForDeal(dealId); Leaderboard per groupBy + findMany; Kontakte und Aufgaben per Server Actions.

Tech-Stack

  • Next.js (App Router), Server Components, Server Actions, NextAuth (v5)
  • Prisma, SQLite (Standard); Zod für Formulare und Server Actions
  • Tailwind, Recharts; react-hook-form, Zustand, react-grid-layout, @dnd-kit

Formel-Übersicht

  • Win rate: Abschlussquote = (Closed Won Anzahl / gesamte Deal-Anzahl) × 100.
  • Weighted forecast: Gewichtete Prognose = Σ (Deal-Wert × P(Stufe)) für offene Stufen; Stufenwahrscheinlichkeiten: Prospecting 0,1, Qualified 0,3, Negotiating 0,7, Closed Won 1,0, Lost 0.
  • Trend: Trend = ((aktuell − vorher) / vorher) × 100 (Prozentänderung).

Repository & Demos