From 49e2862e03dc880ce220321ca125a2d0b586b3f6 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Thu, 14 Jul 2022 16:16:07 +0200 Subject: [PATCH] Feature/add blog post about personal finances (#1073) * Add blog post * Update changelog --- CHANGELOG.md | 4 + apps/client/src/app/app-routing.module.ts | 7 + .../hallo-ghostfolio-page.html | 2 +- .../hello-ghostfolio-page.html | 2 +- .../first-months-in-open-source-page.html | 2 +- ...y-finances-in-order-page-routing.module.ts | 19 ++ ...get-my-finances-in-order-page.component.ts | 9 + ...ow-do-i-get-my-finances-in-order-page.html | 206 ++++++++++++++++++ ...-i-get-my-finances-in-order-page.module.ts | 17 ++ ...ow-do-i-get-my-finances-in-order-page.scss | 3 + apps/client/src/app/pages/blog/blog-page.html | 44 +++- apps/client/src/assets/sitemap.xml | 30 +-- 12 files changed, 326 insertions(+), 19 deletions(-) create mode 100644 apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page-routing.module.ts create mode 100644 apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.component.ts create mode 100644 apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.html create mode 100644 apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.module.ts create mode 100644 apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.scss diff --git a/CHANGELOG.md b/CHANGELOG.md index ed72106ec..cf589fee3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased +### Added + +- Added a blog post + ### Changed - Upgraded `date-fns` from version `2.22.1` to `2.28.0` diff --git a/apps/client/src/app/app-routing.module.ts b/apps/client/src/app/app-routing.module.ts index be8aa7b91..ceeb44b54 100644 --- a/apps/client/src/app/app-routing.module.ts +++ b/apps/client/src/app/app-routing.module.ts @@ -78,6 +78,13 @@ const routes: Routes = [ './pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.module' ).then((m) => m.FirstMonthsInOpenSourcePageModule) }, + { + path: 'en/blog/2022/07/how-do-i-get-my-finances-in-order', + loadChildren: () => + import( + './pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.module' + ).then((m) => m.HowDoIGetMyFinancesInOrderPageModule) + }, { path: 'features', loadChildren: () => diff --git a/apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.html b/apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.html index 9e0aadf22..f2239ccd3 100644 --- a/apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.html +++ b/apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.html @@ -3,7 +3,7 @@
-

Hallo Ghostfolio 👋

+

Hallo Ghostfolio 👋

31.07.2021
diff --git a/apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.html b/apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.html index c7260bd23..684a53246 100644 --- a/apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.html +++ b/apps/client/src/app/pages/blog/2021/07/hello-ghostfolio/hello-ghostfolio-page.html @@ -3,7 +3,7 @@
-

Hello Ghostfolio 👋

+

Hello Ghostfolio 👋

31.07.2021
diff --git a/apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.html b/apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.html index 71ea7489f..36863b9fa 100644 --- a/apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.html +++ b/apps/client/src/app/pages/blog/2022/01/first-months-in-open-source/first-months-in-open-source-page.html @@ -3,7 +3,7 @@
-

+

👻 Ghostfolio – First months in Open Source

diff --git a/apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page-routing.module.ts b/apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page-routing.module.ts new file mode 100644 index 000000000..19be1e495 --- /dev/null +++ b/apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page-routing.module.ts @@ -0,0 +1,19 @@ +import { NgModule } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; +import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; + +import { HowDoIGetMyFinancesInOrderPageComponent } from './how-do-i-get-my-finances-in-order-page.component'; + +const routes: Routes = [ + { + path: '', + component: HowDoIGetMyFinancesInOrderPageComponent, + canActivate: [AuthGuard] + } +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class HowDoIGetMyFinancesInOrderRoutingModule {} diff --git a/apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.component.ts b/apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.component.ts new file mode 100644 index 000000000..12bd168e6 --- /dev/null +++ b/apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.component.ts @@ -0,0 +1,9 @@ +import { Component } from '@angular/core'; + +@Component({ + host: { class: 'page' }, + selector: 'gf-how-do-i-get-my-finances-in-order-page', + styleUrls: ['./how-do-i-get-my-finances-in-order-page.scss'], + templateUrl: './how-do-i-get-my-finances-in-order-page.html' +}) +export class HowDoIGetMyFinancesInOrderPageComponent {} diff --git a/apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.html b/apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.html new file mode 100644 index 000000000..5a38fe182 --- /dev/null +++ b/apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.html @@ -0,0 +1,206 @@ +
+
+
+
+
+

How do I get my finances in order?

+
14.07.2022
+
+
+

+ Before you can think of + long-term investing, you need + to have your finances in order. Take a look at Peter's journey to + see how you can achieve it, too. +

+

+ Peter enjoys life, but sometimes he overspends a bit. He realizes it + when money runs out already in the middle of the month. Then the + next few days become difficult and saving money is out of the + question. That is why he wants to plan his monthly budget in the + future. +

+

+ Peter has a decent salary in his job. But as soon as the salary + arrives in his account, it melts away. In order to find out where + his money is disappearing, he has decided to plan his monthly + budget. He wants to be able to put money aside for major expenses + and set financial goals. +

+
+
+

Keeping a traditional or digital budget book

+

+ First, Peter obtains an overview of his personal finances. To do so, + he starts keeping a budget book. This can be done on paper by + listing his income and expenses for a few months, or he can create a + simple spreadsheet in Excel. In addition, many credit card providers + offer the feature within their apps of having expenses automatically + analyzed according to different categories. According to the + Swiss Federal Statistical Office, households in Switzerland spend around 20 percent of their + disposable income on housing and around 10 percent on groceries. +

+

+ With the smartphone app, Peter has a better overview of his + financial affairs. The application assigns the bookings to + individual categories. Peter can assign specific budgets to each of + them. This way, he is always informed about how much money he can + still spend on restaurant visits in the current month, for example. + A traditional method is the so-called + envelope method. One envelope is labeled for each category like groceries, rent or + student loans. The monthly budget is put into the envelopes in cash. + Many apps offer the same budgeting system in a more convenient, + virtual way. +

+
+
+

Planning and investing

+

+ If Peter has spent less money than planned on eating out at + restaurants, he can set aside the remaining amount. This way, he can + treat himself to something special every now and then. From now on, + he saves a fixed amount of money in a separate account ("pay + yourself first") by standing order at the beginning of the month. As + soon as there are three net monthly salaries in the account, he + invests the monthly savings amount in a passively managed global + equity fund. This grows his assets over the years and allows him to + supplement his pension later. +

+
+
+

How to achieve your financial goals?

+

+ If you follow these five actionable tips, you can reach your + financial goals easier and faster. Start with one tip and when you + implement it well, you can try the next one to ultimately have more + money at the end of the month. +

+

1. Visualize your goals

+

+ Start visualizing your goals. For example, hang up pictures of the + travel destination you are saving for. Imagine that you have already + achieved the goal to slowly adapt your mindset. +

+

2. Write off personal items

+

+ Do as a business does and write off purchases annually. For a new + car, you could set aside one-sixth of the purchase price each year. +

+

3. Save at the beginning of the month

+

+ Have a savings amount deducted from your account at the beginning of + the month. Then you will pay yourself first and spend less money. +

+

4. Follow the 50-30-20 rule

+

+ You need 50 percent of your disposable income for fixed costs. 30 + percent can be spent on personal needs such as hobbies, travel or + consumer electronics. 20 percent is left for savings or to pay off + potential debts. +

+

5. Track your progress

+

+ If you have any money to spare, invest it in a broadly diversified, + low-cost portfolio excluding the risks of individual stocks. Track + the progress of your portfolio and net worth with + Ghostfolio, a web-based personal + finance management software. +

+
+
+
    +
  • + App +
  • +
  • + Assets +
  • +
  • + Budget +
  • +
  • + Cash +
  • +
  • + Debt +
  • +
  • + Equity +
  • +
  • + ETF +
  • +
  • + Expense +
  • +
  • + Finance +
  • +
  • + Fintech +
  • +
  • + Fund +
  • +
  • + Ghostfolio +
  • +
  • + Goal +
  • +
  • + Income +
  • +
  • + Investment +
  • +
  • + Money +
  • +
  • + Net Worth +
  • +
  • + Pension +
  • +
  • + Personal Finance +
  • +
  • + Planning +
  • +
  • + Portfolio +
  • +
  • + Salary +
  • +
  • + Saving +
  • +
  • + Software +
  • +
  • + Spreadsheet +
  • +
  • + Stock +
  • +
  • + Strategy +
  • +
  • + Wealth Management +
  • +
+
+
+
+
+
diff --git a/apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.module.ts b/apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.module.ts new file mode 100644 index 000000000..9e0b9a4b9 --- /dev/null +++ b/apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.module.ts @@ -0,0 +1,17 @@ +import { CommonModule } from '@angular/common'; +import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; +import { RouterModule } from '@angular/router'; + +import { HowDoIGetMyFinancesInOrderRoutingModule } from './how-do-i-get-my-finances-in-order-page-routing.module'; +import { HowDoIGetMyFinancesInOrderPageComponent } from './how-do-i-get-my-finances-in-order-page.component'; + +@NgModule({ + declarations: [HowDoIGetMyFinancesInOrderPageComponent], + imports: [ + CommonModule, + HowDoIGetMyFinancesInOrderRoutingModule, + RouterModule + ], + schemas: [CUSTOM_ELEMENTS_SCHEMA] +}) +export class HowDoIGetMyFinancesInOrderPageModule {} diff --git a/apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.scss b/apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.scss new file mode 100644 index 000000000..5d4e87f30 --- /dev/null +++ b/apps/client/src/app/pages/blog/2022/07/how-do-i-get-my-finances-in-order/how-do-i-get-my-finances-in-order-page.scss @@ -0,0 +1,3 @@ +:host { + display: block; +} diff --git a/apps/client/src/app/pages/blog/blog-page.html b/apps/client/src/app/pages/blog/blog-page.html index 0885249fb..17153fd52 100644 --- a/apps/client/src/app/pages/blog/blog-page.html +++ b/apps/client/src/app/pages/blog/blog-page.html @@ -2,10 +2,36 @@