Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# ![CRM](src/main/resources/META-INF/resources/images/logo.svg) B2B CRM

Languages: [English](README.md) | [Русский](README_ru.md) | [Deutsch](README_de.md) | [Italiano](README_it.md) | [Español](README_es.md)
Languages: [English](README.md) | [Русский](readme/README_ru.md) | [Deutsch](readme/README_de.md) | [Italiano](readme/README_it.md) | [Español](readme/README_es.md) | [Tiếng Việt](readme/README_vi.md) | [Српски](readme/README_sr.md)

`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`. <br>It reflects real **ERP/CRM** scenarios and demonstrates
Expand Down
12 changes: 6 additions & 6 deletions README_de.md → readme/README_de.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# ![CRM](src/main/resources/META-INF/resources/images/logo.svg) B2B CRM
# ![CRM](../src/main/resources/META-INF/resources/images/logo.svg) B2B CRM

Sprachen: [English](README.md) | [Русский](README_ru.md) | [Deutsch](README_de.md) | [Italiano](README_it.md) | [Español](README_es.md)
Sprachen: [English](../README.md) | [Русский](README_ru.md) | [Deutsch](README_de.md) | [Italiano](README_it.md) | [Español](README_es.md) | [Tiếng Việt](README_vi.md) | [Српски](README_sr.md)

`B2B CRM` ist eine Enterprise-Demoanwendung auf Basis von Jmix, die zeigt, wie **produktionsreife** Geschäftssysteme
für `Kunden`, `Aufträge`, `Rechnungsstellung`, `Finanzen` und `Analysen` entwickelt werden. <br>Sie bildet reale **ERP/CRM**-Szenarien ab und demonstriert
Expand Down Expand Up @@ -54,7 +54,7 @@ Voraussetzungen: Java 21+

### Projekt starten

1. Starte die Jmix-Run-Konfiguration [B2B CRM](.run/crm-app.run.xml) oder führe aus
1. Starte die Jmix-Run-Konfiguration [B2B CRM](../.run/crm-app.run.xml) oder führe aus

```bash
./gradlew bootRun
Expand Down Expand Up @@ -103,7 +103,7 @@ Wichtige Funktionen:

Konfiguration:

- Setze `spring.ai.openai.api-key` in [application.properties](src/main/resources/application.properties) oder stelle die Umgebungsvariable `SPRING_AI_OPENAI_APIKEY` bereit
- Setze `spring.ai.openai.api-key` in [application.properties](../src/main/resources/application.properties) oder stelle die Umgebungsvariable `SPRING_AI_OPENAI_APIKEY` bereit

Nach der Aktivierung öffne den Menüpunkt `CRM AI` im Hauptmenü, um eine neue Konversation zu starten.

Expand All @@ -112,8 +112,8 @@ Nach der Aktivierung öffne den Menüpunkt `CRM AI` im Hauptmenü, um eine neue
Das lokale Profil generiert Demo-Daten beim Start der Anwendung:

- Die Generierung von Demo-Daten kann mit der Eigenschaft `crm.generateDemoData`
in [application.properties](src/main/resources/application.properties) deaktiviert werden
- Der Katalog wird aus [catalog.xlsx](src/main/resources/demo-data/catalog.xlsx) importiert
in [application.properties](../src/main/resources/application.properties) deaktiviert werden
- Der Katalog wird aus [catalog.xlsx](../src/main/resources/demo-data/catalog.xlsx) importiert

## 👥 Anwendungskonten

Expand Down
12 changes: 6 additions & 6 deletions README_es.md → readme/README_es.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# ![CRM](src/main/resources/META-INF/resources/images/logo.svg) B2B CRM
# ![CRM](../src/main/resources/META-INF/resources/images/logo.svg) B2B CRM

Idiomas: [English](README.md) | [Русский](README_ru.md) | [Deutsch](README_de.md) | [Italiano](README_it.md) | [Español](README_es.md)
Idiomas: [English](../README.md) | [Русский](README_ru.md) | [Deutsch](README_de.md) | [Italiano](README_it.md) | [Español](README_es.md) | [Tiếng Việt](README_vi.md) | [Српски](README_sr.md)

`B2B CRM` es una demo de aplicación empresarial creada con Jmix que muestra cómo desarrollar sistemas de negocio **listos para su puesta en producción**
para `clientes`, `pedidos`, `facturación`, `finanzas` y `analítica`. <br>Refleja escenarios reales **ERP/CRM** y demuestra
Expand Down Expand Up @@ -54,7 +54,7 @@ Requisitos: Java 21+

### Para ejecutar el proyecto

1. Ejecuta la configuración Jmix [B2B CRM](.run/crm-app.run.xml) o ejecuta
1. Ejecuta la configuración Jmix [B2B CRM](../.run/crm-app.run.xml) o ejecuta

```bash
./gradlew bootRun
Expand Down Expand Up @@ -103,7 +103,7 @@ Capacidades principales:

