From 904d4eb6a245a321f5f985da0129efcd36543e83 Mon Sep 17 00:00:00 2001
From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com>
Date: Tue, 4 Jun 2024 20:36:18 +0200
Subject: [PATCH] Add Koyfin
---
apps/api/src/assets/sitemap.xml | 16 ++++++++++
.../personal-finance-tools/products.ts | 12 +++++++
.../products/koyfin-page.component.ts | 32 +++++++++++++++++++
3 files changed, 60 insertions(+)
create mode 100644 apps/client/src/app/pages/resources/personal-finance-tools/products/koyfin-page.component.ts
diff --git a/apps/api/src/assets/sitemap.xml b/apps/api/src/assets/sitemap.xml
index f02c80fc7..ce2326efb 100644
--- a/apps/api/src/assets/sitemap.xml
+++ b/apps/api/src/assets/sitemap.xml
@@ -146,6 +146,10 @@
https://ghostfol.io/de/ressourcen/personal-finance-tools/open-source-alternative-zu-justetf
${currentDate}T00:00:00+00:00
+
+ https://ghostfol.io/de/ressourcen/personal-finance-tools/open-source-alternative-zu-koyfin
+ ${currentDate}T00:00:00+00:00
+
https://ghostfol.io/de/ressourcen/personal-finance-tools/open-source-alternative-zu-kubera
${currentDate}T00:00:00+00:00
@@ -512,6 +516,10 @@
https://ghostfol.io/en/resources/personal-finance-tools/open-source-alternative-to-justetf
${currentDate}T00:00:00+00:00
+
+ https://ghostfol.io/en/resources/personal-finance-tools/open-source-alternative-to-koyfin
+ ${currentDate}T00:00:00+00:00
+
https://ghostfol.io/en/resources/personal-finance-tools/open-source-alternative-to-kubera
${currentDate}T00:00:00+00:00
@@ -890,6 +898,10 @@
https://ghostfol.io/it/risorse/personal-finance-tools/alternativa-open-source-a-justetf
${currentDate}T00:00:00+00:00
+
+ https://ghostfol.io/it/risorse/personal-finance-tools/alternativa-open-source-a-koyfin
+ ${currentDate}T00:00:00+00:00
+
https://ghostfol.io/it/risorse/personal-finance-tools/alternativa-open-source-a-kubera
${currentDate}T00:00:00+00:00
@@ -1114,6 +1126,10 @@
https://ghostfol.io/nl/bronnen/personal-finance-tools/open-source-alternatief-voor-justetf
${currentDate}T00:00:00+00:00
+
+ https://ghostfol.io/nl/bronnen/personal-finance-tools/open-source-alternatief-voor-koyfin
+ ${currentDate}T00:00:00+00:00
+
https://ghostfol.io/nl/bronnen/personal-finance-tools/open-source-alternatief-voor-kubera
${currentDate}T00:00:00+00:00
diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products.ts
index c681ac93c..cad47bc90 100644
--- a/apps/client/src/app/pages/resources/personal-finance-tools/products.ts
+++ b/apps/client/src/app/pages/resources/personal-finance-tools/products.ts
@@ -23,6 +23,7 @@ import { GetquinPageComponent } from './products/getquin-page.component';
import { GoSpatzPageComponent } from './products/gospatz-page.component';
import { IntuitMintPageComponent } from './products/intuit-mint-page.component';
import { JustEtfPageComponent } from './products/justetf-page.component';
+import { KoyfinPageComponent } from './products/koyfin-page.component';
import { KuberaPageComponent } from './products/kubera-page.component';
import { MagnifiPageComponent } from './products/magnifi-page.component';
import { MarketsShPageComponent } from './products/markets.sh-page.component';
@@ -311,6 +312,17 @@ export const products: Product[] = [
pricingPerYear: '€119',
slogan: 'ETF portfolios made simple'
},
+ {
+ component: KoyfinPageComponent,
+ founded: 2016,
+ hasFreePlan: true,
+ hasSelfHostingAbility: false,
+ key: 'koyfin',
+ name: 'Koyfin',
+ origin: $localize`United States`,
+ pricingPerYear: '$468',
+ slogan: 'Comprehensive financial data analysis'
+ },
{
component: KuberaPageComponent,
founded: 2019,
diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/koyfin-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/koyfin-page.component.ts
new file mode 100644
index 000000000..b88496b8e
--- /dev/null
+++ b/apps/client/src/app/pages/resources/personal-finance-tools/products/koyfin-page.component.ts
@@ -0,0 +1,32 @@
+import { CommonModule } from '@angular/common';
+import { Component } from '@angular/core';
+import { MatButtonModule } from '@angular/material/button';
+import { RouterModule } from '@angular/router';
+
+import { products } from '../products';
+import { BaseProductPageComponent } from './base-page.component';
+
+@Component({
+ host: { class: 'page' },
+ imports: [CommonModule, MatButtonModule, RouterModule],
+ selector: 'gf-koyfin-page',
+ standalone: true,
+ styleUrls: ['../product-page-template.scss'],
+ templateUrl: '../product-page-template.html'
+})
+export class KoyfinPageComponent extends BaseProductPageComponent {
+ public product1 = products.find(({ key }) => {
+ return key === 'ghostfolio';
+ });
+
+ public product2 = products.find(({ key }) => {
+ return key === 'koyfin';
+ });
+
+ public routerLinkAbout = ['/' + $localize`about`];
+ public routerLinkFeatures = ['/' + $localize`features`];
+ public routerLinkResourcesPersonalFinanceTools = [
+ '/' + $localize`resources`,
+ 'personal-finance-tools'
+ ];
+}