Skip to main content

Features Overview

The src/features/ directory contains feature-based modules that organize code by business domain.

Feature List

FeatureDescription
fund-familyFund family management and configuration
capital-activityCapital calls, distributions, events
capital-callCapital call workflows and allocation
distributionsDistribution management
closingsFund closing workflows
equalizationsEqualization calculations
feesFee configuration and charging
waterfallsDistribution waterfall management
financial-reportingReports and performance metrics
investmentsInvestment tracking
investorsInvestor management
entitiesEntity management
commitmentsCommitment tracking
transactionsTransaction history
calculationsMXL calculation builder
settingsFund and system settings
authAuthentication and login
adminAdmin tools
credit-facilityCredit facility management
general-ledgerGL entries and accounting
noticesNotice generation
reportsReport generation
scenariosWhat-if analysis

Feature Structure

Each feature follows a consistent structure:
features/fund-family/
├── FundFamilyPage.tsx        # Main page
├── FundFamilyRoutes.tsx      # Route definitions
├── FundFamilyLayout.tsx      # Layout wrapper
├── components/               # Feature components
│   ├── FundFamilyCard.tsx
│   ├── FundFamilyTable.tsx
│   └── FundFamilyForm.tsx
├── hooks/                    # Custom hooks
│   ├── useFundFamily.ts
│   └── useFundFamilyList.ts
├── schemas/                  # Validation schemas
│   └── fundFamilySchemas.ts
└── utils/                    # Utilities
    └── fundFamilyHelpers.ts

Key Features

Fund Family

Central hub for fund administration:
  • Fund family details and settings
  • Fee configuration
  • Allocation rules
  • Document management

Capital Activity

Managing capital events:
  • Capital calls with allocation
  • Distributions
  • Event timeline
  • Notice generation

Calculations (MXL)

MXL formula builder:
  • Formula editor with autocomplete
  • Function documentation
  • Calculation preview
  • Audit trail

Financial Reporting

Performance and reporting:
  • Hypothetical waterfalls
  • Performance metrics (IRR, TVPI, DPI)
  • End-of-period reports
  • Custom reports

Settings

Configuration management:
  • Transaction codes
  • Fee settings
  • Allocation rules
  • Investor classes

Feature Dependencies

Adding a New Feature

1

Create directory

Create src/features/my-feature/.
2

Add page component

Create MyFeaturePage.tsx as the main entry point.
3

Define routes

Create MyFeatureRoutes.tsx with route definitions.
4

Register routes

Import routes in src/app/AppRoutes.tsx.
5

Add to navigation

Update navigation to include the new feature.

Best Practices

Features should be self-contained. Minimize imports from other features.
Common utilities, hooks, and components should go in src/shared/.
Follow the established pattern for new features.
Define routes in the feature, export to main router.