Skip to content

jmix-framework/jmix-crm

Repository files navigation

CRM B2B CRM

B2B CRM is an enterprise demo application built with Jmix that showcases how to develop production-ready business systems including customers, orders, invoicing, finance and analytics.
It reflects real ERP/CRM scenarios and demonstrates best practices in domain modeling, UI, security and business logic implementation.

📑 Table of Contents

📖 Overview

This project models a typical B2B sales workflow:

  • Manage catalog of your products and categories
  • Maintain clients and contacts
  • Track orders and order items
  • Issue invoices and record payments
  • Monitor tasks and recent activities
  • See sales analytics

🛠️ Technical Stack

  • Java 21
  • Jmix 2.7
  • Spring Boot 3
  • HSQLDB

🧩 Add-ons

  • Audit
  • Application settings
  • Charts
  • Data tools
  • Dynamic attributes
  • Grid export
  • Local file storage
  • Reports (includes an invoice template)

🚀 Build and Run

Prerequisites: Java 21+

Run Project

  1. Run B2B CRM Jmix run configuration or execute

    ./gradlew bootRun
  2. Open application URL

Run via JAR:

./gradlew bootJar -Pvaadin.productionMode
java -jar build/libs/crm.jar

Run via Docker

docker build -t jmix-crm .
docker run --rm -p 8080:8080 jmix-crm

Run via Docker Compose

docker-compose up

🎲 Demo Data

The local profile generates demo data on the application start:

👥 Application Accounts

Position Username Password
Administrator admin admin
Supervisor supervisor supervisor
Manager manager manager

⚙️ Domain Model

classDiagram
    Client o-- Contact
    Client o-- Order
    Client o-- Invoice
    Client o-- Payment
    Client o-- Address

    Order *-- OrderItem
    OrderItem --> CategoryItem
    Category o-- CategoryItem

    Invoice o-- Payment
Loading

🔐 Role Model

The application uses a hierarchical role model:

  • Administrator: Full access to all application features, entities, and settings.
  • Supervisor: Extends the Manager role with additional administrative capabilities:
    • Manage product catalog (Categories and Category Items).
    • Assign Account Managers to Clients.
  • Manager: Primary role for sales operations.
    • Full access to Clients, Contacts, Orders, Invoices, and Payments.
    • Read-only access to the product catalog.
    • Manage own Tasks.
  • UI Minimal: Minimal access, allowing login and basic navigation.

About

CRM application based on Jmix framework

Resources

Stars

Watchers

Forks

Contributors 2

  •  
  •  

Languages