Telepesa is a modular, microservices-based digital banking platform. It provides secure, scalable services for user management, accounts, transactions, loans, notifications, transfers, and bill payments, routed through a centralized API Gateway and discovered via Eureka.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β TELEPESA ARCHITECTURE β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββ
β Web Frontend β
β (React/TypeScript)β
β localhost:5174 β
ββββββββββββ¬βββββββββββ
β HTTPS/CORS
β
ββββββββββββΌβββββββββββ
β API Gateway β
β (Spring Gateway) β
β localhost:8080 β
ββββββββββββ¬βββββββββββ
β
ββββββββββββββββββββββΌβββββββββββββββββββββ
β β β
ββββββββββββΌββββββββββ ββββββββββΌβββββββββ ββββββββββΌβββββββββ
β Eureka Server β β Infrastructure β β Monitoring β
β (Service Discovery)β β β β β
β localhost:8761 β β PostgreSQL:5432 β β Zipkin:9411 β
ββββββββββββββββββββββ β Redis:6379 β β Kafka:9092 β
β MongoDB:27017 β βββββββββββββββββββ
β ZooKeeper:2181 β
ββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β MICROSERVICES LAYER β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ β
β β User Service β β Account Service β βTransaction Svc β β Loan Service β β
β β Port: 8081 β β Port: 8082 β β Port: 8083 β β Port: 8084 β β
β β β β β β β β β β
β β β’ Authenticationβ β β’ Account CRUD β β β’ Txn Processingβ β β’ Loan Apps β β
β β β’ JWT Tokens β β β’ Balance Mgmt β β β’ History β β β’ Credit Checks β β
β β β’ User Profiles β β β’ Account Types β β β’ Audit Logs β β β’ Repayment β β
β β β’ Security β β β’ Statements β β β’ Reconciliationβ β β’ Collateral β β
β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ β
β β
β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ β
β βNotification Svc β β Transfer Serviceβ βBill Payment Svc β β
β β Port: 8085 β β Port: 8086 β β Port: 8087 β β
β β β β β β β β
β β β’ Email/SMS β β β’ Fund Transfersβ β β’ Utility Bills β β
β β β’ Push Notify β β β’ Inter-bank β β β’ Telecom β β
β β β’ Templates β β β’ Fee Calc β β β’ Entertainment β β
β β β’ Audit Trail β β β’ Limits β β β’ Biller Mgmt β β
β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββ
β DATA LAYER β
βββββββββββββββββββββββββββββββ€
β β
β β’ PostgreSQL (Primary) β
β - User data β
β - Account data β
β - Transaction records β
β - Loan information β
β β
β β’ Redis (Cache & Sessions) β
β - JWT tokens β
β - Rate limiting β
β - Temporary data β
β β
β β’ MongoDB (Notifications) β
β - Email templates β
β - Notification history β
β - Message queues β
β β
β β’ Kafka (Event Streaming) β
β - Transaction events β
β - Audit trails β
β - Inter-service comms β
β β
βββββββββββββββββββββββββββββββ
- Language/Framework: Java 17, Spring Boot 3.4
- Service Discovery: Netflix Eureka
- API Gateway: Spring Cloud Gateway
- Datastores: PostgreSQL (primary), Redis (cache), MongoDB (notifications)
- Messaging/Tracing: Kafka, Zipkin
- Auth: Spring Security + JWT
- Docs: OpenAPI/Swagger
- Containers: Docker
- Frontend: React + TypeScript + Vite
- API Gateway: 8080
- Eureka Server: 8761
- User Service: 8081
- Account Service: 8082
- Transaction Service: 8083
- Loan Service: 8084
- Notification Service: 8085
- Transfer Service: 8086
- Bill Payment Service: 8087
Prerequisites: Docker Desktop or Docker Engine.
- Build shared libraries (first time only)
cd Backend/shared-libraries
mvn -q -DskipTests clean install- Start core infrastructure and services
cd Backend/docker-compose
# Starts infra + gateway + Eureka + transfer-service + bill-payment-service
docker compose -f docker-compose.yml up -d \
zookeeper kafka postgres redis zipkin eureka-server api-gateway \
transfer-service bill-payment-service- Verify health
# Eureka UI
open http://localhost:8761
# API Gateway health
curl -fsS http://localhost:8080/actuator/health | jq
# Transfer Service health (via service)
curl -fsS http://localhost:8086/actuator/health | jq
# Bill Payment Service health (via service)
curl -fsS http://localhost:8087/actuator/health | jqNotes
- All services register with Eureka and are routed via the API Gateway under /api/v1/**.
- Per-service PostgreSQL databases are created by docker-compose init scripts.
- Users: /api/v1/users/**
- Accounts: /api/v1/accounts/**
- Transactions: /api/v1/transactions/**
- Loans: /api/v1/loans/**
- Notifications: /api/v1/notifications/**
- Transfers: /api/v1/transfers/**
- Bills: /api/v1/bills/**
- Each service can be run with:
mvn spring-boot:run -Dspring-boot.run.profiles=dev - Recommended to run Eureka and API Gateway first, then dependent services.
cd Backend
mvn -q clean test
# Or run realistic E2E infra/gateway tests
bash Backend/scripts/realistic-e2e-test.shPostman collection: Backend/Telepesa_API_Collection_Complete.postman_collection.json
Docker Hub (Recommended):
# Repository Secrets Required:
DOCKER_USERNAME=<your-dockerhub-username>
DOCKER_PASSWORD=<your-dockerhub-token>GitHub Container Registry (Alternative):
# Repository Secret Required:
GHCR_PAT=<github-personal-access-token>
# Token needs: write:packages, read:packagesCoverage Reports (Optional but Recommended):
# Repository Secret Required:
CODECOV_TOKEN=<your-codecov-upload-token>
# Get token from: https://codecov.io/gh/YOUR_USERNAME/YOUR_REPOSetup Steps:
- Visit codecov.io and sign up with GitHub
- Add your repository to Codecov
- Copy the upload token from repository settings
- Add
CODECOV_TOKENto your GitHub repository secrets - Coverage reports will be automatically uploaded on each CI run
- Code Coverage: >80% target across all services
- Security Scanning: Automated vulnerability detection
- Bundle Size: Frontend <5MB JavaScript bundle limit
- Build Time: Average <10 minutes per pipeline
- Deployment: Zero-downtime with health checks
The Telepesa web application provides a modern, responsive interface for all banking operations. Here are screenshots showcasing the key features:
Login Page |
Register Account |
Dashboard Home |
Accounts Interface |
Transfer Form |
Bill Payments |
Bill Payments |
Loan Details |
Loan Details |
My Loan Status |
Loan Calculator |
Profile Settings |
Profile Settings |
Security Settings |
Security Settings |
Help & Support |
- Secure Authentication: JWT-based login with session management
- Real-time Dashboard: Account balances, recent transactions, and quick actions
- Money Transfers: Internal and external transfers with real-time processing
- Bill Payments: Utility bills, telecom, and entertainment payments
- Responsive Design: Optimized for desktop, tablet, and mobile devices
- Transaction Search: Advanced filtering and search capabilities
- Notifications: Real-time alerts and notification management
- Account Management: Profile settings, security preferences, and preferences
- Backend/docs contains detailed guides for architecture, security, and testing.
- Each service exposes Swagger UI at
http://localhost:<port>/swagger-ui.html. - Frontend web app: http://localhost:5174/ (React + TypeScript)
MIT License. See LICENSE for details.















