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.
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.
- 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.
- 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)
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
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.
- 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.
- 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.
to monitor and manage the application we used Spring Boot Actuator It contains the actuator endpoints (the place where the resources live).
Thanks to All teams Who contributed to this work