Browse Source

Extend content

pull/2135/head
Thomas 2 years ago
parent
commit
a17928f1f9
  1. 9
      apps/client/src/app/app.component.html
  2. 103
      apps/client/src/app/pages/personal-finance-tools/page-template.html
  3. 17
      apps/client/src/app/pages/personal-finance-tools/page-template.scss
  4. 4
      apps/client/src/app/pages/personal-finance-tools/personal-finance-tools-page.html
  5. 9
      apps/client/src/app/pages/personal-finance-tools/products.ts
  6. 1
      apps/client/src/app/pages/personal-finance-tools/products/altoo-page.component.ts
  7. 1
      apps/client/src/app/pages/personal-finance-tools/products/getquin-page.component.ts
  8. 1
      apps/client/src/app/pages/personal-finance-tools/products/kubera-page.component.ts
  9. 1
      apps/client/src/app/pages/personal-finance-tools/products/maybe-finance-page.component.ts
  10. 1
      apps/client/src/app/pages/personal-finance-tools/products/parqet-page.component.ts
  11. 1
      apps/client/src/app/pages/personal-finance-tools/products/simple-portfolio-page.component.ts
  12. 1
      apps/client/src/app/pages/personal-finance-tools/products/utluna-page.component.ts
  13. 1
      apps/client/src/app/pages/personal-finance-tools/products/yeekatee-page.component.ts
  14. 1
      libs/common/src/lib/interfaces/product.ts

9
apps/client/src/app/app.component.html

@ -70,7 +70,14 @@
<li *ngIf="hasPermissionToAccessFearAndGreedIndex">
<a i18n [routerLink]="['/markets']">Markets</a>
</li>
<li><a i18n [routerLink]="['/personal-finance-tools']">Tools</a></li>
<li>
<a
i18n
title="Personal Finance Tools"
[routerLink]="['/personal-finance-tools']"
>Tools</a
>
</li>
<li><a i18n [routerLink]="['/resources']">Resources</a></li>
</ul>
</div>

103
apps/client/src/app/pages/personal-finance-tools/page-template.html

@ -11,7 +11,26 @@
<section class="mb-4">
<p>
Are you looking for an open source alternative to {{ product2.name
}}? Compare Ghostfolio to {{ product2.name }} using the table below.
}}? <a [routerLink]="['/about']">Ghostfolio</a> is a powerful
portfolio management tool that provides individuals with a
comprehensive platform to track, analyze, and optimize their
investments. Whether you are an experienced investor or just
starting out, Ghostfolio offers an intuitive user interface and a
<a [routerLink]="['/features']">wide range of functionalities</a>
to help you make informed decisions and take control of your
financial future.
</p>
<p>
Ghostfolio is open source software (OSS) where a community of
developers, contributors, and enthusiasts collaborate to enhance its
capabilities, security, and user experience.
</p>
<p>
Let’s dive deeper into the detailed comparison table below to gain a
comprehensive understanding of how Ghostfolio compares to {{
product2.name }}. We will explore various aspects such as features,
data privacy, pricing, and more, allowing you to make a
well-informed choice for your needs.
</p>
</section>
<section class="mb-4">
@ -72,6 +91,27 @@
>
</td>
</tr>
<tr class="mat-mdc-row">
<td class="mat-mdc-cell px-3 py-2 text-right" i18n>
Self-Hosting
</td>
<td class="mat-mdc-cell px-1 py-2">
<ng-container *ngIf="product1.hasSelfHostingAbility === true"
>✅</ng-container
><ng-container
*ngIf="product1.hasSelfHostingAbility === false"
>❌</ng-container
>
</td>
<td class="mat-mdc-cell px-1 py-2">
<ng-container *ngIf="product2.hasSelfHostingAbility === true"
>✅</ng-container
><ng-container
*ngIf="product2.hasSelfHostingAbility === false"
>❌</ng-container
>
</td>
</tr>
<tr class="mat-mdc-row">
<td class="mat-mdc-cell px-3 py-2 text-right" i18n>
Free Plan
@ -113,11 +153,12 @@
</section>
<section class="mb-4 py-3">
<h2 class="h4 mb-0 text-center">
Would you like to <strong>refine</strong> your
<strong>personal investment strategy</strong>?
Ready to take your <strong>investments</strong> to the
<strong>next level</strong>?
</h2>
<p class="lead mb-2 text-center" i18n>
Ghostfolio empowers you to keep track of your wealth.
Effortlessly track, analyze, and visualize your wealth with
Ghostfolio.
</p>
<div class="text-center">
<a color="primary" href="https://ghostfol.io" mat-flat-button>
@ -125,29 +166,74 @@
</a>
</div>
</section>
<section class="mb-4">
<small>
Please note that the information provided is based on our
independent research and analysis. This website is not affiliated
with {{ product2.name }} or any other product mentioned in the
comparison. As the landscape of personal finance tools evolves, it
is essential to verify any specific details or changes directly from
the respective product page. Data needs a refresh? Help us maintain
accurate data on
<a href="https://github.com/ghostfolio/ghostfolio">GitHub</a>.
</small>
</section>
<section class="mb-4">
<ul class="list-inline">
<li class="list-inline-item">
<span class="badge badge-light">{{ product1.name }}</span>
</li>
<li class="list-inline-item">
<span class="badge badge-light">{{ product2.name }}</span>
</li>
<li class="list-inline-item">
<span class="badge badge-light">Alternative</span>
</li>
<li class="list-inline-item">
<span class="badge badge-light">App</span>
</li>
<li class="list-inline-item">
<span class="badge badge-light">{{ product1.name }}</span>
<span class="badge badge-light">Community</span>
</li>
<li class="list-inline-item">
<span class="badge badge-light">{{ product2.name }}</span>
<span class="badge badge-light">Fintech</span>
</li>
<li class="list-inline-item">
<span class="badge badge-light">Investment</span>
</li>
<li class="list-inline-item">
<span class="badge badge-light">Investor</span>
</li>
<li class="list-inline-item">
<span class="badge badge-light">Open Source</span>
</li>
<li class="list-inline-item">
<span class="badge badge-light">OSS</span>
</li>
<li class="list-inline-item">
<span class="badge badge-light">Personal Finance</span>
</li>
<li class="list-inline-item">
<span class="badge badge-light">Privacy</span>
</li>
<li class="list-inline-item">
<span class="badge badge-light">Portfolio</span>
</li>
<li class="list-inline-item">
<span class="badge badge-light">Software</span>
</li>
<li class="list-inline-item">
<span class="badge badge-light">Tool</span>
</li>
<li class="list-inline-item">
<span class="badge badge-light">User Experience</span>
</li>
<li class="list-inline-item">
<span class="badge badge-light">Wealth</span>
</li>
<li class="list-inline-item">
<span class="badge badge-light">Wealth Management</span>
</li>
</ul>
</section>
<nav aria-label="breadcrumb">
@ -165,11 +251,6 @@
</li>
</ol>
</nav>
<section class="m-4 text-center">
<small class="text-muted"
>This website is not affiliated with {{ product2.name }}.</small
>
</section>
</article>
</div>
</div>

