A mini project implementing banking workflow system using Spring Boot, PostgreSQL, Golang, and gRPC.
This project implements a banking workflow system with features including:
- Limit checking
- Financial matrix checking
- User authentication & authorization
- Role-based access control
- Workflow management using Camunda BPM
- Java 17
- Spring Boot 3.x
- PostgreSQL
- Golang
- gRPC
- Camunda BPM
- Docker
- Maven
- Git
- Docker Compose
- Set up Spring Boot project with dependencies
- Camunda BPM
- Spring Security
- PostgreSQL
- gRPC
- Configure PostgreSQL database
- Set up basic project structure
- Configure application properties
- Implement custom authentication service
- Integrate with KMS (Key Management System)
- Set up role-based access control (RBAC)
- Create user management APIs
- Implement token-based authentication
- Create BPMN workflow diagrams using Camunda Modeler
- Implement basic workflow steps:
- User request initiation
- Basic validation
- Approval process
- Test workflow execution
- Create service layer for:
- Limit checking service
- Financial matrix validation
- Transaction processing
- Implement error handling
- Add logging and monitoring
- Set up Golang project structure
- Implement gRPC services
- Create Proto definitions
- Implement business logic services
- Set up Java-Golang communication
- Implement approval matrices
- Add dynamic routing
- Implement timeout handling
- Add workflow versioning
- Implement additional security layers
- Add input validation
- Implement audit logging
- Add transaction signing
- Create business rule engine
- Implement validation rules
- Add limit checking rules
- Implement matrix approval rules
- Unit tests
- Integration tests
- Performance tests
- Security tests
- API documentation
- Workflow documentation
- Setup guide
- User guide
banking-workflow/ ├── workflow-service (Java) │ ├── src/main/java │ │ ├── config │ │ ├── controller │ │ ├── model │ │ ├── repository │ │ ├── service │ │ └── security │ ├── src/main/resources │ │ ├── bpmn │ │ └── application.yml │ └── src/test │ ├── business-service (Golang) │ ├── cmd │ ├── internal │ │ ├── service │ │ ├── repository │ │ └── model │ └── pkg │ ├── proto │ └── banking │ └── v1 │ └── docker ├── docker-compose.yml └── Dockerfile
- Java 17
- Go 1.19+
- PostgreSQL
- Docker & Docker Compose
- Maven