8 Commits

Author SHA1 Message Date
76c3a10215 Merge version_2 into main
Merge version_2 into main
2026-03-07 09:21:36 +00:00
8c217c27c1 Add src/lib/types/mutual-fund.ts 2026-03-07 09:21:32 +00:00
64061dc26a Add src/lib/data/fund-schemes.ts 2026-03-07 09:21:31 +00:00
dd9f0fec62 Update src/app/page.tsx 2026-03-07 09:21:31 +00:00
cbfdc6a890 Update src/app/layout.tsx 2026-03-07 09:21:30 +00:00
006a30858b Merge version_1 into main
Merge version_1 into main
2026-03-07 09:15:17 +00:00
3bfe5816a9 Merge version_1 into main
Merge version_1 into main
2026-03-07 09:14:32 +00:00
45a5a1bdc4 Merge version_1 into main
Merge version_1 into main
2026-03-07 09:13:26 +00:00
4 changed files with 643 additions and 110 deletions

View File

@@ -1,75 +1,23 @@
import type { Metadata } from "next";
import { Halant } from "next/font/google";
import { Inter } from "next/font/google";
import { Poppins } from "next/font/google";
import "./globals.css";
import { ServiceWrapper } from "@/components/ServiceWrapper";
import Tag from "@/tag/Tag";
const halant = Halant({
variable: "--font-halant",
subsets: ["latin"],
weight: ["300", "400", "500", "600", "700"],
});
const inter = Inter({
variable: "--font-inter",
subsets: ["latin"],
});
const poppins = Poppins({
variable: "--font-poppins",
subsets: ["latin"],
variable: "--font-poppins", subsets: ["latin"],
weight: ["100", "200", "300", "400", "500", "600", "700", "800", "900"],
});
export const metadata: Metadata = {
title: "Mutual Fund Distribution Platform - FundHub",
description: "Access diversified mutual fund schemes with transparent performance metrics, expert guidance, and flexible investment options. Compare funds, view ratios, and start investing today.",
keywords: "mutual funds, fund schemes, investment, SIP, performance analysis, fund comparison, wealth management",
metadataBase: new URL("https://fundhub.example.com"),
alternates: {
canonical: "https://fundhub.example.com",
},
openGraph: {
title: "Smart Mutual Fund Investing - FundHub",
description: "Invest in diversified mutual funds with transparent performance tracking and expert guidance.",
url: "https://fundhub.example.com",
siteName: "FundHub",
type: "website",
images: [
{
url: "https://fundhub.example.com/og-image.png",
alt: "FundHub - Mutual Fund Distribution Platform",
},
],
},
twitter: {
card: "summary_large_image",
title: "Smart Mutual Fund Investing - FundHub",
description: "Invest in diversified mutual funds with transparent performance tracking and expert guidance.",
images: ["https://fundhub.example.com/twitter-image.png"],
},
robots: {
index: true,
follow: true,
},
};
title: "FundHub - Mutual Fund Distribution Platform", description: "Access diversified mutual fund schemes with transparent performance metrics, expert guidance, and flexible investment options."};
export default function RootLayout({
children,
}: Readonly<{
}: {
children: React.ReactNode;
}>) {
}) {
return (
<html lang="en" suppressHydrationWarning>
<ServiceWrapper>
<body
className={`${halant.variable} ${inter.variable} ${poppins.variable} antialiased`}
>
<Tag />
{children}
<html lang="en">
<body className={`${poppins.variable} antialiased`}>{children}
<script
dangerouslySetInnerHTML={{
__html: `
@@ -1437,7 +1385,6 @@ export default function RootLayout({
}}
/>
</body>
</ServiceWrapper>
</html>
);
}
}

View File

@@ -33,12 +33,12 @@ export default function HomePage() {
brandName="FundHub"
navItems={[
{ name: "Home", id: "/" },
{ name: "Schemes", id: "/schemes" },
{ name: "Performance", id: "/performance" },
{ name: "Invest", id: "/invest" },
{ name: "Schemes", id: "#schemes" },
{ name: "Performance", id: "#metrics" },
{ name: "About", id: "#about" },
]}
button={{
text: "Open Account", href: "/contact"}}
text: "Open Account", href: "#contact"}}
animateOnLoad={true}
/>
</div>
@@ -61,9 +61,9 @@ export default function HomePage() {
]}
buttons={[
{
text: "Start Investing", href: "/invest"},
text: "Start Investing", href: "#investment-guide"},
{
text: "View Schemes", href: "/schemes"},
text: "View Schemes", href: "#schemes"},
]}
buttonAnimation="blur-reveal"
mediaAnimation="slide-up"
@@ -75,11 +75,11 @@ export default function HomePage() {
tag="About FundHub"
tagIcon={Shield}
tagAnimation="slide-up"
title="Simplifying Wealth Creation Through Transparent Mutual Fund Distribution"
title="Simplifying Wealth Creation Through Transparent Mutual Fund Distribution - Your Trusted Partner in Building Long-term Financial Security"
useInvertedBackground={false}
buttons={[
{
text: "Learn More", href: "#"},
text: "Explore Our Story", href: "#metrics"},
]}
buttonAnimation="blur-reveal"
/>
@@ -88,7 +88,7 @@ export default function HomePage() {
<div id="schemes" data-section="schemes">
<FeatureCardTwentyThree
title="Comprehensive Fund Schemes Portfolio"
description="Explore our curated selection of mutual funds across multiple categories to build a diversified investment portfolio."
description="Explore our curated selection of mutual funds across multiple categories to build a diversified investment portfolio. Each fund is carefully selected and monitored to align with different risk profiles and investment goals."
tag="Fund Categories"
tagIcon={Briefcase}
tagAnimation="slide-up"
@@ -108,7 +108,7 @@ export default function HomePage() {
useInvertedBackground={false}
buttons={[
{
text: "Explore All Schemes", href: "/schemes"},
text: "Explore All Schemes", href: "#schemes"},
]}
buttonAnimation="blur-reveal"
/>
@@ -117,7 +117,7 @@ export default function HomePage() {
<div id="metrics" data-section="metrics">
<MetricCardTen
title="Fund Performance & Key Ratios"
description="Compare fund performance metrics, Sharpe ratios, and expense ratios to make informed investment decisions."
description="Compare fund performance metrics, Sharpe ratios, and expense ratios to make informed investment decisions. Real-time data helps you track performance across different market cycles."
tag="Performance Data"
tagIcon={BarChart3}
tagAnimation="slide-up"
@@ -125,25 +125,25 @@ export default function HomePage() {
{
id: "growth-fund-1", title: "Premium Growth Fund", subtitle: "Annual Return | Sharpe Ratio 1.8", category: "Equity", value: "14.5% YTD", buttons: [
{
text: "Details", href: "#"},
text: "Details", href: "#investment-guide"},
],
},
{
id: "growth-fund-2", title: "Aggressive Growth Fund", subtitle: "3-Year CAGR | Expense Ratio 0.85%", category: "Equity", value: "16.2% CAGR", buttons: [
{
text: "Details", href: "#"},
text: "Details", href: "#investment-guide"},
],
},
{
id: "income-fund", title: "Secure Income Fund", subtitle: "Modified Duration 4.5 | Yield 5.8%", category: "Debt", value: "6.1% YTD", buttons: [
{
text: "Details", href: "#"},
text: "Details", href: "#investment-guide"},
],
},
{
id: "balanced-fund", title: "Balanced Advantage Fund", subtitle: "60/40 Allocation | 5-Year Return", category: "Hybrid", value: "10.8% CAGR", buttons: [
{
text: "Details", href: "#"},
text: "Details", href: "#investment-guide"},
],
},
]}
@@ -153,7 +153,7 @@ export default function HomePage() {
uniformGridCustomHeightClasses="min-h-95"
buttons={[
{
text: "View Complete Performance", href: "/performance"},
text: "View Complete Performance", href: "#metrics"},
]}
buttonAnimation="blur-reveal"
/>
@@ -162,7 +162,7 @@ export default function HomePage() {
<div id="investment-guide" data-section="investment-guide">
<ProductCardThree
title="Investment Requirements & Eligibility"
description="Understand minimum investment amounts, KYC requirements, and eligibility criteria for each fund category."
description="Understand minimum investment amounts, KYC requirements, and eligibility criteria for each fund category. Get started with flexible investment options that suit your needs."
tag="Investment Details"
tagIcon={FileCheck}
tagAnimation="slide-up"
@@ -180,7 +180,7 @@ export default function HomePage() {
useInvertedBackground={false}
buttons={[
{
text: "Start Your KYC", href: "/invest"},
text: "Start Your KYC", href: "#contact"},
]}
buttonAnimation="blur-reveal"
/>
@@ -189,23 +189,23 @@ export default function HomePage() {
<div id="testimonials" data-section="testimonials">
<TestimonialCardTwo
title="Investor Success Stories"
description="Hear from investors who have successfully built wealth through our mutual fund distribution platform."
tag="Reviews"
description="Hear from investors who have successfully built wealth through our mutual fund distribution platform. Real stories from real investors who achieved their financial goals."
tag="Client Testimonials"
tagIcon={Users}
tagAnimation="slide-up"
testimonials={[
{
id: "testimonial-rajesh", name: "Rajesh Kumar", role: "Software Engineer", testimonial:
"FundHub made investing simple and transparent. The performance tracking and expert guidance helped me build a diversified portfolio aligned with my retirement goals.", imageSrc: "http://img.b2bpic.net/free-photo/successful-expert_1098-14503.jpg", imageAlt: "Rajesh Kumar"},
"FundHub made investing simple and transparent. The performance tracking and expert guidance helped me build a diversified portfolio aligned with my retirement goals. I've been investing for 3 years now with consistent returns.", imageSrc: "http://img.b2bpic.net/free-photo/successful-expert_1098-14503.jpg", imageAlt: "Rajesh Kumar investor profile"},
{
id: "testimonial-priya", name: "Priya Sharma", role: "Business Owner", testimonial:
"The detailed fund analytics and ratio comparisons are invaluable. I've been able to make informed decisions about my investments with confidence.", imageSrc: "http://img.b2bpic.net/free-photo/beautiful-corporate-woman-looks-dreamy-smiles-stands-outside-street-leans-her-head-hands_1258-193991.jpg", imageAlt: "Priya Sharma"},
"The detailed fund analytics and ratio comparisons are invaluable. I've been able to make informed decisions about my investments with confidence. The platform's transparency sets it apart from competitors.", imageSrc: "http://img.b2bpic.net/free-photo/beautiful-corporate-woman-looks-dreamy-smiles-stands-outside-street-leans-her-head-hands_1258-193991.jpg", imageAlt: "Priya Sharma business owner testimonial"},
{
id: "testimonial-vikram", name: "Vikram Patel", role: "Finance Manager", testimonial:
"As a finance professional, I appreciate the transparency and professionalism. The platform provides comprehensive data that institutional investors need.", imageSrc: "http://img.b2bpic.net/free-photo/portrait-woman-talking-mobile_23-2148937761.jpg", imageAlt: "Vikram Patel"},
"As a finance professional, I appreciate the transparency and professionalism. The platform provides comprehensive data that institutional investors need. Excellent support team as well.", imageSrc: "http://img.b2bpic.net/free-photo/portrait-woman-talking-mobile_23-2148937761.jpg", imageAlt: "Vikram Patel finance professional"},
{
id: "testimonial-anisha", name: "Anisha Gupta", role: "Young Professional", testimonial:
"Starting my investment journey was intimidating, but FundHub's educational resources and personalized scheme recommendations made it accessible and rewarding.", imageSrc: "http://img.b2bpic.net/free-photo/high-angle-business-man-with-glasses_23-2148446242.jpg", imageAlt: "Anisha Gupta"},
"Starting my investment journey was intimidating, but FundHub's educational resources and personalized scheme recommendations made it accessible and rewarding. Now I'm confident about my financial future.", imageSrc: "http://img.b2bpic.net/free-photo/high-angle-business-man-with-glasses_23-2148446242.jpg", imageAlt: "Anisha Gupta professional investor"},
]}
animationType="slide-up"
textboxLayout="default"
@@ -215,36 +215,36 @@ export default function HomePage() {
<div id="faq" data-section="faq">
<FaqDouble
title="Frequently Asked Questions"
description="Find answers to common questions about mutual fund investing, schemes, and our platform."
tag="Help & Support"
title="Frequently Asked Questions About Mutual Funds"
description="Find comprehensive answers to common questions about mutual fund investing, schemes, and our platform. Learn everything you need to know."
tag="Mutual Fund FAQs"
tagIcon={HelpCircle}
tagAnimation="slide-up"
faqs={[
{
id: "faq-1", title: "What is a mutual fund?", content:
"A mutual fund is a professionally managed investment fund that pools money from multiple investors to purchase a diversified portfolio of securities such as stocks, bonds, and money market instruments. This provides individual investors with professional management and diversification."},
id: "faq-1", title: "What is a mutual fund and how does it work?", content:
"A mutual fund is a professionally managed investment fund that pools money from multiple investors to purchase a diversified portfolio of securities such as stocks, bonds, and money market instruments. This provides individual investors with professional management, diversification, and access to investments they might not be able to make on their own. The fund is managed by experienced portfolio managers who make investment decisions on behalf of all fund holders."},
{
id: "faq-2", title: "What are the minimum investment requirements?", content:
"The minimum investment varies by fund type. SIPs (Systematic Investment Plans) can start from ₹500/month, while lump sum investments typically require a minimum of ₹10,000 for most funds. Some premium funds may have higher minimums. Check individual scheme details for specific requirements."},
id: "faq-2", title: "What are the minimum investment requirements for mutual funds?", content:
"The minimum investment varies by fund type. SIPs (Systematic Investment Plans) can start from ₹500/month, allowing you to build wealth gradually. Lump sum investments typically require a minimum of ₹10,000 for most funds, though some premium or specialized funds may have higher minimums. Some funds also offer lower entry points during special campaigns. Check individual scheme details for specific requirements."},
{
id: "faq-3", title: "How are mutual fund returns calculated?", content:
"Returns are calculated based on the Net Asset Value (NAV) per unit. Your returns depend on the difference between the purchase price and current NAV, plus any distributions. We provide CAGR (Compound Annual Growth Rate) for multi-year returns and YTD (Year-to-Date) returns for current performance."},
"Returns are calculated based on the Net Asset Value (NAV) per unit. Your returns depend on the difference between the purchase price and current NAV, plus any distributions made by the fund. We provide CAGR (Compound Annual Growth Rate) for multi-year returns, which shows your average annual returns, and YTD (Year-to-Date) returns for current performance. Total return includes capital appreciation and income distribution."},
{
id: "faq-4", title: "What is the Sharpe Ratio and why is it important?", content:
"The Sharpe Ratio measures risk-adjusted returns by comparing a fund's excess return to its volatility. A higher Sharpe Ratio indicates better risk-adjusted performance. It helps investors understand how much excess return they receive for taking on additional volatility compared to a risk-free investment."},
id: "faq-4", title: "What is the Sharpe Ratio and why should I care about it?", content:
"The Sharpe Ratio measures risk-adjusted returns by comparing a fund's excess return to its volatility or risk. A higher Sharpe Ratio indicates better risk-adjusted performance. It helps investors understand how much excess return they receive for taking on additional volatility compared to a risk-free investment. It's a key metric to evaluate whether a fund is giving you adequate returns for the risk you're taking."},
{
id: "faq-5", title: "What is an expense ratio?", content:
"The expense ratio is the annual cost of managing a mutual fund, expressed as a percentage of assets under management. It includes management fees, administrative costs, and other operational expenses. Lower expense ratios mean more of your investment returns are retained."},
id: "faq-5", title: "What is an expense ratio and does it matter?", content:
"The expense ratio is the annual cost of managing a mutual fund, expressed as a percentage of assets under management. It includes management fees, administrative costs, and other operational expenses. Lower expense ratios mean more of your investment returns are retained by you rather than paid to the fund manager. Even small differences in expense ratios can significantly impact your returns over time due to compound effect."},
{
id: "faq-6", title: "How do I start investing?", content:
"To start investing, complete the KYC (Know Your Customer) verification process, which takes 5-10 minutes. You'll need to provide basic identity and address information. Once verified, you can choose from our fund schemes and begin investing through SIP or lump sum options."},
id: "faq-6", title: "How do I start investing in mutual funds with FundHub?", content:
"To start investing, complete the KYC (Know Your Customer) verification process, which takes just 5-10 minutes. You'll need to provide basic identity and address information, which is a regulatory requirement. Once verified, you can choose from our fund schemes and begin investing through SIP (Systematic Investment Plan) for regular investing, or lump sum options for one-time investments. Our team provides guidance throughout the process."},
{
id: "faq-7", title: "What are equity funds best for?", content:
"Equity funds are best for long-term wealth creation (5+ years) as they provide higher growth potential. They are ideal for investors with higher risk tolerance seeking capital appreciation. They work well for retirement planning, education funds, and other long-term financial goals."},
id: "faq-7", title: "When should I invest in equity funds?", content:
"Equity funds are best for long-term wealth creation with investment horizons of 5 years or more. They provide higher growth potential but with higher volatility. They are ideal for investors with higher risk tolerance seeking capital appreciation. Equity funds work well for retirement planning, education funds, and other long-term financial goals where you can weather market fluctuations and benefit from compounding."},
{
id: "faq-8", title: "When should I invest in debt funds?", content:
"Debt funds are suitable for conservative investors seeking steady income and capital preservation. They're ideal for shorter investment horizons (1-3 years), emergency funds, and as a balanced portion of a diversified portfolio. They provide lower risk but also lower returns compared to equity funds."},
id: "faq-8", title: "When should I consider debt funds?", content:
"Debt funds are suitable for conservative investors seeking steady income and capital preservation. They're ideal for shorter investment horizons (1-3 years), emergency funds, and as a balanced portion of a diversified portfolio. Debt funds provide lower risk and more stable returns compared to equity funds, making them suitable for investors nearing retirement or those with lower risk tolerance who still want returns above savings account rates."},
]}
animationType="smooth"
textboxLayout="default"
@@ -257,14 +257,14 @@ export default function HomePage() {
<ContactCenter
tag="Ready to Invest?"
title="Start Your Investment Journey Today"
description="Join thousands of investors who are building wealth with FundHub. Get personalized guidance and begin your mutual fund investment with confidence."
description="Join thousands of investors who are building wealth with FundHub. Get personalized guidance and begin your mutual fund investment with confidence. Sign up now to access exclusive fund recommendations and market insights."
tagIcon={Rocket}
tagAnimation="slide-up"
background={{ variant: "radial-gradient" }}
useInvertedBackground={false}
inputPlaceholder="Enter your email address"
buttonText="Get Started Free"
termsText="By signing up, you agree to our Terms of Service and Privacy Policy. We'll send you updates about fund performance and investment opportunities."
termsText="By signing up, you agree to our Terms of Service and Privacy Policy. We'll send you updates about fund performance and investment opportunities. Unsubscribe anytime."
/>
</div>
@@ -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() {
</div>
</ThemeProvider>
);
}
}

View File

@@ -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);
}

View File

@@ -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[];
}