A comprehensive exchange rate comparison and intelligence platform serving both consumers and businesses in the African remittance market.
Remittrack addresses the gap in African-focused remittance comparison services by providing real-time rate aggregation from 20+ Money Transfer Providers (MTPs) with intelligent alerting and competitive analysis capabilities.
- Backend: Java Spring Boot 3.2 with Maven
- Database: PostgreSQL with TimescaleDB extension for time-series optimization
- Caching: Redis for high-performance API responses
- Validation: Professional libraries (libphonenumber, Apache Commons)
- Documentation: OpenAPI 3.0 with Swagger UI
- Real-time rate comparison across multiple MTPs
- Flexible filtering by delivery method, payment type, user tier
- Event-driven alert system with multi-channel notifications
- Accurate fee calculations for both additive and subtractive fee structures
- Competitive analysis API for fintech clients
- Historical rate trends and volatility analytics
- Arbitrage opportunity detection
- API key-based authentication with tiered rate limiting
- Flexible Data Model: JSON attributes support dynamic MTP onboarding
- Time-Series Optimization: TimescaleDB for efficient rate data storage
- Event-Driven Alerts: Real-time notifications triggered by rate updates
- Professional Validation: Industry-standard phone/email handling
- Enterprise Patterns: Circuit breakers, rate limiting, comprehensive monitoring
Backend Framework: Java 17, Spring Boot 3.2, Spring Data JPA Database: PostgreSQL 15, TimescaleDB, Redis Build Tool: Maven 3.9 Validation: libphonenumber, Apache Commons Validator Documentation: SpringDoc OpenAPI 3.0 Testing: JUnit 5, TestContainers Deployment: Railway, Docker
- Java 17+
- Maven 3.6+
- PostgreSQL with TimescaleDB extension
# Clone repository
git clone https://github.com/your-username/remittrack.git
cd remittrack/packages/backend
# Configure database
cp src/main/resources/application-example.yml src/main/resources/application.yml
# Update database credentials
# Run application
./mvnw spring-boot:run