This repository contains a backend service for identity reconciliation, implemented using Java Spring-Boot and PostgreSQL.
This project implements a backend service to reconcile identities from different sources. The primary goal is to merge multiple records into a single identity record based on certain matching criteria.
- Reconciliation of identities from multiple data sources
- RESTful API endpoints for identity management
- Data persistence using PostgreSQL
- Error handling and logging
- API documentation with OpenAPI
- Java 17
- Spring Boot 3.3.0
- PostgreSQL
- Maven
Before you begin, ensure you have the following installed:
- Java 17
- Maven
- PostgreSQL
-
Clone the repository:
git clone https://github.com/sanaullahmohammed/identity-reconciliation.git cd identity-reconciliation
-
Install the required dependencies:
mvn clean install
-
Create a PostgreSQL database:
CREATE DATABASE identity_reconciliation;
-
Update the
application.properties
file with your PostgreSQL credentials:spring.datasource.url=jdbc:postgresql://localhost:5432/identity_reconciliation spring.datasource.username=yourusername spring.datasource.password=yourpassword spring.jpa.hibernate.ddl-auto=update
-
Start the Spring Boot application:
mvn spring-boot:run
-
The application will be available at
http://localhost:8080
. -
The swagger-ui will be available at
http://localhost:8080/swagger-ui/index.html
.
The API provides the following endpoints:
POST /api/identities
- Reconcile and create a new identity
Example request to reconcile identities:
{
"email": "john.doe@example.com",
"phone": "1234567890"
}
Docker and Docker Compose are not yet set up for this project. Implementing Docker will enable easier deployment and environment management.
The project currently lacks test coverage. Adding unit and integration tests is a pending task.
To run the tests (once implemented), use:
mvn test
Contributions are welcome! Please fork the repository and create a pull request with your changes.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a pull request
Distributed under the MIT License. See LICENSE
for more information.
Mohammed Sanaullah - mohammedsanaullah.dev@gmail.com
Project Link: https://github.com/sanaullahmohammed/identity-reconciliation