@@ -162,7 +162,7 @@ export default function HomePage() {
@@ -189,23 +189,23 @@ export default function HomePage() {
@@ -277,11 +277,11 @@ export default function HomePage() {
{
label: "Home", href: "/"},
{
- label: "Schemes", href: "/schemes"},
+ label: "Schemes", href: "#schemes"},
{
- label: "Performance", href: "/performance"},
+ label: "Performance", href: "#metrics"},
{
- label: "Invest", href: "/invest"},
+ label: "Investment Guide", href: "#investment-guide"},
],
},
{
@@ -291,9 +291,9 @@ export default function HomePage() {
{
label: "Contact", href: "#contact"},
{
- label: "Support", href: "#"},
+ label: "Testimonials", href: "#testimonials"},
{
- label: "Blog", href: "#"},
+ label: "FAQs", href: "#faq"},
],
},
{
@@ -325,4 +325,4 @@ export default function HomePage() {
);
-}
\ No newline at end of file
+}
diff --git a/src/lib/data/fund-schemes.ts b/src/lib/data/fund-schemes.ts
new file mode 100644
index 0000000..cc32043
--- /dev/null
+++ b/src/lib/data/fund-schemes.ts
@@ -0,0 +1,304 @@
+/**
+ * Sample Mutual Fund Schemes Data
+ * Used for the schemes section component
+ */
+
+import {
+ FundScheme,
+ PerformanceMetrics,
+ RiskAndRatioMetrics,
+ InvestmentRequirements,
+ FundCategory,
+ RiskProfile,
+ InvestmentType,
+ SIPFrequency,
+ PortfolioComposition,
+} from "@/lib/types/mutual-fund";
+
+/**
+ * Sample Fund Schemes
+ */
+export const fundSchemes: FundScheme[] = [
+ {
+ id: "equity-growth-001", schemeCode: "EQUITY-GR-001", schemeName: "Premium Growth Fund", fundHouseName: "FundHub Investment Management", ISIN: "INF175A01234", category: FundCategory.EQUITY,
+ subCategory: "Large Cap", riskProfile: RiskProfile.MODERATE_TO_HIGH,
+ launchDate: new Date("2015-01-15"),
+ fundSize: 2500,
+ unitPrice: 45.75,
+ description:
+ "A growth-oriented equity fund that invests primarily in large-cap stocks with a focus on capital appreciation over long-term periods.", investmentObjective:
+ "To provide long-term capital growth by investing in a diversified portfolio of large-cap equities.", targetInvestors: ["Investors seeking capital growth", "Long-term investment horizon (5+ years)"],
+ fundManager: "Rajesh Singh", fundManagerName: "Rajesh Singh", fundManagerExperience: 15,
+ isActive: true,
+ isNew: false,
+ isPopular: true,
+ portfolioComposition: {
+ equityPercentage: 95,
+ debtPercentage: 3,
+ cashPercentage: 2,
+ },
+ },
+ {
+ id: "equity-aggressive-001", schemeCode: "EQUITY-AG-001", schemeName: "Aggressive Growth Fund", fundHouseName: "FundHub Investment Management", ISIN: "INF175A01235", category: FundCategory.EQUITY,
+ subCategory: "Mid & Small Cap", riskProfile: RiskProfile.HIGH,
+ launchDate: new Date("2018-06-10"),
+ fundSize: 1800,
+ unitPrice: 38.20,
+ description:
+ "An aggressive fund targeting high growth by investing in mid and small-cap equities. Suitable for aggressive investors with higher risk tolerance.", investmentObjective:
+ "To maximize capital appreciation by investing in mid and small-cap stocks with strong growth potential.", targetInvestors: [
+ "Aggressive investors", "Higher risk tolerance", "Long-term investment horizon (7+ years)"],
+ fundManager: "Priya Sharma", fundManagerName: "Priya Sharma", fundManagerExperience: 12,
+ isActive: true,
+ isNew: false,
+ isPopular: false,
+ portfolioComposition: {
+ equityPercentage: 98,
+ debtPercentage: 1,
+ cashPercentage: 1,
+ },
+ },
+ {
+ id: "debt-income-001", schemeCode: "DEBT-INC-001", schemeName: "Secure Income Fund", fundHouseName: "FundHub Investment Management", ISIN: "INF175B01236", category: FundCategory.DEBT,
+ subCategory: "Fixed Income", riskProfile: RiskProfile.LOW_TO_MODERATE,
+ launchDate: new Date("2016-03-20"),
+ fundSize: 3200,
+ unitPrice: 52.40,
+ description:
+ "A debt fund providing steady income through fixed-income securities including government bonds and corporate bonds with strong credit ratings.", investmentObjective:
+ "To provide regular income through a mix of government and high-quality corporate bonds.", targetInvestors: [
+ "Conservative investors", "Income seekers", "Medium-term investors (3-5 years)"],
+ fundManager: "Vikram Patel", fundManagerName: "Vikram Patel", fundManagerExperience: 18,
+ isActive: true,
+ isNew: false,
+ isPopular: true,
+ portfolioComposition: {
+ equityPercentage: 0,
+ debtPercentage: 95,
+ cashPercentage: 5,
+ },
+ },
+ {
+ id: "hybrid-balanced-001", schemeCode: "HYBRID-BAL-001", schemeName: "Balanced Advantage Fund", fundHouseName: "FundHub Investment Management", ISIN: "INF175C01237", category: FundCategory.HYBRID,
+ subCategory: "Balanced", riskProfile: RiskProfile.MODERATE,
+ launchDate: new Date("2017-08-05"),
+ fundSize: 2100,
+ unitPrice: 42.85,
+ description:
+ "A balanced fund maintaining a 60% equity and 40% debt allocation to provide both growth and stability.", investmentObjective:
+ "To provide a balance between growth and income through a diversified portfolio of equities and debt securities.", targetInvestors: ["Moderate investors", "Balanced growth seekers", "Medium to long-term investors"],
+ fundManager: "Anisha Gupta", fundManagerName: "Anisha Gupta", fundManagerExperience: 10,
+ isActive: true,
+ isNew: false,
+ isPopular: false,
+ portfolioComposition: {
+ equityPercentage: 60,
+ debtPercentage: 40,
+ cashPercentage: 0,
+ },
+ },
+ {
+ id: "liquid-001", schemeCode: "LIQUID-001", schemeName: "Premium Liquid Fund", fundHouseName: "FundHub Investment Management", ISIN: "INF175D01238", category: FundCategory.LIQUID,
+ subCategory: "Liquid", riskProfile: RiskProfile.LOW,
+ launchDate: new Date("2014-01-15"),
+ fundSize: 4500,
+ unitPrice: 50.25,
+ description:
+ "A liquid fund offering easy liquidity and competitive returns with minimal risk. Ideal for parking surplus funds.", investmentObjective:
+ "To provide liquidity and competitive returns through investment in short-term debt instruments.", targetInvestors: ["Conservative investors", "Short-term parking", "Emergency funds"],
+ fundManager: "Rajesh Singh", fundManagerName: "Rajesh Singh", fundManagerExperience: 15,
+ isActive: true,
+ isNew: false,
+ isPopular: true,
+ portfolioComposition: {
+ equityPercentage: 0,
+ debtPercentage: 100,
+ cashPercentage: 0,
+ },
+ },
+];
+
+/**
+ * Sample Performance Metrics
+ */
+export const performanceMetrics: PerformanceMetrics[] = [
+ {
+ id: "perf-equity-growth-001", fundSchemeId: "equity-growth-001", asOfDate: new Date(),
+ oneMonthReturn: 2.5,
+ threeMonthReturn: 5.8,
+ sixMonthReturn: 10.2,
+ oneYearReturn: 14.5,
+ threeYearReturn: 12.8,
+ fiveYearReturn: 13.2,
+ sinceInceptionReturn: 18.5,
+ oneYearCAGR: 14.5,
+ threeYearCAGR: 12.8,
+ fiveYearCAGR: 13.2,
+ ytdReturn: 11.3,
+ benchmarkIndex: "Nifty 50", benchmarkReturn: 13.2,
+ alpha: 1.3,
+ beta: 0.95,
+ },
+ {
+ id: "perf-equity-aggressive-001", fundSchemeId: "equity-aggressive-001", asOfDate: new Date(),
+ oneMonthReturn: 3.2,
+ threeMonthReturn: 7.5,
+ sixMonthReturn: 12.8,
+ oneYearReturn: 16.2,
+ threeYearReturn: 15.5,
+ fiveYearReturn: 14.8,
+ sinceInceptionReturn: 22.1,
+ oneYearCAGR: 16.2,
+ threeYearCAGR: 15.5,
+ fiveYearCAGR: 14.8,
+ ytdReturn: 13.5,
+ benchmarkIndex: "Nifty Midcap 100", benchmarkReturn: 15.2,
+ alpha: 1.0,
+ beta: 1.15,
+ },
+ {
+ id: "perf-debt-income-001", fundSchemeId: "debt-income-001", asOfDate: new Date(),
+ oneMonthReturn: 0.4,
+ threeMonthReturn: 1.2,
+ sixMonthReturn: 2.5,
+ oneYearReturn: 6.1,
+ threeYearReturn: 5.8,
+ fiveYearReturn: 5.5,
+ sinceInceptionReturn: 7.2,
+ oneYearCAGR: 6.1,
+ threeYearCAGR: 5.8,
+ fiveYearCAGR: 5.5,
+ ytdReturn: 4.8,
+ benchmarkIndex: "Crisil Composite Bond Fund Index", benchmarkReturn: 5.8,
+ alpha: 0.3,
+ beta: 0.05,
+ },
+];
+
+/**
+ * Sample Risk and Ratio Metrics
+ */
+export const riskAndRatioMetrics: RiskAndRatioMetrics[] = [
+ {
+ id: "risk-equity-growth-001", fundSchemeId: "equity-growth-001", asOfDate: new Date(),
+ standardDeviation: 12.5,
+ variance: 156.25,
+ sharpeRatio: 1.8,
+ sortinoRatio: 2.4,
+ calmarRatio: 1.2,
+ turnover: 45,
+ expenseRatio: 0.65,
+ entryLoad: 0,
+ exitLoad: 0,
+ managementFeePercentage: 0.5,
+ },
+ {
+ id: "risk-debt-income-001", fundSchemeId: "debt-income-001", asOfDate: new Date(),
+ standardDeviation: 3.2,
+ variance: 10.24,
+ sharpeRatio: 2.1,
+ sortinoRatio: 3.2,
+ calmarRatio: 2.8,
+ modifiedDuration: 4.5,
+ effectiveDuration: 4.3,
+ averageMaturity: 5.2,
+ creditQualityScore: 85,
+ turnover: 25,
+ expenseRatio: 0.45,
+ entryLoad: 0,
+ exitLoad: 0,
+ managementFeePercentage: 0.35,
+ },
+];
+
+/**
+ * Sample Investment Requirements
+ */
+export const investmentRequirements: InvestmentRequirements[] = [
+ {
+ id: "inv-req-equity-growth-001", fundSchemeId: "equity-growth-001", minimumLumpSum: 10000,
+ minimumSIP: 500,
+ minimumAdditionalInvestment: 1000,
+ allowedInvestmentTypes: [InvestmentType.SIP, InvestmentType.LUMP_SUM],
+ sipFrequencies: [
+ SIPFrequency.MONTHLY,
+ SIPFrequency.QUARTERLY,
+ SIPFrequency.YEARLY,
+ ],
+ sipDuration: 12,
+ lockInPeriod: 0,
+ minimumAge: 18,
+ residencyRequirement: "RESIDENT_INDIAN", kycRequired: true,
+ panRequired: true,
+ bankAccountRequired: true,
+ accountTypeEligibility: ["INDIVIDUAL", "JOINT", "HUF", "CORPORATE"],
+ documentRequirements: [
+ "PAN Card", "Aadhaar Card", "Address Proof", "Bank Account Details"],
+ },
+ {
+ id: "inv-req-debt-income-001", fundSchemeId: "debt-income-001", minimumLumpSum: 5000,
+ minimumSIP: 500,
+ minimumAdditionalInvestment: 500,
+ allowedInvestmentTypes: [InvestmentType.SIP, InvestmentType.LUMP_SUM],
+ sipFrequencies: [
+ SIPFrequency.MONTHLY,
+ SIPFrequency.QUARTERLY,
+ SIPFrequency.YEARLY,
+ ],
+ sipDuration: 12,
+ lockInPeriod: 0,
+ minimumAge: 18,
+ residencyRequirement: "RESIDENT_INDIAN", kycRequired: true,
+ panRequired: true,
+ bankAccountRequired: true,
+ accountTypeEligibility: ["INDIVIDUAL", "JOINT", "HUF", "CORPORATE"],
+ documentRequirements: [
+ "PAN Card", "Aadhaar Card", "Address Proof", "Bank Account Details"],
+ },
+];
+
+/**
+ * Linked fund scheme data for display
+ */
+export interface LinkedFundSchemeData extends FundScheme {
+ performance?: PerformanceMetrics;
+ riskMetrics?: RiskAndRatioMetrics;
+ investmentReqs?: InvestmentRequirements;
+}
+
+/**
+ * Get complete fund scheme data with linked metrics
+ */
+export function getLinkedFundSchemeData(): LinkedFundSchemeData[] {
+ return fundSchemes.map((scheme) => ({
+ ...scheme,
+ performance: performanceMetrics.find((p) => p.fundSchemeId === scheme.id),
+ riskMetrics: riskAndRatioMetrics.find((r) => r.fundSchemeId === scheme.id),
+ investmentReqs: investmentRequirements.find(
+ (i) => i.fundSchemeId === scheme.id
+ ),
+ }));
+}
+
+/**
+ * Get fund schemes by category
+ */
+export function getFundSchemesByCategory(
+ category: FundCategory
+): LinkedFundSchemeData[] {
+ return getLinkedFundSchemeData().filter((scheme) => scheme.category === category);
+}
+
+/**
+ * Get popular fund schemes
+ */
+export function getPopularFundSchemes(): LinkedFundSchemeData[] {
+ return getLinkedFundSchemeData().filter((scheme) => scheme.isPopular);
+}
+
+/**
+ * Get new fund schemes
+ */
+export function getNewFundSchemes(): LinkedFundSchemeData[] {
+ return getLinkedFundSchemeData().filter((scheme) => scheme.isNew);
+}
diff --git a/src/lib/types/mutual-fund.ts b/src/lib/types/mutual-fund.ts
new file mode 100644
index 0000000..5247565
--- /dev/null
+++ b/src/lib/types/mutual-fund.ts
@@ -0,0 +1,282 @@
+/**
+ * Mutual Fund Data Types and Database Schema
+ * Comprehensive type definitions for fund schemes, performance metrics, and investment requirements
+ */
+
+/**
+ * Fund Scheme Types
+ */
+export enum FundCategory {
+ EQUITY = "EQUITY", DEBT = "DEBT", HYBRID = "HYBRID", MONEY_MARKET = "MONEY_MARKET", LIQUID = "LIQUID", COMMODITY = "COMMODITY", INTERNATIONAL = "INTERNATIONAL"}
+
+export enum RiskProfile {
+ LOW = "LOW", LOW_TO_MODERATE = "LOW_TO_MODERATE", MODERATE = "MODERATE", MODERATE_TO_HIGH = "MODERATE_TO_HIGH", HIGH = "HIGH"}
+
+export enum InvestmentType {
+ SIP = "SIP", LUMP_SUM = "LUMP_SUM", BOTH = "BOTH"}
+
+/**
+ * Fund Scheme Database Schema
+ */
+export interface FundScheme {
+ // Identification
+ id: string;
+ schemeCode: string;
+ schemeName: string;
+ fundHouseName: string;
+ ISIN: string;
+ category: FundCategory;
+ subCategory?: string;
+
+ // Fund Details
+ riskProfile: RiskProfile;
+ launchDate: Date;
+ fundSize: number; // in crores
+ unitPrice: number; // current NAV
+ portfolioComposition?: PortfolioComposition;
+
+ // Description
+ description: string;
+ investmentObjective: string;
+ targetInvestors?: string[];
+ fundManager: string;
+ fundManagerName?: string;
+ fundManagerExperience?: number; // in years
+
+ // Flags
+ isActive: boolean;
+ isNew: boolean;
+ isPopular: boolean;
+}
+
+/**
+ * Portfolio Composition
+ */
+export interface PortfolioComposition {
+ equityPercentage: number;
+ debtPercentage: number;
+ goldPercentage?: number;
+ internationalPercentage?: number;
+ cashPercentage: number;
+ otherPercentage?: number;
+}
+
+/**
+ * Performance Metrics
+ */
+export interface PerformanceMetrics {
+ id: string;
+ fundSchemeId: string;
+ asOfDate: Date;
+
+ // Returns
+ oneMonthReturn?: number;
+ threeMonthReturn?: number;
+ sixMonthReturn?: number;
+ oneYearReturn: number;
+ threeYearReturn?: number;
+ fiveYearReturn?: number;
+ tenYearReturn?: number;
+ sinceInceptionReturn?: number;
+
+ // CAGR (Compound Annual Growth Rate)
+ oneYearCAGR?: number;
+ threeYearCAGR?: number;
+ fiveYearCAGR?: number;
+ tenYearCAGR?: number;
+
+ // YTD and Period-specific
+ ytdReturn: number;
+ quarterlyReturn?: number;
+ calendarYearReturn?: number;
+
+ // Benchmark comparison
+ benchmarkIndex?: string;
+ benchmarkReturn?: number;
+ alpha?: number; // excess return
+ beta?: number; // volatility relative to benchmark
+}
+
+/**
+ * Risk and Ratio Metrics
+ */
+export interface RiskAndRatioMetrics {
+ id: string;
+ fundSchemeId: string;
+ asOfDate: Date;
+
+ // Volatility Metrics
+ standardDeviation: number; // annualized volatility
+ variance?: number;
+
+ // Risk-Adjusted Returns
+ sharpeRatio: number;
+ sortinoRatio?: number;
+ calmarRatio?: number;
+ treynorRatio?: number;
+
+ // Duration and Maturity (for debt funds)
+ modifiedDuration?: number;
+ effectiveDuration?: number;
+ averageMaturity?: number;
+
+ // Credit Metrics (for debt funds)
+ creditQualityScore?: number; // AAA, AA, A, etc.
+ defaultRisk?: number; // percentage
+
+ // Fund Health Metrics
+ turnover?: number; // portfolio turnover ratio
+ expenseRatio: number;
+ entryLoad?: number;
+ exitLoad?: number;
+ managementFeePercentage?: number;
+}
+
+/**
+ * Investment Requirements and Eligibility
+ */
+export interface InvestmentRequirements {
+ id: string;
+ fundSchemeId: string;
+
+ // Investment Minimums
+ minimumLumpSum: number;
+ minimumSIP: number; // monthly SIP minimum
+ minimumAdditionalInvestment?: number;
+ maximumSIPAmount?: number;
+
+ // Investment Types Allowed
+ allowedInvestmentTypes: InvestmentType[];
+
+ // SIP Details
+ sipFrequencies?: SIPFrequency[]; // MONTHLY, QUARTERLY, etc.
+ sipDuration?: number; // minimum lock-in period in months
+
+ // Lock-in Period
+ lockInPeriod?: number; // in days
+ lockInType?: 'ELSS' | 'NONE'; // ELSS funds have 3-year lock-in
+
+ // Eligibility
+ minimumAge?: number;
+ maximumAge?: number;
+ residencyRequirement?: string; // NRI, RESIDENT, etc.
+ kycRequired: boolean;
+ accountTypeEligibility?: string[]; // INDIVIDUAL, JOINT, HUF, etc.
+
+ // Additional Requirements
+ panRequired: boolean;
+ aadharRequired?: boolean;
+ bankAccountRequired: boolean;
+ documentRequirements?: string[];
+}
+
+export enum SIPFrequency {
+ WEEKLY = "WEEKLY", FORTNIGHTLY = "FORTNIGHTLY", MONTHLY = "MONTHLY", QUARTERLY = "QUARTERLY", HALF_YEARLY = "HALF_YEARLY", YEARLY = "YEARLY"}
+
+/**
+ * Fund Distribution and Dividend Information
+ */
+export interface DividendInformation {
+ id: string;
+ fundSchemeId: string;
+
+ // Dividend Options
+ optionType: 'GROWTH' | 'DIVIDEND' | 'BONUS';
+ dividendFrequency?: string; // Annual, Half-yearly, etc.
+ lastDividendAmount?: number;
+ lastDividendDate?: Date;
+
+ // Dividend History
+ annualDividendYield?: number;
+ payoutRatio?: number;
+ consecutiveDividendPayments?: number; // streak
+}
+
+/**
+ * Fee and Expense Breakdown
+ */
+export interface FeeStructure {
+ id: string;
+ fundSchemeId: string;
+
+ // Direct Fees
+ directExpenseRatio: number; // for direct plans
+ regularExpenseRatio?: number; // for regular plans (includes commission)
+ managementFee: number;
+ administrationFee?: number;
+ custodyFee?: number;
+ auditFee?: number;
+ otherFees?: number;
+
+ // Load Structure
+ entryLoad?: number; // percentage
+ exitLoad?: number; // percentage
+ exitLoadPeriod?: number; // days after purchase
+
+ // Rebate Structure
+ rebates?: RebateStructure[];
+}
+
+export interface RebateStructure {
+ investmentAmount: number;
+ rebatePercentage: number;
+}
+
+/**
+ * Fund Company/House Information
+ */
+export interface FundHouse {
+ id: string;
+ houseName: string;
+ registrationNumber: string;
+ establishmentYear: number;
+ website?: string;
+ phone?: string;
+ email?: string;
+ address?: string;
+ assetsUnderManagement: number; // in crores
+ numberOfSchemes: number;
+ regulatoryStatus: 'ACTIVE' | 'SUSPENDED' | 'CLOSED';
+}
+
+/**
+ * Scheme Holding and Portfolio Information
+ */
+export interface PortfolioHolding {
+ id: string;
+ fundSchemeId: string;
+ holdingId: string; // stock/security identifier
+ holdingName: string;
+ quantity?: number;
+ percentage: number; // % of total fund value
+ sector?: string;
+ holdingType: 'EQUITY' | 'DEBT' | 'DERIVATIVE' | 'CASH';
+ rating?: string; // credit rating for debt securities
+}
+
+/**
+ * Historical Data for Trends
+ */
+export interface HistoricalNAV {
+ id: string;
+ fundSchemeId: string;
+ date: Date;
+ nav: number;
+ navChange?: number;
+ navChangePercentage?: number;
+}
+
+/**
+ * Database Schema Summary
+ */
+export interface MutualFundDatabase {
+ fundSchemes: FundScheme[];
+ performanceMetrics: PerformanceMetrics[];
+ riskAndRatioMetrics: RiskAndRatioMetrics[];
+ investmentRequirements: InvestmentRequirements[];
+ dividendInformation: DividendInformation[];
+ feeStructures: FeeStructure[];
+ fundHouses: FundHouse[];
+ portfolioHoldings: PortfolioHolding[];
+ historicalNAV: HistoricalNAV[];
+}