Manage TZS 10B+ investment portfolios across Fixed Deposits, Bonds, and Equities with real-time analytics, automated accruals, and enterprise security — all from one platform.
Demo credentials: admin / Admin@123
31
Database Tables
103
FK Constraints
75+
API Endpoints
17
Frontend Routes
112
Configurable Values
<3s
Dashboard Load
Purpose-built for financial institutions managing multi-billion-shilling investment portfolios across multiple asset classes.
Real-time portfolio overview with 7 KPI cards, 6 interactive charts, maturity calendar, and cash flow forecasting — all in one view.
Unified management of Fixed Deposits, Corporate & Government Bonds, and Equities with full lifecycle tracking — create, rollover, withdraw, close.
6 configurable roles with granular permissions across 15 modules. Three-tier approval thresholds. Data-level access control per user.
Multi-channel alerts (in-app, email, SMS) for maturity reminders, overdue payments, concentration breaches, and FX rate movements.
Automated interest computation with 4 day-count conventions. Batch posting, reversal, and GL journal export for accounting integration.
Portfolio summary, FD register, bond register, maturity schedule, bank exposure, concentration, TIRA compliance — all with CSV export.
9 KPIs, 6 interactive charts, and real-time data — all loading in under 3 seconds.
Total Portfolio
TZS 9.99B
YTD Interest
TZS 383M
Maturing (90d)
23 investments
Avg Yield
8.93%
Every aspect of portfolio management, covered.
Stateless token-based auth with bcrypt password hashing and brute-force protection.
6 roles × 15 modules × 6 actions = 540 configurable permission points.
Every change to every field logged with who, when, old value, new value.
All business values in lookup tables — configurable from admin panel, no deployments.
// RBAC Permission Check
@UseGuards(JwtAuthGuard, RolesGuard)
@RequirePermission('FIXED_DEPOSITS', 'CREATE')
async create(@Body() dto, @CurrentUser() user) {
// Validate deposit limit
const limit = await this.validateLimit(
dto.account_id, dto.principal_amount
);
// Check approval threshold
const approval = await this.checkThreshold(
'FIXED_DEPOSIT', dto.principal_amount, user
);
// Auto-generate payment schedule
await this.generateSchedule(fd, user.id);
return { success: true, data: fd };
}Experience the full platform with real data. No setup required.
Launch Live DemoUsername: admin | Password: Admin@123