{"id":23200546,"url":"https://github.com/felixojiambo/finpay","last_synced_at":"2026-04-12T02:33:51.790Z","repository":{"id":268273323,"uuid":"874812572","full_name":"felixojiambo/FinPay","owner":"felixojiambo","description":"FinPay is envisioned as a cutting-edge FinTech platform designed to cater to both financial and non-financial managers by simplifying financial management and reporting processes.","archived":false,"fork":false,"pushed_at":"2025-01-01T16:12:22.000Z","size":621,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-17T20:42:35.503Z","etag":null,"topics":["database","docker","domain-driven-design","event-driven-architecture","java","kafka","kurbenetes","rest-api","security","spring-boot"],"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/felixojiambo.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":"2024-10-18T14:02:48.000Z","updated_at":"2025-01-01T09:57:59.000Z","dependencies_parsed_at":"2024-12-15T18:36:33.324Z","dependency_job_id":null,"html_url":"https://github.com/felixojiambo/FinPay","commit_stats":null,"previous_names":["felixojiambo/finpay"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felixojiambo%2FFinPay","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felixojiambo%2FFinPay/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felixojiambo%2FFinPay/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felixojiambo%2FFinPay/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/felixojiambo","download_url":"https://codeload.github.com/felixojiambo/FinPay/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247314057,"owners_count":20918752,"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":["database","docker","domain-driven-design","event-driven-architecture","java","kafka","kurbenetes","rest-api","security","spring-boot"],"created_at":"2024-12-18T15:11:46.650Z","updated_at":"2026-04-12T02:33:46.759Z","avatar_url":"https://github.com/felixojiambo.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FinPay\n\nFinPay is a comprehensive financial services platform designed to facilitate various payment processes, virtual card management, invoicing, reporting, and more. It consists of a modular microservices architecture that enables independent development, deployment, and scaling of different services.\n\n## Project Structure\n\nThe FinPay project is organized as follows:\n\n```\nFinPay/\n├── README.md                        # Project Documentation\n├── docs/                            # Documentation\n│   ├── architecture/                # System Architecture documentation\n│   ├── api-specifications/          # API Specifications\n│   └── user-guides/                 # User Guides and Manuals\n├── common/                          # Shared Libraries \u0026 Utilities\n│   ├── libs/                        # Shared libraries across services\n│   ├── models/                      # Shared data models\n│   └── utils/                       # Utility functions and helpers\n├── infrastructure/                  # Infrastructure as Code\n│   ├── terraform/                   # Terraform scripts for cloud infrastructure\n│   │   ├── network/                 # Networking configurations\n│   │   ├── databases/               # Database provisioning\n│   │   └── kubernetes/              # Kubernetes cluster configurations\n│   └── kubernetes/                  # Kubernetes configurations\n│       ├── namespaces/              # Namespace definitions\n│       ├── secrets/                 # Secret management\n│       └── configmaps/              # Configuration maps\n├── ci-cd/                           # Continuous Integration \u0026 Deployment\n│   ├── azure-pipelines.yml          # Azure Pipelines configuration\n│   └── scripts/                     # Helper scripts for build, deploy, and test\n│       ├── build.sh\n│       ├── deploy.sh\n│       └── test.sh\n├── api-gateway/                     # API Gateway Service\n│   ├── src/                         # Source code\n│   ├── Dockerfile                   # Dockerfile for containerization\n│   ├── pom.xml                      # Maven configuration\n│   └── helm/                        # Helm charts for deployment\n├── authentication-service/          # Authentication \u0026 Authorization Service\n├── user-service/                    # User Management Service\n├── invoice-service/                 # Invoice Management Service\n├── payment-service/                 # Payment Processing Service\n├── virtual-card-service/            # Virtual Card Management Service\n├── virtual-account-service/         # Virtual Account Management Service\n├── reporting-service/               # Financial Reporting Service\n├── notification-service/            # Notification Service\n├── config-service/                  # Central Configuration Management\n├── discovery-service/               # Service Discovery\n├── message-broker/                  # Message Broker Configuration\n│   ├── kafka/                       # Kafka configurations\n│   └── rabbitmq/                    # RabbitMQ configurations\n├── monitoring-logging/              # Monitoring \u0026 Logging Tools\n│   ├── elk-stack/                   # ELK Stack configurations\n│   └── prometheus-grafana/          # Prometheus and Grafana configurations\n└── tools/                           # Developer Tools \u0026 Scripts\n    ├── code-formatter/              # Code formatting tools\n    ├── linter/                      # Linting tools\n    └── debugger/                    # Debugging tools\n```\n\n## Services Overview\n\n### 1. **API Gateway**\n   - Acts as a unified entry point for accessing the various services.\n   - Handles routing, load balancing, and rate limiting.\n   - Provides security features like authentication and authorization.\n   - Technologies: Spring Cloud Gateway, Java, Docker, Helm.\n\n### 2. **Authentication Service**\n   - Manages user authentication and authorization.\n   - Supports OAuth2, JWT, and OpenID Connect.\n   - Integrates with identity providers.\n   - Technologies: Java, Spring Security, Docker, Helm.\n\n### 3. **User Service**\n   - Manages user information and profiles.\n   - Supports CRUD operations for user data.\n   - Provides user-related reporting and analytics.\n   - Technologies: Java, Spring Boot, Docker, Helm.\n\n### 4. **Invoice Service**\n   - Handles invoice generation, processing, and tracking.\n   - Integrates with payment and reporting services.\n   - Supports multiple payment methods.\n   - Technologies: Java, Spring Boot, Docker, Helm.\n\n### 5. **Payment Service**\n   - Processes payments securely and efficiently.\n   - Integrates with various payment gateways.\n   - Supports credit card payments, bank transfers, etc.\n   - Technologies: Java, Spring Boot, Docker, Helm.\n\n### 6. **Virtual Card Service**\n   - Manages virtual card creation and operations.\n   - Supports issuing, renewing, and revoking virtual cards.\n   - Technologies: Java, Spring Boot, Docker, Helm.\n\n### 7. **Virtual Account Service**\n   - Handles virtual account management.\n   - Supports account creation, linking, and transactions.\n   - Technologies: Java, Spring Boot, Docker, Helm.\n\n### 8. **Reporting Service**\n   - Provides financial reports and dashboards.\n   - Integrates with invoicing and payment services.\n   - Technologies: Java, Spring Boot, Docker, Helm.\n\n### 9. **Notification Service**\n   - Manages sending notifications (email, SMS, push).\n   - Supports customizable notification templates.\n   - Technologies: Java, Spring Boot, Docker, Helm.\n\n### 10. **Config Service**\n   - Central configuration management for all services.\n   - Supports dynamic property updates and secret management.\n   - Technologies: Spring Cloud Config, Docker, Helm.\n\n### 11. **Discovery Service**\n   - Facilitates service discovery and registration.\n   - Technologies: Spring Cloud Eureka, Docker, Helm.\n\n## Infrastructure\n\n- **Infrastructure as Code (IaC)**: Uses Terraform to manage cloud infrastructure, including networking, databases, and Kubernetes clusters.\n- **Kubernetes**: Deployed on Kubernetes for container orchestration, leveraging Helm charts for managing deployments.\n- **Monitoring \u0026 Logging**: Uses the ELK stack and Prometheus with Grafana for centralized logging, monitoring, and alerting.\n\n## Continuous Integration \u0026 Deployment\n\n- **CI/CD Pipelines**: Configured with Azure Pipelines for automated build, testing, and deployment.\n- **Scripts**: Custom scripts for build, deploy, and testing help streamline the development workflow.\n\n## Getting Started\n\n### Prerequisites\n\n- Java 17 or above\n- Docker and Docker Compose\n- Kubernetes CLI (kubectl)\n- Helm\n- Terraform\n- Azure DevOps account\n\n### Running Locally\n\n1. **Clone the Repository**\n   ```bash\n   git clone https://github.com/felixojiambo/FinPay.git\n   cd FinPay\n   ```\n\n2. **Build Services**\n   ```bash\n   ./ci-cd/scripts/build.sh\n   ```\n\n3. **Deploy to Kubernetes**\n   ```bash\n   ./ci-cd/scripts/deploy.sh\n   ```\n\n4. **Access the API Gateway**\n   - The API Gateway will be accessible at `http://localhost:8080`.\n\n### Testing\n\n- Run the test script:\n   ```bash\n   ./ci-cd/scripts/test.sh\n   ```\n\n## Documentation\n\n- **System Architecture**: Detailed architecture diagrams and explanations can be found in `docs/architecture/`.\n- **API Specifications**: OpenAPI and Postman collection files are located in `docs/api-specifications/`.\n- **User Guides**: Usage manuals and guides for different user roles are available in `docs/user-guides/`.\n\n## Contributing\n\n1. Fork the repository.\n2. Create a feature branch (`git checkout -b feature-branch`).\n3. Commit changes (`git commit -m 'Add new feature'`).\n4. Push to the branch (`git push origin feature-branch`).\n5. Create a Pull Request.\n\n## License\n\nThis project is licensed under the MIT License.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffelixojiambo%2Ffinpay","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffelixojiambo%2Ffinpay","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffelixojiambo%2Ffinpay/lists"}