项目作者: alphasixteam

项目描述 :
Progetto di Ingegneria del Software A.A. 2018 - 2019
高级语言: Python
项目地址: git://github.com/alphasixteam/Butterfly.git
创建时间: 2019-05-16T07:46:18Z
项目社区:https://github.com/alphasixteam/Butterfly

开源协议:

下载


Butterfly

Butterfly è un software che permette la configurazione dell’inoltro dei messaggi da parte di Redmine e Gitlab agli utenti tramite Telegram ed Email, passando per il Broker Apache Kafka che comunica con un Gestore Personale che contiene tutte le preferenze degli utenti e quindi la logica degli inoltri. Questo prodotto è stato sviluppato come progetto di gruppo per il progetto della materia Ingegneria del Software dell’Anno Accademico 2018/2019 dei professori Tullio Vardanega e Riccardo Cardin.
Il gruppo che lo ha sviluppato si chiama AlphaSix ed è composto da:

La figura proponente di questo progetto è Imola Informatica che ha fornito il seguente capitolato che descrive i requisiti richiesti per il Butterfly:

Butterfly

Butterfly utilizza l’architettura Publisher Subscriber ed è stato pensato in maniera da suddividerlo in più sottosistemi: quello dei Producer, dei Consumer, del Gestore Personale e del Broker.

Docker e Rancher

Sotto richiesta dell’azienda proponente, Butterfly è stato sviluppato in maniera tale che funzioni su container Docker e la loro istanziazione venga fatta tramite un gestore di oggetti Kubernetes come Rancher. Il seguente README fa riferimento ad un sistema nel quale questi due sono correttamente installati e configurati.

DockerHub:

Le immagini di Docker corrispondenti ai vari container sono presenti anche su DockerHub dove sono state configurate le Automated Builds sul branch master.

Producer GitLab : Automated build Build status Pulls

Producer Redmine : Automated build Build status Pulls

Consumer telegram : Automated build Build status Pulls

Consumer mail : Automated build Build status Pulls

Gestore Personale Client : Automated build Build status Pulls

Gestore Personale : Automated build Build status Pulls

Istanziazione dei container su Rancher

Abbiamo sviluppato i Dockerfile in maniera tale da suddividere il progetto in 6 container:

Questi vengono descritti in particolare nelle rispettive cartelle in cui è anche contenuto il codice oltre che nei documenti prodotta insieme al software.

Su Rancher abbiamo pensato di suddividere un nodo che ci è stato fornito dall’azienda come ambiente di lavoro in maniera tale che ci fossero i seguenti namespace:

  • producer : con istanziati i container dei producer
  • consumer : con istanziati i container dei consumer
  • gestore-personale : con istanziati i container del gestore personale e MongoDB presente su DockerHub
  • kafka : con istanziato il container di Kafka presente nello store di container scaricabili in Rancher
  • gitlab : con istanziato il container di GitLab presente nel DockerHub
  • redmine : con istanziato i container di Redmine e Postgress presenti nel DockerHub

Nel container di Redmine è necessario installare correttamente il plugin relativo all’invio dei webhook.
È possibile configurare ciascun componente del prodotto tramite file di configurazione oppure variabili di ambiente (le seconde hanno la priorità) descritte per ciascuno dei servizi.

Per vedere l’installazione e la configurazione che è stata effettuata per la proponente vi rimandiamo ai documenti Manuale Utente e Manuale Sviluppatore rilasciati insieme al prodotto.

AnalisiDeiRequisiti v3.0.0_1647627643744.pdf
Glossario v.4.0.0_1647627644730.pdf
ManualeSviluppatore v2.0.0_1647627644854.pdf
ManualeUtente v2.0.0_1647627645111.pdf
PianoDiProgetto v4.0.0_1647627645290.pdf
PianoDiQualifica v4.0.0_1647627645439.pdf
VE_12-12-2018_1647627645650.pdf
VE_2019-02-09_1647627645697.pdf
VE_2019-02-19_1647627645756.pdf
VE_2019-02-23_1647627645824.pdf
VE_2019-03-12_1647627645868.pdf
VE_2019-03-23_1647627645954.pdf
VE_2019-03-27_1647627645994.pdf
VE_2019-04-26_1647627646640.pdf
VE_2019-05-08_1647627646731.pdf
NormeDiProgetto v4.0.0_1647627646857.pdf
StudioDiFattibilita v1.0.0_1647627647487.pdf
VI_07-01-2019_1647627647574.pdf
VI_17-12-2018_1647627647685.pdf
VI_2019-01-28_1647627647697.pdf
VI_2019-02-08_1647627647806.pdf
VI_2019-02-22_1647627647819.pdf
VI_2019-02-28_1647627647896.pdf
VI_2019-03-19_1647627647983.pdf
VI_2019-03-28_1647627648017.pdf
VI_2019-04-04_1647627648101.pdf
VI_2019-04-10_1647627648193.pdf
VI_2019-05-06_1647627648287.pdf
VI_22-11-2018_1647627648405.pdf
VI_26-11-2018_1647627648468.pdf
LetteraDiPresentazione_1647627648565.pdf
NormeDiProgetto v4.0.0_1647627646857.pdf
LetteraDiPresentazione_1647627648565.pdf
AnalisiDeiRequisiti v3.0.0_1647627643744.pdf
Glossario v.4.0.0_1647627644730.pdf
ManualeSviluppatore v2.0.0_1647627644854.pdf
ManualeUtente v2.0.0_1647627645111.pdf
PianoDiProgetto v4.0.0_1647627645290.pdf
PianoDiQualifica v4.0.0_1647627645439.pdf
VI_2019-03-28_1649370077018.pdf
VI_2019-04-04_1649370077059.pdf
VI_2019-04-10_1649370077102.pdf
VI_2019-05-06_1649370077159.pdf
VI_22-11-2018_1649370077220.pdf
VI_26-11-2018_1649370077255.pdf
LetteraDiPresentazione_1649370077299.pdf
VE_2019-02-19_1649370075983.pdf
VE_2019-02-23_1649370076037.pdf
VE_2019-03-12_1649370076074.pdf
VE_2019-03-23_1649370076155.pdf
VE_2019-03-27_1649370076218.pdf
VE_2019-04-26_1649370076289.pdf
VE_2019-05-08_1649370076361.pdf
NormeDiProgetto v4.0.0_1649370076447.pdf
StudioDiFattibilita v1.0.0_1649370076503.pdf
VI_07-01-2019_1649370076563.pdf
VI_17-12-2018_1649370076637.pdf
VI_2019-01-28_1649370076709.pdf
VI_2019-02-08_1649370076766.pdf
VI_2019-02-22_1649370076838.pdf
VI_2019-02-28_1649370076925.pdf
VI_2019-03-19_1649370076962.pdf
AnalisiDeiRequisiti v3.0.0_1649370075086.pdf
Glossario v.4.0.0_1649370075239.pdf
ManualeSviluppatore v2.0.0_1649370075383.pdf
ManualeUtente v2.0.0_1649370075542.pdf
PianoDiProgetto v4.0.0_1649370075635.pdf
PianoDiQualifica v4.0.0_1649370075799.pdf
VE_12-12-2018_1649370075894.pdf
VE_2019-02-09_1649370075944.pdf