All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Fixed an issue with the missing conversion of countries in the symbol profile overrides
- Skipped data enhancer (Trackinsight) if data is inaccurate
- Fixed an issue with the currency conversion in the account calculations
- Fixed an issue with countries in the symbol profile overrides
- Added groups to the activities filter component
- Added support for filtering by asset class on the allocations page
- Supported enter key press to submit the form of the create or edit transaction dialog
- Added a Report Data Glitch button to the position detail dialog
- Fixed the date format of the date picker and support manual changes
- Fixed the state of the account delete button (disable if account contains activities)
- Fixed an issue in the activities filter component (typing a search term)
- Improved the allocations page with no filtering (include cash positions)
- Set up a queue for the data gathering jobs
- Set up Nx Cloud
- Migrated the asset profile data gathering to the queue design pattern
- Improved the allocations page with no filtering
- Harmonized the No data available label in the portfolio proportion chart component
- Improved the FIRE calculator for the Live Demo
- Simplified the about page
- Upgraded
angular
from version13.2.2
to13.3.6
- Upgraded
Nx
from version13.8.5
to14.1.4
- Upgraded
storybook
from version6.4.18
to6.4.22
- Eliminated the circular dependencies in the
@ghostfolio/common
library
- Added support for filtering by accounts on the allocations page
- Added support for private equity
- Extended the form to set the asset and asset sub class for (wealth) items
- Refactored the filtering (activities table and allocations page)
- Fixed the tooltip update in the portfolio proportion chart component
- Apply data migration (
yarn database:migrate
)
- Added support for commodities (via futures)
- Added support for real estate
- Improved the layout of the position detail dialog
- Upgraded
yahoo-finance2
from version2.3.1
to2.3.2
- Fixed the import validation for numbers equal 0
- Fixed the color of the spinner in the activities filter component (dark mode)
- Apply data migration (
yarn database:migrate
)
- Improved the filtering by tags
- Added the tags to the create or edit transaction dialog
- Added the tags to the position detail dialog
- Changed the date to UTC in the data gathering service
- Reused the value component in the users table of the admin control panel
- Added the database migration
- Apply data migration (
yarn database:migrate
)
- Added a tagging system for activities
- Extracted the activities table filter to a dedicated component
- Changed the url of the Get Started link to
https://ghostfol.io
on the public page - Simplified
@@id
using multiple fields with@id
in the database schema of (Access
,Order
,Subscription
) - Upgraded
prisma
from version3.11.1
to3.12.0
- Apply data migration (
yarn database:migrate
)
- Added support for sub-labels in the value component
- Added a symbol profile overrides model for manual adjustments
- Reused the value component in the Ghostfolio in Numbers section of the about page
- Persisted the savings rate in the FIRE calculator
- Upgraded
yahoo-finance2
from version2.3.0
to2.3.1
- Fixed the calculation of the total value for sell and dividend activities in the create or edit transaction dialog
- Apply data migration (
yarn database:migrate
)
- Added the total amount to the tooltip in the chart of the FIRE calculator
- Beautified the ETF names in the symbol profile
- Fixed an issue with changing the investment horizon in the chart of the FIRE calculator
- Fixed an issue with the end dates in the
.ics
file of the future activities (drafts) export - Fixed the data source of the Fear & Greed Index (market mood)
- Added support to export a single future activity (draft) as an
.ics
file - Added the Boringly Getting Rich guide to the resources section
- Separated the deposit and savings in the chart of the FIRE calculator
- Added support to export future activities (drafts) as an
.ics
file
- Migrated the search functionality to
yahoo-finance2
- Fixed an issue in the average price / investment calculation for sell activities
- Changed the Total label to Total Assets in the portfolio summary tab on the home page
- Fixed an issue with the calculation of the projected total amount in the FIRE calculator
- Fixed an issue with the loading state of the FIRE calculator
- Added a calculator to the FIRE section
- Added support for the cryptocurrency Terra (
LUNA1-USD
) - Added support for the cryptocurrency THORChain (
RUNE-USD
)
- Switched to the new calculation engine
- Improved the 4% rule in the FIRE section
- Changed the background of the header to a solid color
- Improved the empty state of the portfolio proportion chart component
- Fixed an issue with dates in the value component
- Fixed an issue with percentages in the value component
- Added support for localization (date and number format) in user settings
- Improved the label of the average price from Ø Buy Price to Average Unit Price
- Fixed the missing API version in the Stripe success callback url
- Added API versioning
- Added more durations in the coupon system
- Display the value in base currency in the accounts table on mobile
- Display the value in base currency in the activities table on mobile
- Renamed
orders
toactivities
in import and export functionality - Harmonized the algebraic sign of
currentGrossPerformancePercent
andcurrentNetPerformancePercent
withcurrentGrossPerformance
andcurrentNetPerformance
- Improved the pricing page
- Upgraded
prisma
from version3.10.0
to3.11.1
- Upgraded
yahoo-finance2
from version2.2.0
to2.3.0
- Added a FIRE (Financial Independence, Retire Early) section including the 4% rule
- Added more durations in the coupon system
- Fixed an issue with the currency conversion (duplicate) in the account calculations
- Added the calculation for developed vs. emerging markets to the allocations page
- Added a hover effect to the page tabs
- Extended the feature overview page by Bonds and Emergency Fund
- Added the attribute
defaultMarketPrice
to the scraper configuration to improve the support for bonds - Added a hover effect to the table style
- Fixed an issue with the user currency of the public page
- Fixed an issue of the performance calculation with recent activities in the new calculation engine
- Improved the error handling in the scraper configuration
- Fixed the support for multiple symbols of the data source
GHOSTFOLIO
- Added support for bonds
- Restructured the portfolio summary tab on the home page
- Improved the tooltips in the portfolio proportion chart component by introducing multilines
- Apply data migration (
yarn database:migrate
)
- Added support for an emergency fund
- Added the contexts to the logger commands
- Upgraded
Nx
from version13.8.1
to13.8.5
- Added support for setting a duration in the coupon system
- Upgraded
ngx-skeleton-loader
from version2.9.1
to5.0.0
- Upgraded
prisma
from version3.9.1
to3.10.0
- Upgraded
yahoo-finance2
from version2.1.9
to2.2.0
- Included data provider errors in the API response
- Removed the redundant attributes (
currency
,dataSource
,symbol
) of the activity model - Removed the prefix for symbols with the data source
GHOSTFOLIO
- Improved the account calculations
- Apply data migration (
yarn database:migrate
)
- Added support for click in the portfolio proportion chart component
- Fixed an issue with undefined currencies after creating an activity
- Added support for mutual funds
- Added the url to the symbol profile model
- Migrated from
yahoo-finance
toyahoo-finance2
- Apply data migration (
yarn database:migrate
)
- Distinguished the labels Other and Unknown in the portfolio proportion chart component
- Improved the portfolio entry page
- Fixed the Zen Mode
- Added a trial for the subscription
- Improved the calculation of the overall performance percentage in the new calculation engine
- Displayed features in features overview page based on permissions
- Extended the data points of historical data in the admin control panel
- Moved the countries and sectors charts in the position detail dialog
- Distinguished today's data point of historical data in the admin control panel
- Restructured the server modules
- Fixed the allocations by account for non-unique account names
- Added a fallback to the default account if the
accountId
is invalid in the import functionality for activities
- Added a service to tweet the current Fear & Greed Index (market mood)
- Improved the mobile layout of the position detail dialog (countries and sectors charts)
- Fixed the
maxItems
attribute of the portfolio proportion chart component - Fixed the time in market display of the portfolio summary tab on the home page
- Added a feature overview page
- Added the asset and asset sub class to the position detail dialog
- Added the countries and sectors to the position detail dialog
- Upgraded
angular
from version13.1.2
to13.2.2
- Upgraded
Nx
from version13.4.1
to13.8.1
- Upgraded
storybook
from version6.4.9
to6.4.18
- Fixed the creation of (wealth) items
- Added support for (wealth) items
- Apply data migration (
yarn database:migrate
)
- Improved the position of the currency column in the accounts table
- Improved the position of the currency column in the activities table
- Fixed an issue with the performance calculation in connection with fees in the new calculation engine
- Fixed the creation of the user account (missing access token)
- Added the export functionality to the position detail dialog
- Improved the export functionality for activities (respect filtering)
- Removed the Admin user from the database seeding
- Assigned the role
ADMIN
on sign up (only if there is no admin yet) - Upgraded
prisma
from version3.8.1
to3.9.1
- Fixed an issue with the performance calculation in connection with a sell activity in the new calculation engine
- Fixed the horizontal overflow in the accounts table
- Fixed the horizontal overflow in the activities table
- Fixed the total value of the activities table in the position detail dialog (absolute value)
- Apply data migration (
yarn database:migrate
)
- Added support for deleting symbol profile data in the admin control panel
- Used
dataSource
andsymbol
fromSymbolProfile
instead of theorder
object (inExportService
andPortfolioService
)
- Fixed the symbol selection of the 7d data gathering
- Fixed the data source of the Fear & Greed Index (market mood)
- Apply data migration (
yarn database:migrate
)
- Added support for the (optional)
accountId
in the import functionality for activities - Added support for the (optional)
dataSource
in the import functionality for activities - Added support for the data source transformation
- Added support for the cryptocurrency Mina Protocol (
MINA-USD
)
- Improved the usability of the form in the create or edit transaction dialog
- Improved the consistent use of
symbol
in combination withdataSource
- Removed the primary data source from the client
- Removed the unused endpoint
GET api/order/:id
- Improved the annualized performance in the new calculation engine
- Increased the historical data chart of the Fear & Greed Index (market mood) to 90 days
- Added a new calculation engine (experimental)
- Fixed the styling in the footer row of the activities table
- Added the footer row with total fees and total value to the activities table
- Extended the historical data view in the admin control panel
- Upgraded Stripe dependencies
- Upgraded
prisma
from version3.7.0
to3.8.1
- Improved the redirection on logout
- Added support for fetching multiple symbols in the
GOOGLE_SHEETS
data provider
- Improved the data provider with grouping by data source and thereby reducing the number of requests
- Fixed the unresolved account names in the X-ray section
- Fixed the date conversion in the
GOOGLE_SHEETS
data provider
- Fixed the fallback to load currencies directly from the data provider
- Fixed the missing symbol profile data connection in the import functionality for activities
- Added links to the statistics section on the about page
- Fixed the currency of the value in the position detail dialog
- Start eliminating
dataSource
from activity
- Fixed the support for multiple accounts with the same name
- Fixed the preselected default account of the create activity dialog
- Added
GOOGLE_SHEETS
as a new data source type
- Excluded the url pattern of shared portfolios in the
robots.txt
file
- Apply data migration (
yarn database:migrate
)
- Added the Top 3 and Bottom 3 performers to the analysis page
- Added a blog post
- Fixed the routing of the create activity dialog
- Fixed the link color in the blog posts
- Exposed the profile data gathering by symbol as an endpoint
- Improved the portfolio analysis page: show the y-axis and extend the chart in relation to the days in market
- Restructured the about page
- Start refactoring transactions to activities
- Refactored the demo user id
- Upgraded
angular
from version13.0.2
to13.1.1
- Upgraded
chart.js
from version3.5.0
to3.7.0
- Upgraded
Nx
from version13.3.0
to13.4.1
- Hid the data provider warning while loading
- Fixed an exception with the market state caused by a failed data provider request
- Fixed an exception in the portfolio position endpoint
- Fixed the reload of the position detail dialog (with query parameters)
- Fixed the missing mapping for Russia in the data enhancer for symbol profile data via Trackinsight
- Added the date range component to the holdings tab
- Extended the statistics section on the about page (users in Slack community)
- Fixed the creation of historical data in the admin control panel (upsert instead of update)
- Fixed the scrolling issue in the position detail dialog on mobile
- Added the transactions to the position detail dialog
- Added support for dividend
- Apply data migration (
yarn database:migrate
)
- Made the data provider warning more discreet
- Upgraded
http-status-codes
from version2.1.4
to2.2.0
- Upgraded
ngx-device-detector
from version2.1.1
to3.0.0
- Upgraded
ngx-markdown
from version12.0.1
to13.0.0
- Upgraded
ngx-stripe
from version12.0.2
to13.0.0
- Upgraded
prisma
from version3.6.0
to3.7.0
- Fixed the file type detection in the import functionality for transactions
- Added a warning to the log if the data gathering fails
- Filtered potential
null
currencies - Improved the 7d data gathering optimization for currencies
- Added support for cryptocurrencies Cosmos (
ATOM-USD
) and Polkadot (DOT-USD
)
- Increased the historical data chart of the Fear & Greed Index (market mood) to 30 days
- Made the import functionality for transactions by
csv
files more flexible - Optimized the 7d data gathering (only consider symbols with incomplete market data)
- Upgraded
prettier
from version2.3.2
to2.5.1
- Added support for the cryptocurrency Solana (
SOL-USD
) - Extended the documentation for self-hosting with the official Ghostfolio Docker image
- Converted errors to warnings in portfolio calculator
- Added a line chart to the historical data view in the admin control panel
- Supported the update of historical data in the admin control panel
- Improved the redirection on logout
- Fixed the permission for the system status page
- Removed the redundant all time high and all time low from the performance endpoint
- Fixed the symbol conversion from Yahoo Finance including a hyphen
- Fixed hidden values (
0
) in the statistics section on the about page
- Apply data migration (
yarn database:migrate
)
- Extended the validation in the import functionality for transactions by checking the currency of the data provider service
- Added support for cryptocurrency Uniswap
- Set up pipeline for docker build
- Removed the default transactions import limit
- Improved the landing page in dark mode
- Fixed
/bin/sh: prisma: not found
in docker build - Added
apk
inDockerfile
(python3 g++ make openssl
)
- Extended the data gathering by symbol endpoint with an optional date
- Upgraded
Nx
from version13.2.2
to13.3.0
- Upgraded
storybook
from version6.4.0-rc.3
to6.4.9
- Added a coupon system
- Supported the management of additional currencies in the admin control panel
- Introduced the system message
- Introduced the read only mode
- Increased the historical data chart of the Fear & Greed Index (market mood) to 10 days
- Upgraded
prisma
from version2.30.2
to3.6.0
- Added the historical data chart of the Fear & Greed Index (market mood)
- Improved the historical data view in the admin control panel (hide invalid and future dates)
- Enabled the import functionality for transactions by default
- Converted the symbols to uppercase to avoid case-sensitive duplicates in the symbol profile model
- Improved the allocations by currency in combination with cash balances
- Fixed the data gathering of the Fear & Greed Index (market mood)
- Exposed the data gathering by symbol as an endpoint
- Removed the experimental API
- Eliminated the redundant storage of historical exchange rates
- Added tabs with routing to the admin control panel
- Added a new tab to manage historical data to the admin control panel
- Introduced tabs with routing to the home page
- Added the value to the position detail dialog
- Upgraded
angular
from version12.2.4
to13.0.2
- Upgraded
angular-material-css-vars
from version2.1.2
to3.0.0
- Upgraded
nestjs
from version7.6.18
to8.2.3
- Upgraded
Nx
from version12.8.0
to13.2.2
- Upgraded
rxjs
from version6.6.7
to7.4.0
- Upgraded
storybook
from version6.3.8
to6.4.0-rc.3
- Fixed the broken line charts showing value labels if openend from the allocations page
- Fixed the click event for drafts in the transactions table
- Accentuated the all time high and the all time low
- Added the value column to the positions table
- Added support for cryptocurrency Algorand
- Locked the symbol input in the edit transaction dialog
- Filtered the account selector by account type (
SECURITIES
) in the create or edit transaction dialog
- Fixed the search functionality for cryptocurrency symbols (do not show unsupported symbols)
- Added a testimonial section to the landing page
- Fixed the footer row border of the accounts table in dark mode
- Hid the Get Started button on the registration page
- Fixed the footer row of the accounts table on mobile
- Fixed the transactions count calculation in the accounts table (exclude drafts)
- Added the footer row with buying power and net worth to the accounts table
- Added a logo to the log on the server start
- Added the data gathering progress to the log and the admin control panel
- Added the value column to the accounts table
- Adapted the decimal places for cryptocurrencies in the position detail dialog
- Moved the Fear & Greed Index (market mood) to a new tab on the home page
- Improved the info messages to add the first transaction
- Fixed the skeleton loader of the portfolio holdings
- Cached the statistics section on the about page
- Changed the logger from
console.log()
toLogger.log()
- Fixed an exception in the scraper configuration
- Improved the validation of
json
files in the import functionality for transactions - Moved the scraper configuration to the symbol profile model
- Apply data migration (
yarn database:migrate
)
- Added the symbol mapping attribute to the symbol profile model
- Improved the registration page
- Apply data migration (
yarn database:migrate
)
- Prettified the generic scraper symbols in the portfolio proportion chart component
- Extended the statistics section on the about page by the active users count (7d)
- Extended the statistics section on the about page by the new users count
- Added more details to the public page (currencies, sectors, continents and regions)
- Added a
Dockerfile
and documentation to build a Docker image
- Improved the landing page
- Ordered the granted accesses by type
- Added the user interface for granting and revoking public access to share the portfolio
- Moved the data enhancer calls from the data provider (
get()
) to the data gathering service to reduce traffic to 3rd party data providers - Changed the profile data gathering from every 12 hours to once every weekend
- Added support for more cryptocurrency symbols like Avalanche, Polygon, Shiba Inu etc.
- Changed the data provider service to handle a dynamic list of services
- Added a public page to share the portfolio
- Improved the skeleton loader size of the portfolio proportion chart component
- Apply data migration (
yarn database:migrate
)
- Extended the validation message of the import functionality for transactions
- Extended the import functionality for transactions by
csv
files - Introduced the primary data source
- Restricted the file selector of the import functionality for transactions to
csv
andjson
- Extended the validation of the import functionality for transactions
- Valid data types
- Maximum number of orders
- No duplicate orders
- Data provider service returns data for the
dataSource
/symbol
pair
- Harmonized the page layouts
- Fixed the broken line charts showing value labels
- Added a data enhancer for symbol profile data (countries and sectors) via Trackinsight
- Changed the values of the global heat map to fixed-point notation
- Fixed the links of cryptocurrency assets in the positions table
- Fixed various values in the impersonation mode which have not been nullified
- Fixed an issue in the symbol conversion for Yahoo Finance (for a cryptocurrency with the same code as a currency)
- Improved the symbol conversion for Yahoo Finance: Support for Solana USD (
SOL1-USD
) - Improved the tooltips of the allocations page
- Upgraded
envalid
from version7.1.0
to7.2.1
- Added a protection for endpoints (subscriptions)
- Reformatted the exchange rates table in the admin control panel
- Added a story for the line chart component
- Added a story for the portfolio proportion chart component
- Changed the navigation to always show the portfolio page
- Migrated the data type of currencies from
enum
tostring
in the database - Supported unlimited currencies (instead of
CHF
,EUR
,GBP
andUSD
) - Respected the accounts' currencies in the exchange rate service
- Hid the actions from the accounts table in the Presenter View
- Hid the actions from the transactions table in the Presenter View
- Fixed the data gathering of the initial project setup (database seeding)
- Apply data migration (
yarn database:migrate
)
- Removed the default value of the data source attribute
- Upgraded
@storybook
dependencies
- Fixed an issue in the create or edit transaction dialog
- Apply data migration (
yarn database:migrate
)
- Added the data source attribute to the symbol profile model
- Respected the data source attribute in the data provider service
- Respected the data source attribute in the symbol data endpoint
- Improved the search functionality of the data management (multiple data sources)
- Hid the net performance in the Presenter View (portfolio holdings and summary tab on the home page)
- Hid the sign if the performance is zero in the value component
- Apply data migration (
yarn database:migrate
)
- Optimized the annualized performance calculation
- Changed the data gathering selection from distinct orders to symbol profiles
- Added the annualized performance to the portfolio summary tab on the home page
- Added the Ghostfolio Slack channel to the about page
- Upgraded
@simplewebauthn/browser
and@simplewebauthn/server
from version3.0.0
to4.1.0
- Fixed the sign in with fingerprint for some android devices
- Provided the name in the portfolio position endpoint
- Fixed the Fear & Greed Index (market mood)
- Fixed the overlap of the home button with tabs on iOS (Add to Home Screen)
- Added labels to the allocation chart by symbol on desktop
- Added the attribute
precision
in the value component
- Hid the performance in the Presenter View
- Fixed the search functionality for cryptocurrency symbols
- Extended the statistics section on the about page by the GitHub contributors count
- Set up Storybook
- Added a story for the logo component
- Added a story for the no transactions info component
- Added a story for the trend indicator component
- Added a story for the value component
- Switched from gross to net performance
- Restructured the portfolio summary tab on the home page (fees and net performance)
- Added a link below the holdings to manage the transactions
- Added the allocation chart by symbol
- Restructured the allocations page
- Upgraded
angular
from version12.0.4
to12.2.4
- Upgraded
@angular/cdk
and@angular/material
from version12.0.6
to12.2.4
- Upgraded
Nx
from version12.5.4
to12.8.0
- Upgraded
prisma
from version2.24.1
to2.30.2
- Fixed the value formatting for integers (transactions count)
- Extended the sub classification of assets by cash
- Upgraded
svgmap
from version2.1.1
to2.6.0
- Filtered out positions without any quantity in the positions table
- Improved the symbol lookup: allow saving with valid symbol in create or edit transaction dialog
- Extended the data management of symbol profile data by countries (automated for stocks)
- Added a fallback for initially loading currencies if historical data is not yet available
- Added the subscription type to the users table of the admin control panel
- Introduced the sub classification of assets
- Apply data migration (
yarn database:migrate
)
- Added a link to the system status page
- Improved the wording for the Restricted View: Presenter View
- Improved the styling of the tables
- Ignored cash assets in the allocation chart by sector, continent and country
- Fixed an issue in the allocation chart by account (wrong calculation)
- Fixed an issue in the allocation chart by account (missing cash accounts)
- Improved the fault tolerance of the portfolio details endpoint
- Fixed the node engine version mismatch in
package.json
- Fixed an issue on the buy date in the position detail dialog
- Fixed an issue with the currency inconsistency in the Yahoo Finance service (convert from
GBp
toGBP
)
- Added an option to hide absolute values like performances and quantities (Restricted View)
- Restructured the allocations page
- Fixed an issue with the performance in the portfolio summary tab on the home page (impersonation mode)
- Fixed various values in the impersonation mode which have not been nullified
- Removed the current net performance
- Removed the read foreign portfolio permission
- Apply data migration (
yarn database:migrate
)
- Added the overview menu item on mobile
- Refactored the exchange rate service
- Improved the users table in the admin control panel
- Added the calculated net worth to the portfolio summary tab on the home page
- Added the calculated time in market to the portfolio summary tab on the home page
- Improved the usability of the tabs on the home page
- Restructured the portfolio summary tab on the home page
- Upgraded
angular-material-css-vars
from version2.1.0
to2.1.2
- Fixed the position detail chart if there are missing historical data around the first buy date
- Fixed the snack bar background color in dark mode
- Fixed the search functionality for symbols (filter for supported currencies)
- Improved the data gathering handling on server restart
- Respected the cash balance on the allocations page
- Eliminated the name from the scraper configuration
- Fixed hidden cryptocurrency holdings
- Hid the pagination of tabs
- Improved the classification of assets
- Improved the support for future transactions (drafts)
- Optimized the accounts table for mobile
- Upgraded
chart.js
from version3.3.2
to3.5.0
- Added a fallback if the exchange rate service has not been initialized correctly
- Apply data migration (
yarn database:migrate
)
- Restructured the page hierarchy
- Fixed an issue with the currency conversion of the market price in the position detail dialog
- Fixed the chart and missing data of positions from the past in the position detail dialog
- Fixed an issue of a division by zero in the portfolio calculations
- Fixed an issue with the currency conversion in the position detail dialog
- Added the name to the position detail dialog when opened from the transactions table
- Added a screenshot to the blog posts
- Fixed the missing market state in the positions tab
- Fixed the chart of positions with differing currency from user
- Fixed an issue with the currency conversion in the portfolio calculations
- Added more data points to the chart
- Rewritten the core engine for the portfolio calculations
- Switched to Time-Weighted Rate of Return (TWR) for the performance calculation
- Improved the performance of the portfolio calculations
- Added the date range component to the positions tab
- Added a blog
- Introduced tabs on the home page
- Changed the menu icon if the menu is open on mobile
- Extended the data management by symbol profile data
- Added a currency attribute to the symbol profile model
- Added a positions button on the home page which scrolls into the view
- Improved the style of the active page in the navigation on desktop
- Removed the footer for users
- Extended the Zen Mode by positions
- Improved the Create Account message in the Live Demo
- Improved the onboarding
- Flow of creating a new account
- Info message to add the first transaction
- Fixed the chart on the landing page
- Fixed the url to the Fear & Greed Index on the resources page
- Added the import functionality for transactions
- Added the
robots.txt
file
- Improved the styling of the current pricing plan
- Improved the styling of the transaction type badge
- Set the public Stripe key dynamically
- Upgraded
angular-material-css-vars
from version2.0.0
to2.1.0
- Fixed the warn color (button) of the theme
- Added the export functionality for transactions
- Respected the cash balance on the analysis page
- Improved the settings selectors on the account page
- Harmonized the slogan to "Open Source Wealth Management Software"
- Fixed rendering of currency and platform in dialogs (account and transaction)
- Fixed an issue in the calculation of the average buy prices in the position detail chart
- Added the total value in the create or edit transaction dialog
- Added a balance attribute to the account model
- Calculated the total balance (cash)
- Upgraded
@angular/cdk
and@angular/material
from version11.0.4
to12.0.6
- Upgraded
@nestjs
dependencies - Upgraded
angular-material-css-vars
from version1.2.0
to2.0.0
- Upgraded
Nx
from version12.3.6
to12.5.4
- Fixed the investment chart (drafts)
- Added support for future transactions (drafts)
- Set the user id in the Stripe callback
- Changed Stripe mode from
subscription
topayment
- Fixed the base currency on the pricing page
- Set up Stripe for subscriptions
- Improved the style of the Ghostfolio in Numbers section
- Added a Ghostfolio in Numbers section to the about page
- Improved the pie chart: Investments by sector
- Improved the onboarding for TWA by redirecting to the account registration page
- Improved the error page of the sign in with fingerprint
- Disable the sign in with fingerprint selector for the demo user
- Upgraded
angular
from version11.2.4
to12.0.4
- Upgraded
angular-material-css-vars
from version1.1.2
to1.2.0
- Upgraded
chart.js
from version3.2.1
to3.3.2
- Upgraded
date-fns
from version2.19.0
to2.22.1
- Upgraded
eslint
andprettier
dependencies - Upgraded
ngx-device-detector
from version2.0.6
to2.1.1
- Upgraded
ngx-markdown
from version11.1.2
to12.0.1
- Improved the sign in with fingerprint
- Added a counter column to the transactions table
- Added a label to indicate the default account in the accounts table
- Added an option to limit the items in pie charts
- Added sign in with fingerprint
- Cleaned up the analysis page with an unused chart module
- Improved the cell alignment in the users table of the admin control panel
- Fixed the last activity column of users in the admin control panel
- Added a connect or create symbol profile model logic on creating a new transaction
- Improved the global heat map to visualize investments by country
- Added a global heat map to visualize investments by country
- Added a symbol profile model with additional data
- Added new pie charts: Investments by continent and country
- Added a dedicated page for the account registration
- Rendered the average buy prices in the position detail chart (useful for recurring transactions)
- Introduced the initial prisma migration
- Changed the buttons to links (
<a>
) on the tools page - Upgraded
prisma
from version2.20.1
to2.24.1
- Fixed an optional type in the user interface
- Moved the tools to a sub path (
/tools
) - Extended the pricing page and aligned with the subscription model
- Added the year labels to the investment chart on the x-axis
- Respected the data source attribute of the transactions model in the data management for historical data
- Prettified the generic scraper symbols in the transaction filtering component
- Changed to the strict mode of distance formatting between two given dates
- Fixed the sorting in various tables
- Made the order of the rules in the X-ray section consistent
- Added a section for Analysis, X-ray and upcoming tools
- Introduced a user service implemented as an observable store (single source of truth for state)
- Fixed the performance chart by considering the investment
- Fixed missing header of public pages (About, Pricing, Resources)
- Hid footer on mobile (except on landing page)
- Fixed the internal navigation of the Zen Mode in combination with a query parameter
- Added an index in the users table of the admin control panel
- Improved the alignment in the users table of the admin control panel
- Added Zen Mode: the distraction-free view
- Added filtering by year in the transaction filtering component
- Renamed Ghostfolio Account to My Ghostfolio
- Hid unknown exchange in the position overview
- Disable the base currency selector for the demo user
- Refactored the portfolio unit tests to work without database
- Refactored the search functionality of the data management (aligned with data source)
- Renamed shared helper to
@ghostfolio/common/helper
- Moved shared interfaces to
@ghostfolio/common/interfaces
- Moved shared types to
@ghostfolio/common/types
- Refactored the active menu item state by parsing the current url
- Used a desaturated background color for unknown types in pie charts
- Renamed the columns Initial Share and Current Share to Initial Allocation and Current Allocation in the positions table
- Fixed the link to the pricing page
- Updated the sitemap
- Harmonized the style of various tables
- Keep the color per type when switching between Initial and Current in pie charts
- Upgraded
chart.js
from version3.0.2
to3.2.1
- Moved the pricing section to a dedicated page
- Improved the style of the transaction filtering component
- Fixed the tooltips when switching between Initial and Current in pie charts
- Added a button to fetch the current market price in the create or edit transaction dialog
- Improved the transaction filtering with multi filter support
- Fixed the filtering by account name in the transactions table
- Fixed the active menu item state when a modal has opened
- Added the functionality to clone a transaction
- Added a Google Play badge on the landing page
- Changed to maskable icons
- Added support for deleting users in the admin control panel
- Eliminated the platform attribute from the transaction model
- Added the logic to create and update accounts
- Added an account page as a preparation for the multi accounts support
- Added the absolute change to the position detail dialog
- Added the number of transactions to the position detail dialog
- Harmonized the slogan to "Open Source Portfolio Tracker"
- Added a data source attribute to the transactions model
- Added the generic scraper symbols to the symbol lookup results
- Improved the users table styling of the admin control panel
- Improved the background colors in the dark mode
- Prepared further for multi accounts support: store account for new transactions
- Added a horizontal scrollbar to the users table of the admin control panel
- Fixed an issue in the header with outdated data
- Fixed an issue on the about page with outdated data
- Extended the support for feature flags to simplify the initial project setup
- Prepared for multi accounts support
- Improved the styling of the rules in the X-ray section
- Added the symbol logo to the position detail dialog
- Introduced a third option for the market state:
delayed
(besidesopen
andclosed
)
- Improved the users table of the admin control panel
- Added a prettifier (pipe) for generic scraper symbols
- Fixed the text truncation in buttons of the admin control panel
- Reverted the restoring of the scroll position when opening a new page
- Fixed the frozen screen if the token has expired
- Fixed some issues in the generic scraper
- Added a generic scraper
- Fixed an issue in the users table of the admin control panel with missing data
- Added the license to the about page
- Added a validation for environment variables
- Added support for feature flags to simplify the initial project setup
- Changed the about page for the new license
- Optimized the data management for historical data
- Optimized the exchange rate service
- Improved the users table of the admin control panel
- Restored the scroll position when opening a new page
- Refactored many frontend components
- Changed the routing to
routerLink
for an improved navigation experience - Simplified the initial project setup
- Fixed static portfolio analysis rules (Currency Cluster Risk) if no positions in base currency
- Initial Investment: Base Currency
- Current Investment: Base Currency
- Added a new static portfolio analysis rule: Fees in relation to the initial investment
- Reset the cache on the server start
- Fixed an issue in the portfolio update on deleting a transaction
- Fixed an issue in the X-ray section (missing redirection on logout)
- Added a gradient to the line charts
- Added a selector to set the base currency on the account page
- Added support for assets in
GBP
- Added an error handling with messages in the client
- Changed the Ghostfolio SaaS (cloud) from a
nano
to amicro
instance for a better performance
- Improved the spacing in the header
- Upgraded
chart.js
from version2.9.4
to3.0.2
- Refactored the data management services
- Upgraded
bootstrap
from version4.5.3
to4.6.0
- Upgraded
date-fns
from version2.16.1
to2.19.0
- Upgraded
ionicons
from version5.4.0
to5.5.1
- Upgraded
lodash
from version4.17.20
to4.17.21
- Upgraded
ngx-markdown
from version11.1.0
to11.1.2
- Upgraded
ngx-skeleton-loader
from version2.6.2
to2.9.1
- Upgraded
prisma
from version2.18.0
to2.20.1
- Added a spinner to the create or edit transaction dialog
- Added support for the back button in
- portfolio performance chart dialog
- position detail dialog
- create transaction dialog
- edit transaction dialog
- Improved the single platform rule by adding the number of platforms
- Minor improvements
- Added support for base currency in user settings
- Added an investment risk disclaimer to the footer
- Added two more static portfolio analysis rules:
- Currency Cluster Risk (current investment)
- Platform Cluster Risk (current investment)
- Grouped the X-ray section visually in Currency Cluster Risk and Platform Cluster Risk
- Added two more static portfolio analysis rules:
- Currency Cluster Risk (base currency)
- Platform Cluster Risk (single platform)
- Fixed an issue in the X-ray section (empty portfolio)
- Fixed an issue in the exchange rate service occurring on the first day of the month
- Added a Create Account message in the Live Demo
- Added skeleton loaders to the X-ray section
- Improved the alignment of the Why Ghostfolio? section
- Improved the styling of the Fear & Greed Index (market mood)
- Added the Fear & Greed Index (market mood) to the portfolio performance chart dialog
- Added a link to the info box on the analysis page
- Improved the intro text in the X-ray section
- Fixed the flickering of the Sign in button in the header
- Fixed an issue with updating or resetting the platform of a transaction
- Added an intro text to the X-ray section
- Improved the editing of transactions
- Harmonized the page titles
- Fixed an issue with wrong transaction dates
- Added the second static portfolio analysis rule: Platform Cluster Risk
- Improved the styling in the X-ray section
- Added the current Fear & Greed Index as text
- Extended the landing page text: Ghostfolio empowers busy folks...
- Added the first static portfolio analysis rule in the brand new X-ray section
- Improved the spacing in the footer
- Added the current Fear & Greed Index to the resources page
- Improved the performance of the position detail dialog
- Fixed a scroll issue in dialogs
- Added an experimental API to get historical data for benchmarks
- Added a chevron to the position
- Added an experimental API to get benchmark data
- Added a legend to the portfolio performance chart
- Added a placeholder to the filter of the transactions table
- Changed the regular data management check to a smarter approach
- Added an index to the market data database table
- Optimized the other dialogs for mobile (full screen and close button)
- Improved the transactions table
- Optimized the position detail dialog for mobile (full screen and close button)
- Fixed an issue while loading data concurrently via the date range component
- Fixed an issue in the performance calculation if there are only transactions from today
- Added a button to create the first transaction on the analysis page
- Fixed an issue on the analysis page if there are only transactions from today
- Extended the landing page text: Why Ghostfolio?
- Extended the glossary of the resources page
- Added meta data for Open Graph and Twitter Cards
- Added meta data:
description
andkeywords
- Improved the icon
- Fixed the
sitemap.xml
file
- Added the
sitemap.xml
file - Added a resources page
- Added a chart to the landing page
- Improved the performance chart
- Improved the average buy price in the position detail chart
- Improved the style of the active page in the navigation on mobile
- Added the quantity and investment in the position detail dialog
- Improved the performance chart
- Improved the performance calculation
- Improved the average buy price in the position detail chart
- Improved the performance calculation
- Added another Create Account button at the end of the landing page
- Fixed an issue in the position detail chart if the position has been bought today (no historical data)
- Fixed an issue in the transaction service with unordered items
- Set up database backup
- Improved
site.webmanifest
- Added the membership status to the account page
- Fixed an issue in the chart (empty portfolio)
- Changed the default number of rows from 10 to 7 in the positions table
- Fixed the button to expand rows in the positions table
- Added filters to switch between Original Shares vs. Current Shares in pie charts
- Added a button to expand rows in the positions table
- Ordered platforms by name in edit transaction dialog
- Modularized the date range component
- Fixed the error handling for the data management (errors in nested data)
- Added additional portfolio filters for
1Y
and5Y
- Added an error handling for the data management
- Improved the pricing section
- Fixed the about page for unauthorized users
- Added a pricing section
- Improved the positions and transactions table
- Harmonized alignment
- Enabled position detail dialog
- Added a positions table with information about Original Shares vs. Current Shares
- Added data management to control panel
- Added permission based access-control
- Added an admin control panel
- Changed the data management of benchmarks with extended persistency
- Changed the data management of currencies with extended persistency
- Changed the data management with extended persistency
- Upgraded
prisma
from version2.16.1
to2.18.0
- Upgraded
angular
from version11.0.9
to11.2.4
- Fixed missing columns (Quantity, Unit Price and Fee) in transactions table
- Fixed displaying edit transaction dialog in impersonation mode
- Fixed
/.well-known/assetlinks.json
for TWA
- Improved the skeleton loader (minor)
- Fixed the portfolio unit tests
- Added the possibility to create or edit a transaction with a platform
- Increased the token expiration duration
- Only show relevant data in the position detail dialog
- Improved the performance chart styling in Safari
- Fixed the calculation issues occurring on the first day of each month
- Harmonized the percent value formatting
- Improved the buy price in the position detail dialog
- Fixed the (hidden) header issue
- Added
/.well-known/assetlinks.json
for TWA
- Added a benchmark (S&P 500) to the portfolio performance chart
- Minor improvements in the transactions table
- Added the possibility to edit a transaction
- Added transparent background to header
- Harmonized currency value formatting
- Fixed header issue with (not) signed in
- Improved skeleton loader of position
- Simplified sign in / sign up flow
- Added favicon and
site.webmanifest
- Set font style of numbers to tabular
- Rename Orders to Transactions
- Additionally hash the Security Token (no more stored in plain text)
- Added a landing page text: How does Ghostfolio work?
- Added the Independent & Bootstrapped badge to the about page
- Added a changelog to the about page
- Added a twitter account to the about page
- Added the version to the about page
- Added an about page
- Added a landing page text: Why Ghostfolio?
- Added caching for the portfolio (Redis)