diff --git a/apps/client/src/app/pages/alternatives/alternatives-page-routing.module.ts b/apps/client/src/app/pages/alternatives/alternatives-page-routing.module.ts index 767e39c1e..c65218be3 100644 --- a/apps/client/src/app/pages/alternatives/alternatives-page-routing.module.ts +++ b/apps/client/src/app/pages/alternatives/alternatives-page-routing.module.ts @@ -19,7 +19,7 @@ const routes: Routes = [ .map(({ component, key, name }) => { return { canActivate: [AuthGuard], - path: key, + path: `open-source-alternative-to-${key}`, loadComponent: () => import(`./products/${key}-page.component`).then(() => component), title: `Open Source Alternative to ${name}` diff --git a/apps/client/src/app/pages/alternatives/alternatives-page.html b/apps/client/src/app/pages/alternatives/alternatives-page.html index 7a8fd2d79..96162ccfd 100644 --- a/apps/client/src/app/pages/alternatives/alternatives-page.html +++ b/apps/client/src/app/pages/alternatives/alternatives-page.html @@ -1,7 +1,9 @@
-

Alternatives

+

+ Open Source Alternatives to various Personal Finance Tools +

diff --git a/apps/client/src/app/pages/alternatives/page-template.html b/apps/client/src/app/pages/alternatives/page-template.html index 2084d2ab0..b30c97310 100644 --- a/apps/client/src/app/pages/alternatives/page-template.html +++ b/apps/client/src/app/pages/alternatives/page-template.html @@ -88,8 +88,18 @@ Pricing - {{ product1.pricing }} - {{ product2.pricing }} + + Starting from {{ product1.pricingPerYear }} / + year + + + Starting from {{ product2.pricingPerYear }} / + year + Notes diff --git a/apps/client/src/app/pages/alternatives/products.ts b/apps/client/src/app/pages/alternatives/products.ts index 92edc348a..619482142 100644 --- a/apps/client/src/app/pages/alternatives/products.ts +++ b/apps/client/src/app/pages/alternatives/products.ts @@ -1,4 +1,5 @@ import { Product } from '@ghostfolio/common/interfaces'; +import { KuberaPageComponent } from './products/kubera-page.component'; import { MaybePageComponent } from './products/maybe-page.component'; import { ParqetPageComponent } from './products/parqet-page.component'; import { YeekateePageComponent } from './products/yeekatee-page.component'; @@ -14,10 +15,20 @@ export const products: Product[] = [ 'English, Dutch, French, German, Italian, Portuguese and Spanish', name: 'Ghostfolio', origin: 'Switzerland', - pricing: 'Starting from $19 / year', + pricingPerYear: '$19', region: 'Global', slogan: 'Open Source Wealth Management' }, + { + component: KuberaPageComponent, + hasFreePlan: false, + isOpenSource: false, + key: 'kubera', + name: 'Kubera®', + origin: 'USA', + pricingPerYear: '$150', + slogan: 'The Time Machine for your Net Worth' + }, { component: MaybePageComponent, founded: 2021, @@ -27,7 +38,7 @@ export const products: Product[] = [ name: 'Maybe Finance', note: 'Sunset in 2023', origin: 'USA', - pricing: 'Starting from $145 / year', + pricingPerYear: '$145', region: 'USA', slogan: 'Your financial future, in your control' }, @@ -39,7 +50,7 @@ export const products: Product[] = [ key: 'parqet', name: 'Parqet', origin: 'Germany', - pricing: 'Starting from €88 / year', + pricingPerYear: '€88', region: 'Austria, Germany, Switzerland', slogan: 'Dein Vermögen immer im Blick' }, diff --git a/apps/client/src/app/pages/alternatives/products/kubera-page.component.ts b/apps/client/src/app/pages/alternatives/products/kubera-page.component.ts new file mode 100644 index 000000000..b0f38619d --- /dev/null +++ b/apps/client/src/app/pages/alternatives/products/kubera-page.component.ts @@ -0,0 +1,23 @@ +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'; + +@Component({ + host: { class: 'page' }, + imports: [CommonModule, MatButtonModule, RouterModule], + selector: 'gf-kubera-page', + standalone: true, + templateUrl: '../page-template.html' +}) +export class KuberaPageComponent { + public product1 = products.find(({ key }) => { + return key === 'ghostfolio'; + }); + + public product2 = products.find(({ key }) => { + return key === 'kubera'; + }); +} diff --git a/libs/common/src/lib/interfaces/product.ts b/libs/common/src/lib/interfaces/product.ts index 60895332e..2792d6c82 100644 --- a/libs/common/src/lib/interfaces/product.ts +++ b/libs/common/src/lib/interfaces/product.ts @@ -8,7 +8,7 @@ export interface Product { name: string; note?: string; origin?: string; - pricing?: string; + pricingPerYear?: string; region?: string; slogan?: string; }