Configuración:

- Define `spring.ai.openai.api-key` en [application.properties](src/main/resources/application.properties) o proporciona la variable de entorno `SPRING_AI_OPENAI_APIKEY`
- Define `spring.ai.openai.api-key` en [application.properties](../src/main/resources/application.properties) o proporciona la variable de entorno `SPRING_AI_OPENAI_APIKEY`

Cuando esté habilitado, abre el elemento `CRM AI` en el menú principal para iniciar una nueva conversación.

Expand All @@ -112,8 +112,8 @@ Cuando esté habilitado, abre el elemento `CRM AI` en el menú principal para in
El perfil local genera datos demo al iniciar la aplicación:

- Puedes desactivar la generación de datos demo con la propiedad `crm.generateDemoData`
en [application.properties](src/main/resources/application.properties)
- El catálogo se importa desde [catalog.xlsx](src/main/resources/demo-data/catalog.xlsx)
en [application.properties](../src/main/resources/application.properties)
- El catálogo se importa desde [catalog.xlsx](../src/main/resources/demo-data/catalog.xlsx)

## 👥 Cuentas de la aplicación

Expand Down
12 changes: 6 additions & 6 deletions README_it.md → readme/README_it.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# ![CRM](src/main/resources/META-INF/resources/images/logo.svg) B2B CRM
# ![CRM](../src/main/resources/META-INF/resources/images/logo.svg) B2B CRM

Lingue: [English](README.md) | [Русский](README_ru.md) | [Deutsch](README_de.md) | [Italiano](README_it.md) | [Español](README_es.md)
Lingue: [English](../README.md) | [Русский](README_ru.md) | [Deutsch](README_de.md) | [Italiano](README_it.md) | [Español](README_es.md) | [Tiếng Việt](README_vi.md) | [Српски](README_sr.md)

`B2B CRM` è un'applicazione demo sviluppata con Jmix che mostra come creare sistemi aziendali **pronti per la produzione**
per lavorare con `clienti`, `ordini`, `fatture`, `finanza` e `analitica`. <br>Rappresenta scenari reali **ERP/CRM** e dimostra
Expand Down Expand Up @@ -54,7 +54,7 @@ Prerequisiti: Java 21+

### Esecuzione del progetto

1. Avvia la configurazione Jmix [B2B CRM](.run/crm-app.run.xml) oppure esegui
1. Avvia la configurazione Jmix [B2B CRM](../.run/crm-app.run.xml) oppure esegui

