Finova is a full-featured banking backend platform built with a microservices architecture. The system supports user registration with secure file uploads, account management, and financial transactions (deposits, withdrawals, transfers) orchestrated through Apache Kafka events. The platform implements hexagonal architecture in every microservice, JWT authentication with refresh tokens, and is fully deployed to AWS EC2 via a complete CI/CD pipeline using Jenkins.
Key Features:
- Microservices Architecture — 8 independent services (Auth, User, Account, Transaction, Notification, Gateway, Eureka, Config) with separate PostgreSQL databases
- Event-Driven System — Apache Kafka handles transaction lifecycle events and inter-service communication with reliability
- Security — JWT authentication with refresh tokens, BCrypt password hashing, OTP-based password recovery, and VirusTotal malware scanning for file uploads
- Cloud-Ready — AWS S3 for file storage, EC2 for deployment, ECR for Docker image registry, with Redis caching for performance
- Automated Testing — JUnit 5, Mockito-Kotlin, Testcontainers, and WireMock with comprehensive coverage reports
- CI/CD Pipeline — Jenkins declarative pipeline with SonarQube quality gates, automated Docker builds, and zero-downtime deployments
- Email Notifications — Automated HTML email templates for all transaction events and password recovery flows