Transfer Data By Web Services Communication (REST)

Find out how we built a System to Transfer Data and Communicate with other applications over web services.

ismail talhaoui
4 min readJan 11, 2021
Photo by Xavi Cabrera on Unsplash

I- Definitions

i.Microcredit

Microcredit consists of providing short-term loans to people with very low incomes, who do not have access to the services offered by traditional financial institutions, to help them start their activities or develop their businesses.

II- Specifications

  • Send data over web services from “Alamana” to Central Database to BI system
  • Send the Data over a defined frequency for every module.
  • Send multiple modules from a different department.

III- Solution

  • Web application with Java (Spring Framework) in Back End and Angular in Front End.
  • Project management with Scrum framework.
  • The application will be hosted internally by Tomcat and Node
  • The system will use an intermediate database (MySQL)

i. Architecture

Project Architecture

Project architecture consists of 5 parts or steps :

1- File deposit by responsible for every module.

2- Store Data in the Database using Spring Batch.

3- Send changed Data Over Web Services.

4- Handle the Result of the data Sent.

5- Send Emails to the Responsible about the result.

ii. Data Base Architecture

Database Architecture

IV- My Role

In this project I have made major contributions to this project such as:

i. Development: As I’m Full Stack developer i took the two sides Front-End with Angular and Back-End with Java(Spring Framework).

ii. Test: Unit testing, Functional Testing, and integration Test.

iii. Deployment: Deployment of the code developed manually to servers Tomcat and node js.

iv. Communication and presentation of project to manager and director: daily communication (Standup meeting )with hierarchy to present tasks that i have done and what i will do in that day and if i have any problems we try to find solutions, weekly communication with Manager to present the advancement and every month to the Director, also the communication with other partners that will get the data sent.

v. Write technical documentation: Writing technical documentation of the services done and the test cases and writing Java Doc represent every web service and every function what it dose and the inputs and outputs using SWAGGER.

V- Languages and Frameworks

i- Back end

For the Back-end, we worked with Java especially the spring Framework :

  • Spring : The Spring Framework is an application framework and inversion of control container for the Java platform. The framework’s core features can be used by any Java application, but there are extensions for building web applications on top of the Java EE platform
  • Spring Batch :A lightweight, comprehensive batch framework designed to enable the development of robust batch applications vital for the daily operations of enterprise systems.it provides reusable functions that are essential in processing large volumes of records, including logging/tracing, transaction management, job processing statistics, job restart, skip, and resource management.
  • Spring Data : Spring Data’s mission is to provide a familiar and consistent, Spring-based programming model for data access while still retaining the special traits of the underlying data store.
  • JPA:is a Jakarta EE application programming interface specification that describes the management of relational data in enterprise Java applications.
  • Hibernate: Hibernate ORM is an object-relational mapping tool for the Java programming language. It provides a framework for mapping an object-oriented domain model to a relational database.
  • Spring Boot : an open source Java-based framework used to create a micro Service. It is developed by Pivotal Team and is used to build stand-alone and production ready spring applications. This chapter will give you an introduction to Spring Boot and familiarizes you with its basic concepts.

ii- Security

  • Spring Security : A powerful and highly customizable authentication and access-control framework. It is the de-facto standard for securing Spring-based applications.
  • JWT : JSON Web Token (JWT) is an open standard (RFC 7519) that defines a compact and self-contained way for securely transmitting information between parties as a JSON object.

iii- Testing

  • Junit: JUnit is a unit testing framework for the Java programming language.
  • Mockito: An open source testing framework for Java it allows the creation of test double objects in automated unit tests for the purpose of test-driven development or behavior-driven development.

iv -Front end

For the Front-End we choose Angular as framework for creating the login, and deposit file feature and to handle interaction with the Back-end ….

V- Version Management

For Version Management we used Git which is a free and open source distributed version control system.

VI- Documentation

For documentation of the project and the API we used Swagger which is an Interface Description Language for describing Restful APIs expressed using JSON.

VII- Monitoring

to monitor and manage the application we used Spring Boot Actuator It contains the actuator endpoints (the place where the resources live).

If you are interested in Java or Scrum or making websites and Applications , make sure to check out my portfolio and to contact Me !

Thanks to All teams Who contributed to this work

--

--