https://github.com/fintech-lsi/transaction-service
A robust transaction processing microservice built with Spring Boot that handles all financial transactions for the FinTechPro platform. This service manages deposits, withdrawals, transfers, and maintains transaction history with real-time event processing.
https://github.com/fintech-lsi/transaction-service
Last synced: over 1 year ago
JSON representation
A robust transaction processing microservice built with Spring Boot that handles all financial transactions for the FinTechPro platform. This service manages deposits, withdrawals, transfers, and maintains transaction history with real-time event processing.
- Host: GitHub
- URL: https://github.com/fintech-lsi/transaction-service
- Owner: Fintech-LSI
- Created: 2025-01-12T18:50:31.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-01-20T00:04:55.000Z (over 1 year ago)
- Last Synced: 2025-01-30T14:41:07.637Z (over 1 year ago)
- Language: Java
- Homepage:
- Size: 467 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ๐ธ Transaction Service
[](https://jenkins-url)
[](http://54.86.47.1:9000)
[](https://hub.docker.com/r/your-repo/transaction-service)
[](https://opensource.org/licenses/MIT)
## ๐ Table of Contents
- [Overview](#-overview)
- [Features](#-features)
- [Architecture](#-architecture)
- [Tech Stack](#-tech-stack)
- [Project Structure](#-project-structure)
- [Pipeline](#-pipeline)
- [Getting Started](#-getting-started)
- [API Documentation](#-api-documentation)
- [Configuration](#-configuration)
- [Deployment](#-deployment)
- [Contributing](#-contributing)
- [Team](#-team)
- [License](#-license)
## ๐ฏ Overview
A robust transaction processing microservice built with Spring Boot that handles all financial transactions for the FinTechPro platform. This service manages deposits, withdrawals, transfers, and maintains transaction history with real-time event processing.
## โจ Features
- ๐ฐ **Multiple Transaction Types**
- Deposits
- Withdrawals
- Transfers
- ๐ **Transaction Status Tracking**
- ๐ **Real-time Processing**
- ๐ฑ **Wallet Integration**
- ๐จ **Notification Service**
- ๐ **Transaction History**
- ๐ **Advanced Filtering**
- ๐ **Status Monitoring**
- ๐ **Secure Processing**
- ๐ **Audit Logging**
## ๐ Architecture
The service follows a microservices architecture with the following components:
```
โโโโโโโโโโโโโโโ
โโโโถโWallet Serviceโ
โโโโโโโโโโโโโโโโ REST โ โโโโโโโโโโโโโโโ
โ Transaction โโโโโโโโโโโโโถโ โโโโโโโโโโโโโโโ
โ Service โ Kafka โโโโถโNotification โ
โโโโโโโโโโโโโโโโ Messages โ Service โ
โโโโโโโโโโโโโโโ
```
## ๐ Tech Stack
## ๐ Project Structure
```
src/
โโโ ๐ฑ main/java/com/lsi/transaction/
โ โโโ ๐ config/
โ โโโ ๐ฎ controller/
โ โ โโโ TransactionController.java
โ โโโ ๐ฆ dto/
โ โ โโโ request/
โ โ โโโ response/
โ โโโ ๐ข entity/
โ โ โโโ Deposit.java
โ โ โโโ MoneyMethods.java
โ โ โโโ Transaction.java
โ โ โโโ TransactionStatus.java
โ โ โโโ Transfer.java
โ โ โโโ WithDraw.java
โ โโโ ๐ repository/
โ โโโ ๐ง service/
โ โ โโโ TransactionService.java
โ โ โโโ feign_clients/
โ โ โโโ kafka_service/
โ โโโ TransactionServiceApplication.java
โโโ ๐ main/resources/
โ โโโ application.yaml
โ โโโ application-local.yaml
โโโ ๐งช test/
```
## ๐ Pipeline
Our CI/CD pipeline ensures secure and reliable deployments:

1. ๐ฅ **Code Checkout**: Source code retrieval
2. ๐ **SonarQube Analysis**: Code quality and security checks
3. ๐๏ธ **Maven Build**: Compilation and package creation
4. ๐ณ **Docker Build & Push**: Container image creation and ECR upload
5. โธ๏ธ **EKS Deployment**: Kubernetes deployment with proper configurations
## ๐ Getting Started
```bash
# Clone the repository
git clone https://github.com/your-org/transaction-service.git
# Navigate to the project directory
cd transaction-service
# Build the project
mvn clean install
# Run locally
mvn spring-boot:run -Dspring.profiles.active=local
# Run tests
mvn test
```
## ๐ API Documentation
Available endpoints:
```
GET /api/transaction - Get all transactions
GET /api/transaction/type/{type} - Get transactions by type (withdraw/deposit/transfer)
GET /api/transaction/wallet/{id} - Get transactions by wallet ID
GET /api/transaction/status/failed - Get failed transactions
GET /api/transaction/status/success - Get successful transactions
GET /api/transaction/status/pending - Get pending transactions
```
Detailed API documentation is available at `/swagger-ui.html` when running the service.
## โ๏ธ Configuration
Key configuration parameters in `application.yaml`:
```yaml
spring:
application:
name: transaction-service
kafka:
bootstrap-servers: ${KAFKA_SERVERS}
consumer:
group-id: transaction-group
datasource:
url: ${DB_URL}
username: ${DB_USERNAME}
password: ${DB_PASSWORD}
feign:
wallet-service:
url: ${WALLET_SERVICE_URL}
```
## ๐ข Deployment
The service is deployed on AWS EKS using Kubernetes manifests in the `k8s/` directory:
- `configmap.yaml`: Environment variables
- `secrets.yaml`: Sensitive data
- `deployment.yaml`: Pod specifications
- `service.yaml`: Service configuration
## ๐ฅ Team
| Avatar | Name | Role | GitHub |
|---------------------------------------------------------------------------------------------------------|------|------|--------|
|
| Zakariae Azarkan | DevOps Engineer | [@zachary013](https://github.com/zachary013) |
|
| El Mahdi Id Lahcen | Frontend Developer | [@goalaphx](https://github.com/goalaphx) |
|
| Hodaifa | Cloud Architect | [@hodaifa-ech](https://github.com/hodaifa-ech) |
|
| Khalil El Houssine | Backend Developer | [@khalilh2002](https://github.com/khalilh2002) |
|
| Mohamed Amine BAHASSOU | ML Engineer | [@Medamine-Bahassou](https://github.com/Medamine-Bahassou) |
## ๐ License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
---
Built with โค๏ธ by the FinTech Team