17
apps/client/src/app/pages/personal-finance-tools/page-template.scss

@ -0,0 +1,17 @@
:host {
color: rgb(var(--dark-primary-text));
display: block;
a {
color: rgba(var(--palette-primary-500), 1);
font-weight: 500;
&:hover {
color: rgba(var(--palette-primary-300), 1);
}
}
}
:host-context(.is-dark-theme) {
color: rgb(var(--light-primary-text));
}

4
apps/client/src/app/pages/personal-finance-tools/personal-finance-tools-page.html

@ -14,12 +14,12 @@
<div class="flex-nowrap no-gutters row">
<a
class="d-flex overflow-hidden w-100"
title="Compare Ghostfolio to {{ product.name }}"
[routerLink]="['/personal-finance-tools', 'open-source-alternative-to-' + product.key]"
>
<div class="flex-grow-1 overflow-hidden">
<div class="h6 m-0 text-truncate">
Ghostfolio: The open source alternative to {{ product.name
}}
Open Source Alternative to {{ product.name }}
</div>
</div>
<div class="align-items-center d-flex">

9
apps/client/src/app/pages/personal-finance-tools/products.ts

@ -14,6 +14,7 @@ export const products: Product[] = [
component: undefined,
founded: 2021,
hasFreePlan: true,
hasSelfHostingAbility: true,
isOpenSource: true,
key: 'ghostfolio',
languages:
@ -27,6 +28,7 @@ export const products: Product[] = [
{
component: AltooPageComponent,
founded: 2017,
hasSelfHostingAbility: false,
isOpenSource: false,
key: 'altoo',
name: 'Altoo-Wealth-Plattform',
@ -37,6 +39,7 @@ export const products: Product[] = [
component: GetquinPageComponent,
founded: 2020,
hasFreePlan: true,
hasSelfHostingAbility: false,
isOpenSource: false,
languages: 'English, German',
key: 'getquin',
@ -49,6 +52,7 @@ export const products: Product[] = [
component: KuberaPageComponent,
founded: 2019,
hasFreePlan: false,
hasSelfHostingAbility: false,
isOpenSource: false,
key: 'kubera',
name: 'Kubera®',
@ -59,6 +63,7 @@ export const products: Product[] = [
{
component: MaybeFinancePageComponent,
founded: 2021,
hasSelfHostingAbility: false,
isOpenSource: false,
key: 'maybe-finance',
languages: 'English',
@ -72,6 +77,7 @@ export const products: Product[] = [
{
component: ParqetPageComponent,
founded: 2020,
hasSelfHostingAbility: false,
hasFreePlan: true,
isOpenSource: false,
key: 'parqet',
@ -85,6 +91,7 @@ export const products: Product[] = [
{
component: SimplePortfolioPageComponent,
hasFreePlan: true,
hasSelfHostingAbility: false,
isOpenSource: false,
key: 'simple-portfolio',
name: 'Simple Portfolio',
@ -95,6 +102,7 @@ export const products: Product[] = [
{
component: UtlunaPageComponent,
hasFreePlan: true,
hasSelfHostingAbility: false,
isOpenSource: false,
key: 'utluna',
languages: 'English, French, German',
@ -106,6 +114,7 @@ export const products: Product[] = [
{
component: YeekateePageComponent,
founded: 2021,
hasSelfHostingAbility: false,
isOpenSource: false,
key: 'yeekatee',
name: 'yeekatee',

1
apps/client/src/app/pages/personal-finance-tools/products/altoo-page.component.ts

@ -10,6 +10,7 @@ import { products } from '../products';
imports: [CommonModule, MatButtonModule, RouterModule],
selector: 'gf-altoo-page',
standalone: true,
styleUrls: ['../page-template.scss'],
templateUrl: '../page-template.html'
})
export class AltooPageComponent {

1
apps/client/src/app/pages/personal-finance-tools/products/getquin-page.component.ts

@ -10,6 +10,7 @@ import { products } from '../products';
imports: [CommonModule, MatButtonModule, RouterModule],
selector: 'gf-getquin-page',
standalone: true,
styleUrls: ['../page-template.scss'],
templateUrl: '../page-template.html'
})
export class GetquinPageComponent {

1
apps/client/src/app/pages/personal-finance-tools/products/kubera-page.component.ts

@ -10,6 +10,7 @@ import { products } from '../products';
imports: [CommonModule, MatButtonModule, RouterModule],
selector: 'gf-kubera-page',
standalone: true,
styleUrls: ['../page-template.scss'],
templateUrl: '../page-template.html'
})
export class KuberaPageComponent {

1
apps/client/src/app/pages/personal-finance-tools/products/maybe-finance-page.component.ts

@ -10,6 +10,7 @@ import { products } from '../products';
imports: [CommonModule, MatButtonModule, RouterModule],
selector: 'gf-maybe-finance-page',
standalone: true,
styleUrls: ['../page-template.scss'],
templateUrl: '../page-template.html'
})
export class MaybeFinancePageComponent {

1
apps/client/src/app/pages/personal-finance-tools/products/parqet-page.component.ts

@ -10,6 +10,7 @@ import { products } from '../products';
imports: [CommonModule, MatButtonModule, RouterModule],
selector: 'gf-parqet-page',
standalone: true,
styleUrls: ['../page-template.scss'],
templateUrl: '../page-template.html'
})
export class ParqetPageComponent {

1
apps/client/src/app/pages/personal-finance-tools/products/simple-portfolio-page.component.ts

@ -10,6 +10,7 @@ import { products } from '../products';
imports: [CommonModule, MatButtonModule, RouterModule],
selector: 'gf-simple-portfolio-page',
standalone: true,
styleUrls: ['../page-template.scss'],
templateUrl: '../page-template.html'
})
export class SimplePortfolioPageComponent {

1
apps/client/src/app/pages/personal-finance-tools/products/utluna-page.component.ts

@ -10,6 +10,7 @@ import { products } from '../products';
imports: [CommonModule, MatButtonModule, RouterModule],
selector: 'gf-utluna-page',
standalone: true,
styleUrls: ['../page-template.scss'],
templateUrl: '../page-template.html'
})
export class UtlunaPageComponent {

1
apps/client/src/app/pages/personal-finance-tools/products/yeekatee-page.component.ts

@ -10,6 +10,7 @@ import { products } from '../products';
imports: [CommonModule, MatButtonModule, RouterModule],
selector: 'gf-yeekatee-page',
standalone: true,
styleUrls: ['../page-template.scss'],
templateUrl: '../page-template.html'
})
export class YeekateePageComponent {

1
libs/common/src/lib/interfaces/product.ts

@ -2,6 +2,7 @@ export interface Product {
component: any;
founded?: number;
hasFreePlan?: boolean;
hasSelfHostingAbility?: boolean;
isOpenSource: boolean;
key: string;
languages?: string;

Loading…
Cancel
Save