Skip to content
@appraisal-crm

appraisal-crm

Appraisal CRM

A CRM that automates the full property appraisal cycle — from client request submission to report delivery — replacing manual phone/email coordination between clients, inspectors, and appraisers with a single web platform.

How it works

A request moves through a linear lifecycle, with each stage owned by a dedicated service:

New → In Progress → Inspection Scheduled → Inspection Completed → Appraisal → Report Sent → Closed

Roles: Client · Inspector · Appraiser · Administrator

Architecture

Event-driven microservices with Database-per-Service: each service owns its PostgreSQL and Redis, communicates through Apache Kafka domain events, and publishes them via a transactional outbox. Consumers are idempotent (Redis-based deduplication). Authentication and RBAC are handled by Keycloak (JWT).

Repositories

Repository Description
request-service Appraisal request lifecycle — CRUD, linear state machine, Kafka events
inspect-service Property inspection stage — scheduling, results, photo storage (S3)
review-service Appraiser review stage — valuation report drafting and approval
notification-service Consumes domain events, delivers email / SMS / in-app / push notifications
frontend React 19 + TypeScript monorepo — client portal and back-office apps
infra Shared infrastructure — Kafka, Keycloak (custom themes), Kafka UI

Tech stack

Go · PostgreSQL · Redis · Apache Kafka · Keycloak · TypeScript · React · S3 · Docker Compose · Caddy

License

All repositories are licensed under Apache 2.0.

Popular repositories Loading

  1. request-service request-service Public

    Go microservice for the appraisal request lifecycle — CRUD, linear state machine, Keycloak JWT/RBAC, Kafka events via transactional outbox. Part of the Appraisal CRM (Database-per-Service).

    Go

  2. notification-service notification-service Public

    Go microservice that consumes Kafka domain events and delivers notifications over email, SMS, in-app and push. Redis-based consumer idempotency. Part of the Appraisal CRM (Database-per-Service).

    Go

  3. infra infra Public

    Shared infrastructure for the Appraisal CRM — Docker Compose with Kafka, Keycloak (custom login themes) and Kafka UI, exposed to services via the appraisal_shared network.

    CSS

  4. inspect-service inspect-service Public

    Go microservice for the property inspection stage — scheduling, inspection results and photo storage (S3). Kafka consumer/producer with transactional outbox and Redis idempotency. Part of the Appra…

    Go

  5. frontend frontend Public

    React 19 + TypeScript monorepo (pnpm, Turborepo, Vite) — client portal and back-office apps with shared UI, Keycloak auth and API-client packages. Frontend for the Appraisal CRM.

    TypeScript

  6. review-service review-service Public

    Go microservice for the appraisal review stage — appraisers pick up inspected requests, produce and approve valuation reports. Kafka consumer/producer with transactional outbox and Redis idempotenc…

    Go

Repositories

Showing 7 of 7 repositories

Top languages

Loading…

Most used topics

Loading…