{"id":24812844,"url":"https://github.com/fintech-lsi/transaction-service","last_synced_at":"2025-03-25T16:27:22.252Z","repository":{"id":273280970,"uuid":"915769918","full_name":"Fintech-LSI/Transaction-service","owner":"Fintech-LSI","description":"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.","archived":false,"fork":false,"pushed_at":"2025-01-20T00:04:55.000Z","size":478,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-01-30T14:41:07.637Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Fintech-LSI.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-12T18:50:31.000Z","updated_at":"2025-01-20T00:06:12.000Z","dependencies_parsed_at":"2025-01-20T00:27:25.538Z","dependency_job_id":"697dc507-f20c-46a4-a883-aa5f70435ade","html_url":"https://github.com/Fintech-LSI/Transaction-service","commit_stats":null,"previous_names":["fintech-lsi/transaction-service"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fintech-LSI%2FTransaction-service","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fintech-LSI%2FTransaction-service/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fintech-LSI%2FTransaction-service/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fintech-LSI%2FTransaction-service/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Fintech-LSI","download_url":"https://codeload.github.com/Fintech-LSI/Transaction-service/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245499082,"owners_count":20625302,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-30T14:38:18.083Z","updated_at":"2025-03-25T16:27:22.231Z","avatar_url":"https://github.com/Fintech-LSI.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# 💸 Transaction Service\n\n[![Build Status](https://img.shields.io/jenkins/build?jobUrl=your-jenkins-url)](https://jenkins-url)\n[![Quality Gate Status](https://img.shields.io/sonar/quality_gate/transaction-service?server=http://54.86.47.1:9000)](http://54.86.47.1:9000)\n[![Docker Pulls](https://img.shields.io/docker/pulls/your-repo/transaction-service)](https://hub.docker.com/r/your-repo/transaction-service)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\u003c/div\u003e\n\n## 📋 Table of Contents\n- [Overview](#-overview)\n- [Features](#-features)\n- [Architecture](#-architecture)\n- [Tech Stack](#-tech-stack)\n- [Project Structure](#-project-structure)\n- [Pipeline](#-pipeline)\n- [Getting Started](#-getting-started)\n- [API Documentation](#-api-documentation)\n- [Configuration](#-configuration)\n- [Deployment](#-deployment)\n- [Contributing](#-contributing)\n- [Team](#-team)\n- [License](#-license)\n\n## 🎯 Overview\n\nA 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.\n\n## ✨ Features\n\n- 💰 **Multiple Transaction Types**\n    - Deposits\n    - Withdrawals\n    - Transfers\n- 📊 **Transaction Status Tracking**\n- 🔄 **Real-time Processing**\n- 📱 **Wallet Integration**\n- 📨 **Notification Service**\n- 📈 **Transaction History**\n- 🔍 **Advanced Filtering**\n- 📊 **Status Monitoring**\n- 🔐 **Secure Processing**\n- 📝 **Audit Logging**\n\n## 🏗 Architecture\n\nThe service follows a microservices architecture with the following components:\n\n```\n                                 ┌─────────────┐\n                            ┌──▶│Wallet Service│\n┌──────────────┐    REST    │    └─────────────┘\n│  Transaction │◀──────────▶│    ┌─────────────┐\n│   Service    │    Kafka   └──▶│Notification  │\n└──────────────┘  Messages      │   Service    │\n                               └─────────────┘\n```\n\n## 🛠 Tech Stack\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Spring_Boot-F2F4F9?style=for-the-badge\u0026logo=spring-boot\" alt=\"Spring Boot\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Java-ED8B00?style=for-the-badge\u0026logo=java\u0026logoColor=white\" alt=\"Java\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Apache_Kafka-231F20?style=for-the-badge\u0026logo=apache-kafka\u0026logoColor=white\" alt=\"Kafka\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/PostgreSQL-316192?style=for-the-badge\u0026logo=postgresql\u0026logoColor=white\" alt=\"PostgreSQL\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Docker-2CA5E0?style=for-the-badge\u0026logo=docker\u0026logoColor=white\" alt=\"Docker\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/kubernetes-326ce5.svg?\u0026style=for-the-badge\u0026logo=kubernetes\u0026logoColor=white\" alt=\"Kubernetes\" /\u003e\n\u003c/div\u003e\n\n## 📂 Project Structure\n\n```\nsrc/\n├── 📱 main/java/com/lsi/transaction/\n│   ├── 📊 config/\n│   ├── 🎮 controller/\n│   │   └── TransactionController.java\n│   ├── 📦 dto/\n│   │   ├── request/\n│   │   └── response/\n│   ├── 🏢 entity/\n│   │   ├── Deposit.java\n│   │   ├── MoneyMethods.java\n│   │   ├── Transaction.java\n│   │   ├── TransactionStatus.java\n│   │   ├── Transfer.java\n│   │   └── WithDraw.java\n│   ├── 📚 repository/\n│   ├── 🔧 service/\n│   │   ├── TransactionService.java\n│   │   ├── feign_clients/\n│   │   └── kafka_service/\n│   └── TransactionServiceApplication.java\n├── 📝 main/resources/\n│   ├── application.yaml\n│   └── application-local.yaml\n└── 🧪 test/\n```\n\n## 🔄 Pipeline\n\nOur CI/CD pipeline ensures secure and reliable deployments:\n\n![CI/CD Pipeline](/images/pipeline-diagram.png)\n\n1. 📥 **Code Checkout**: Source code retrieval\n2. 🔍 **SonarQube Analysis**: Code quality and security checks\n3. 🏗️ **Maven Build**: Compilation and package creation\n4. 🐳 **Docker Build \u0026 Push**: Container image creation and ECR upload\n5. ☸️ **EKS Deployment**: Kubernetes deployment with proper configurations\n\n## 🚀 Getting Started\n\n```bash\n# Clone the repository\ngit clone https://github.com/your-org/transaction-service.git\n\n# Navigate to the project directory\ncd transaction-service\n\n# Build the project\nmvn clean install\n\n# Run locally\nmvn spring-boot:run -Dspring.profiles.active=local\n\n# Run tests\nmvn test\n```\n\n## 📚 API Documentation\n\nAvailable endpoints:\n\n```\nGET /api/transaction              - Get all transactions\nGET /api/transaction/type/{type}  - Get transactions by type (withdraw/deposit/transfer)\nGET /api/transaction/wallet/{id}  - Get transactions by wallet ID\nGET /api/transaction/status/failed    - Get failed transactions\nGET /api/transaction/status/success   - Get successful transactions\nGET /api/transaction/status/pending   - Get pending transactions\n```\n\nDetailed API documentation is available at `/swagger-ui.html` when running the service.\n\n## ⚙️ Configuration\n\nKey configuration parameters in `application.yaml`:\n\n```yaml\nspring:\n  application:\n    name: transaction-service\n  kafka:\n    bootstrap-servers: ${KAFKA_SERVERS}\n    consumer:\n      group-id: transaction-group\n  datasource:\n    url: ${DB_URL}\n    username: ${DB_USERNAME}\n    password: ${DB_PASSWORD}\n\nfeign:\n  wallet-service:\n    url: ${WALLET_SERVICE_URL}\n```\n\n## 🚢 Deployment\n\nThe service is deployed on AWS EKS using Kubernetes manifests in the `k8s/` directory:\n\n- `configmap.yaml`: Environment variables\n- `secrets.yaml`: Sensitive data\n- `deployment.yaml`: Pod specifications\n- `service.yaml`: Service configuration\n\n## 👥 Team\n\n| Avatar                                                                                                  | Name | Role | GitHub |\n|---------------------------------------------------------------------------------------------------------|------|------|--------|\n| \u003cimg src=\"https://github.com/zachary013.png\" width=\"50\" height=\"50\" style=\"border-radius: 50%\"/\u003e        | Zakariae Azarkan | DevOps Engineer | [@zachary013](https://github.com/zachary013) |\n| \u003cimg src=\"https://github.com/goalaphx.png\" width=\"50\" height=\"50\" style=\"border-radius: 50%\"/\u003e          | El Mahdi Id Lahcen | Frontend Developer | [@goalaphx](https://github.com/goalaphx) |\n| \u003cimg src=\"https://github.com/hodaifa-ech.png\" width=\"50\" height=\"50\" style=\"border-radius: 50%\"/\u003e       | Hodaifa | Cloud Architect | [@hodaifa-ech](https://github.com/hodaifa-ech) |\n| \u003cimg src=\"https://github.com/khalilh2002.png\" width=\"50\" height=\"50\" style=\"border-radius: 50%\"/\u003e       | Khalil El Houssine | Backend Developer | [@khalilh2002](https://github.com/khalilh2002) |\n| \u003cimg src=\"https://github.com/Medamine-Bahassou.png\" width=\"50\" height=\"50\" style=\"border-radius: 50%\"/\u003e | Mohamed Amine BAHASSOU | ML Engineer | [@Medamine-Bahassou](https://github.com/Medamine-Bahassou) |\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n---\n\u003cdiv align=\"center\"\u003e\n  \u003cp\u003eBuilt with ❤️ by the FinTech Team\u003c/p\u003e\n\u003c/div\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffintech-lsi%2Ftransaction-service","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffintech-lsi%2Ftransaction-service","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffintech-lsi%2Ftransaction-service/lists"}