Skip to content

Commit

Permalink
BPMN
Browse files Browse the repository at this point in the history
  • Loading branch information
boozec committed Jun 4, 2024
1 parent 8933198 commit 30c04af
Show file tree
Hide file tree
Showing 3 changed files with 83 additions and 2 deletions.
2 changes: 1 addition & 1 deletion docs/architecture/index.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
sidebar_position: 2
sidebar_position: 3
slug: /architecture/
---

Expand Down
26 changes: 26 additions & 0 deletions docs/bpmn.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
---
sidebar_position: 2
slug: /bpmn/
---

# Diagramma BPMN

Questa documentazione fornisce una panoramica dettagliata del diagramma BPMN (Business Process Model and Notation) sviluppato utilizzando il Camunda Modeler e testato con il plugin Token Simulator. Il diagramma BPMN è uno strumento essenziale per modellare, visualizzare e ottimizzare i processi aziendali complessi, garantendo che tutte le fasi del processo siano chiaramente delineate e comprensibili.

![Screenshot BPMN](https://raw.githubusercontent.com/acme-sky/workers/main/assets/screenshot.png)

Nel diagramma BPMN progettato sono presenti diversi partecipanti che rappresentano i principali attori e componenti del sistema. Di seguito viene descritta la configurazione dei partecipanti e le loro interazioni all'interno del processo.

## Partecipanti

### User
Il partecipante **User** rappresenta l'utente finale del sistema. Questo partecipante è eseguibile e avvia specifiche azioni nel processo, come esprimere un nuovo interesse o avviare un processo di conferma del token di un viaggio.

### ACMESky
Il partecipante **ACMESky** è suddiviso in tre sotto-parti, chiamate "lame", ognuna delle quali gestisce una specifica funzionalità del sistema:
1. **Profilo utente**: Gestisce le operazioni relative al profilo dell'utente, inclusa l'espressione di nuovi interessi e la conferma dei token di viaggio.
2. **Manager degli interessi**: Gestisce gli interessi espressi dagli utenti. Questa pool è attivata unicamente da eventi di Timer catch.
3. **Manager dei voli**: Gestisce le informazioni sui voli disponibili. Anche questa pool è attivata solo da eventi di Timer catch ma anche da hook del servizio di Airline.

### Prontogram
Anche se non richiesto dal testo d'esame, è stato incluso il partecipante **Prontogram** per favorire una migliore integrazione tra l'utente e ACMESky. Prontogram rappresenta un servizio di messaggistica esterno che permette di inviare notifiche e aggiornamenti all'utente riguardo ai suoi interessi e voli.
57 changes: 56 additions & 1 deletion docs/services/index.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,65 @@
---
sidebar_position: 3
sidebar_position: 4
slug: /services/
---

# Servizi

## ACMESky

### Worker

L'architettura del worker è descritta nella sua [sezione
apposita](/docs/architecture#worker). Qui di seguito viene descritto un suo set
up d'esempio.

```sh
export ZEEBE_ADDRESS="localhost:26500"
export BPMN_FILE="bpmn/acmesky.bpmn"
export PROCESS_ID="Process_User"
export RABBITMQ_URI="amqp://guest:guest@localhost:5672/"
export SENTRY_DSN="<dsn che viene generato da Sentry>"
export DATABASE_DSN="host=host user=user password=pass dbname=acmesky port=5432"
export AIRLINES="https://airline1.com/v1,https//airline2.com/api"
export AIRLINE_LOGIN_USERNAME="admin"
export AIRLINE_LOGIN_PASSWORD="pass"
export OFFER_VALIDATION_TIME=24
export BANK_ENDPOINT="http://api.bank.com"
export BANK_PAYMENT_ENDPOINT="http://bank.com/?id="
export BANK_CALLBACK="http://backend.acmesky.com/api/pay"
export BANK_TOKEN="<token-segreto>"
export GEODISTANCE_API="127.0.0.1:50051"
```

È possibile fare un deploy del worker e di [Camunda
Platform](https://github.com/camunda/camunda-platform) usando docker-compose
presente nella cartella del codice sorgente.

```sh
$ docker build -t acmesky-workers .
$ git clone [email protected]:acme-sky/workers.git
$ docker compose up
```

Se non viene usato Docker, il servizio può essere eseguito con

```
$ go run main.go
```

### Backend

TODO

### Frontend

TODO

## Esterni

Qui di seguito sono presenti i collegamenti alle pagine per singolo servizio
esterno. Viene illustrato il loro set up e il link al codice sorgente.

- **[Airline](/services/airline)**. Usato come gestore di una compagnia aerea.

- **[Bank](/services/bank)**. Usato come gateway di un servizio bancario.
Expand Down

0 comments on commit 30c04af

Please sign in to comment.