Iranian Instant Payment (IIP)

**NOTE: None of ISC’s projects are open source. So, I am not able to share the code which I have written in this project.

Introduction

IIP is Central Bank of Iran’s newest inter-bank payment system. IIP services are available all-around-the clock and should result in the immediate or close to immediate crediting of the Beneficiary’s account. The project is based on microservice architecture.

My Responsibilites

  1. Developed a Socket.IO client based on Spring Boot for pre-defined communication between IIP and consumer banks. The client receives from and send messages to consumer banks using IBM MQ and communicates with Socket.IO server.
  2. Developed a terminal for real-time communication between the Angular application and the server’s command line using WebSocket and Xterm.js.
  3. Netflix Zuul gateway implementation for receving messages from clients based on REST endpoints and delivering them to destination services using Apache Kafka. For service discovery, Eureka server is used. [Source Code]

Technologies/Languaes Used

Technology Usage
Java is used for developing backend services
Typescript is the main language used for developing Angular applications.
Spring Boot framework is used for developing backend services based on microservices architecture
Spring frameworks, including Spring Cloud, Spring Security, Spring Data, etc. are used for developing backend services.
Socket IO library is used for implementing its client for real-time communication with server
IBM MQ is a message queue which is used for exchanging messages between Socket IO client and banks themselves
Angular framework is used for developing GUI web applications.
Docker is used for virtualization and containerizing services, including backend and frontend services.
SVN is used for version control

Project information

  • Category: Web
  • Client: Central Bank of Iran (CBI)
  • Project date: August 2019 - Present