Project documentation: The Use of NLP and DLT to Enable the Digitalization of Telecom Roaming Agreements

Table of Content for the project documentation:

  1. Publications that support the project
  2. Repository overview
  3. How to use the repository
  4. Design criteria
  5. Implementations criteria
  6. How to modify

Publications that support the project

The project is supported by two types of publications Medium Articles and Scientific Contributions.

Medium Articles that support the project

The project has been documented through the following Medium articles:

  1. Blockchain-based digitization of the roaming agreement drafting process
  2. NLP Engine to detect variables, standard clauses, variations, and customized texts
  3. Chaincode design for managing the drafting of roaming agreements
  4. Chaincode implementation for managing the drafting of roaming agreements

Scientific Contributions that support the project

  1. A Natural Language Processing Approach for the Digitalization of Roaming Agreements
    • Sent to the Conference: ILCICT 2021 (Current status): Under review

Solution Design Document

  1. Blockchain-based Digitalization of the Roaming Agreement Drafting Process

Repository overview

This section describes the set of folders include into the project repository.

Backend

The backend folder contains:

  • The APIs integrated into the backend.
  • The Postman queries to register the admin and user of a MNO.
  • Dockerfile to build the backend image.

Chaincode

The chaincode folder contains:

  • Implementation folder that contain the Smart Contract created to manage the Roaming Agreement Drafting.
  • Design folder that contain the chaincode design created with the application tool App Diagrams Tool.

Frontend

The frontend folder contains:

  • Source code for the frontend created in ReactJS.
  • Dockerfile to build the frontend image.

Monitoring

The monitoring folder contains:

  • Configuration files for Grafana.
  • Configuration files for Prometheus.

NLP-Engine

The nlp-engine folder contains:

  • Source code for the nlp-engine created in Python.
  • Dockerfile to build the nlp-engine image.

Documentation

The Documentation folder includes:

  • images folder with a set of images included as part of the documentation.
  • readme folder with a set of readme files included as part of the documentation.
  • swagger folder with a json file for APIs documentation.

Network

The network a set of subfolders to deploy each of the created services:

  • Sub-folder backend includes the resources to deploy the backend and Swagger containers.
  • Sub-folder elk includes the resources to deploy the elasticsearch cluster and kibana.
  • Sub-folder elk-agent includes the resources to deploy the filebeat container agents.
  • Sub-folder frontend includes the resources to deploy the frontend container.
  • Sub-folder hfb includes the resources to deploy the hfb network.
  • Sub-folder monitoring includes the resources to deploy Grafana and Kibana containers.
  • Sub-folder nlp-engine includes the resources to deploy the nlp-engine.

How to use the repository

  1. Please make sure that you have set up the environment for the project. Follow the steps listed in prerequisites.

  2. To get started with the project, clone the git repository in the go folder:

    $ export GOPATH=$HOME/go
    $ mkdir $GOPATH/src/github.com -p
    $ cd $GOPATH/src/github.com  
    $ git clone https://github.com/sfl0r3nz05/NLP-DLT.git
    
  3. To use the NLP-Engine following this instructions

  4. To deploy the HFB-Network following this instructions

  5. To deploy the ELK-Infrastructure following this instructions

  6. To deploy the Filebeat-Agent following this instructions

    ⭐ The Filebeat-Agent is based on the Linux Foundation Project: Blockchain Analyzer: Analyzing Hyperledger Fabric Ledger, Transactions

  7. The Backend of the project is:

    • To deploy the Backend following this instructions.
    • To monitor the Backend following this instructions.
    • The Backend has been documented through Swagger, which is deployed along with the Backend. Details of how to modify Swagger are provided in How to modify section,

Demos

Demo NLP Part Demo rest of project
Watch the video Watch the video

Designs criteria

This part is under development ...

Chaincode

  • Details of the chaincode design here.

Implementations criteria

This part is under development ...

Chaincode

  • Details of the chaincode implementation here.

How to modify

This part is under development ...

NLP-Engine

Chaincode

Swagger (Backend Documentation)

  • To modify swagger documentation following this instructions.