Back to Projects
Next.js App RouterReactNestJSFullstack

Pulse CRM

Pulse CRM is a fullstack SaaS CRM portfolio project designed around realistic product and backend architecture. It includes authenticated workspaces, organization-based tenant isolation, role-aware user management, leads, clients, opportunities, activities, dashboard metrics, and an additional feedback module. The project uses a Turborepo monorepo with a Next.js App Router frontend and a NestJS modular monolith API backed by PostgreSQL and Prisma.

The Problem

"Sales teams need a secure CRM workspace where users can manage leads, clients, opportunities, activities, and team access without exposing data across organizations."

The Solution

The application implements organization-scoped data ownership across the backend, JWT authentication with refresh tokens, role-based authorization, validated DTOs, and focused frontend feature modules for core CRM workflows.

Multi-tenant data model with organizationId indexes across business entities
JWT access token and refresh token flow with HttpOnly cookies
Role-aware access model with OWNER, MANAGER, and SALES_REP roles
CRM modules for leads, clients, opportunities, activities, users, organizations, dashboard, and feedback
Lead conversion flow that creates clients and marks leads as converted
Opportunity pipeline with stage updates that derive won/lost status
Prisma schema with UUID primary keys, explicit relations, timestamps, and useful indexes
Backend tests covering authentication, tenant isolation, lead conversion, and opportunity stage behavior
Production Docker setup with Postgres health checks, Prisma migration deployment, and Nginx/Caddy reverse proxy options
Stack:Next.js App RouterReactNestJSTypeScriptPostgreSQLPrismaDockerTurborepoTailwind CSSTanStack QueryZodJWTVitestSupertest
// End of fileView All Projects ->