```bash
./gradlew bootRun
Expand Down Expand Up @@ -103,7 +103,7 @@ Funzionalità principali:

Configurazione:

- Imposta `spring.ai.openai.api-key` in [application.properties](src/main/resources/application.properties) oppure fornisci la variabile d'ambiente `SPRING_AI_OPENAI_APIKEY`
- Imposta `spring.ai.openai.api-key` in [application.properties](../src/main/resources/application.properties) oppure fornisci la variabile d'ambiente `SPRING_AI_OPENAI_APIKEY`

Dopo l'avvio apri la voce `CRM AI` nel menu principale per iniziare una nuova conversazione.

Expand All @@ -112,8 +112,8 @@ Dopo l'avvio apri la voce `CRM AI` nel menu principale per iniziare una nuova co
Il profilo locale genera dati demo all'avvio dell'applicazione:

- Puoi disabilitare la generazione dei dati demo con la proprietà `crm.generateDemoData`
in [application.properties](src/main/resources/application.properties)
- Il catalogo viene importato da [catalog.xlsx](src/main/resources/demo-data/catalog.xlsx)
in [application.properties](../src/main/resources/application.properties)
- Il catalogo viene importato da [catalog.xlsx](../src/main/resources/demo-data/catalog.xlsx)

## 👥 Account dell'applicazione

Expand Down
8 changes: 4 additions & 4 deletions README_ru.md → readme/README_ru.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# ![CRM](src/main/resources/META-INF/resources/images/logo.svg) B2B CRM
# ![CRM](../src/main/resources/META-INF/resources/images/logo.svg) B2B CRM

Языки: [English](README.md) | [Русский](README_ru.md) | [Deutsch](README_de.md) | [Italiano](README_it.md) | [Español](README_es.md)
Языки: [English](../README.md) | [Русский](README_ru.md) | [Deutsch](README_de.md) | [Italiano](README_it.md) | [Español](README_es.md) | [Tiếng Việt](README_vi.md) | [Српски](README_sr.md)

`B2B CRM` — корпоративное демонстрационное приложение на Jmix, показывающее, как разрабатывать **готовые к production** бизнес-системы
для работы с `клиентами`, `заказами`, `счетами`, `финансами` и `аналитикой`. <br>Оно отражает реальные сценарии **ERP/CRM** и демонстрирует
Expand Down Expand Up @@ -54,7 +54,7 @@

### Запуск проекта

1. Запустите Jmix run configuration [B2B CRM](.run/crm-app.run.xml) или выполните команду
1. Запустите Jmix run configuration [B2B CRM](../.run/crm-app.run.xml) или выполните команду

```bash
./gradlew bootRun
Expand Down Expand Up @@ -103,7 +103,7 @@ docker-compose up

Настройка:

- Укажите `spring.ai.openai.api-key` в [application.properties](src/main/resources/application.properties) или передайте переменную окружения `SPRING_AI_OPENAI_APIKEY`
- Укажите `spring.ai.openai.api-key` в [application.properties](../src/main/resources/application.properties) или передайте переменную окружения `SPRING_AI_OPENAI_APIKEY`

После включения откройте пункт `CRM AI` в главном меню, чтобы начать новый диалог.

Expand Down
157 changes: 157 additions & 0 deletions readme/README_sr.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,157 @@
# ![CRM](../src/main/resources/META-INF/resources/images/logo.svg) B2B CRM

Језици: [English](../README.md) | [Русский](README_ru.md) | [Deutsch](README_de.md) | [Italiano](README_it.md) | [Español](README_es.md) | [Tiếng Việt](README_vi.md) | [Српски](README_sr.md)

`B2B CRM` је демо апликација корпоративног нивоа изграђена помоћу Jmix-а која показује како развити пословне системе **спремне за продукцију**
укључујући `клијенте`, `поруџбине`, `фактурисање`, `финансије` и `аналитику`. <br>Одражава реалне **ERP/CRM** сценарије и демонстрира
најбоље праксе у моделовању домена, корисничком интерфејсу, безбедности и имплементацији пословне логике.

## 📑 Садржај

- [Преглед](#-преглед)
- [Технолошки стек](#-технолошки-стек)
- [Коришћени додаци](#-додаци)
- [Изградња и покретање](#-изградња-и-покретање)
- [AI асистент](#-ai-асистент)
- [Демо подаци](#-демо-подаци)
- [Налози](#-налози-апликације)
- [Модел домена](#-модел-домена)
- [Модел улога](#-модел-улога)

## 📖 Преглед

Овај пројекат моделује типичан B2B продајни процес:

- Управљање каталогом производа и категорија
- Одржавање клијената и контаката
- Праћење поруџбина и ставки поруџбина
- Издавање фактура и евидентирање уплата
- Постављање пословних питања AI асистенту
- Праћење задатака и недавних активности
- Преглед продајне аналитике

## 🛠️ Технолошки стек

- Java 21
- Jmix 2.8
- Spring Boot 3
- HSQLDB

## 🧩 Додаци

- Audit
- Application settings
- Charts
- Data tools
- Dynamic attributes
- Grid export
- Local file storage
- Reports (укључује шаблон фактуре)

## 🚀 Изградња и покретање

Предуслови: Java 21+

### Покретање пројекта

1. Покрените Jmix конфигурацију [B2B CRM](../.run/crm-app.run.xml) или извршите

```bash
./gradlew bootRun
```

2. [Отворите URL апликације](http://localhost:8080/b2b-crm)

### Покретање преко JAR-а

```bash
./gradlew bootJar -Pvaadin.productionMode
```

```bash
java -jar build/libs/crm.jar
```

### Покретање преко Docker-а

```bash
docker build -t jmix-crm .
```

```bash
docker run --rm -p 8080:8080 jmix-crm
```

### Покретање преко Docker Compose-а

```bash
docker-compose up
```

## 🤖 AI асистент

Апликација укључује уграђени `CRM AI` радни простор за анализу CRM података у природном језику.

Кључне могућности:

- Постављање пословних питања о клијентима, поруџбинама, фактурама, уплатама и продајном учинку
- Поштовање дозвола приступа подацима тренутног корисника и одржавање разговора приватним за њиховог аутора
- Коришћење уграђених пословних извештаја као што су `Client 360 Report` и `Category Cashflow Risk Allocation Report`
- Чување историје разговора са аутоматски генерисаним насловима чета
- Отпремање датотека у разговор и омогућавање асистенту да анализира подржане документе и слике
- Генерисање интерактивних веза до CRM записа директно у одговорима

Подешавање:

- Поставите `spring.ai.openai.api-key` у [application.properties](src/main/resources/application.properties) или обезбедите променљиву окружења `SPRING_AI_OPENAI_APIKEY`

Када је омогућено, отворите ставку `CRM AI` у главном менију да започнете нови разговор.

## 🎲 Демо подаци

Локални профил генерише демо податке при покретању апликације:

- Можете онемогућити генерисање демо података помоћу својства `crm.generateDemoData`
у [application.properties](../src/main/resources/application.properties)
- Каталог се увози из [catalog.xlsx](../src/main/resources/demo-data/catalog.xlsx)

## 👥 Налози апликације

| Положај | Корисничко име | Лозинка | Приступ |
|-----------------|----------------|---------|------------------------------------------------------|
| Administrator | ```admin``` | admin | Пун приступ свим подацима и подешавањима |
| Supervisor | ```james``` | james | Manager + управљање каталогом + додела налога |
| Manager | ```manager``` | manager | Пун приступ свим клијентима и поруџбинама |
| Account Manager | ```alice``` | alice | Види само клијенте додељене Alice Brown |
| Account Manager | ```robert``` | robert | Види само клијенте додељене Robert Taylor |

## ⚙️ Модел домена

```mermaid
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
```

## 🔐 Модел улога

Апликација користи хијерархијски модел улога:

- `Administrator`: пун приступ свим функцијама апликације, ентитетима и подешавањима.
- `Supervisor`: проширује улогу Manager-а додатним административним могућностима:
- Управљање каталогом производа (Categories и Category Items).
- Додела Account Managers за Clients.
- `Manager`: примарна улога за продајне операције.
- Пун приступ Clients, Contacts, Orders, Invoices и Payments.
- Приступ само за читање каталогу производа.
- Управљање сопственим Tasks.
- `UI Minimal`: минимални приступ који омогућава пријаву и основну навигацију.
Loading
Loading