Since the very first 0.1.0-alpha.1 release, we've been moving quickly to add new features to the Maybe app. In doing so, some parts of the codebase have become outdated, unnecessary, or overly-complex as a natural result of this feature prioritization.
Now that "core" Maybe is complete, we're moving into a second phase of development where we'll be working hard to improve the accuracy of existing features and build additional features on top of "core". This PR is a quick overhaul of the existing codebase aimed to:
- Establish the brand new and simplified dashboard view (pictured above)
- Establish and move towards the conventions introduced in Cursor rules and project design overview #1788
- Consolidate layouts and improve the performance of layout queries
- Organize the core models of the Maybe domain (i.e. Account::Entry, Account::Transaction, etc.) and break out specific traits of each model into dedicated concerns for better readability
- Remove stale / dead code from codebase
- Remove overly complex code paths in favor of simpler ones
* Add geist font
* Design system css file
* Add cursor ui/ux rules
* Add shadows and shadow borders
* Replace primitives with tokens for common text and backgrounds
* Organize css
* Update switch and checkbox class names
* Add back global color variables
* Basic plaid data model and linking
* Remove institutions, add plaid items
* Improve schema and Plaid provider
* Add webhook verification sketch
* Webhook verification
* Item accounts and balances sync setup
* Provide test encryption keys
* Fix test
* Only provide encryption keys in prod
* Try defining keys in test env
* Consolidate account sync logic
* Add back plaid account initialization
* Plaid transaction sync
* Sync UI overhaul for Plaid
* Add liability and investment syncing
* Handle investment webhooks and process current day holdings
* Remove logs
* Remove "all" period select for performance
* fix amount calc
* Remove todo comment
* Coming soon for investment historical data
* Document Plaid configuration
* Listen for holding updates
* Move accountable partials
* Split accountables into separate view partials
* Fix test
* Add form to permitted partials
* Fix failing system tests
* Update new account modal views
* New sync algorithm implementation
* Update account system test assertions to match new behavior
* Fix off by 1 date error
* Revert new balance sync algorithm
* Add missing account overviews
* Enable syncing all accounts on one click
* Remove argument to sync_later method call
* Add partial for sync all accounts button
* Redirect back if possible when syncing all accounts
* Added i18n for the Dashboard page.
* Add a check for blank. Empty returned an error since @accounts was nil.
* Remove subtitle when accounts are empty..
* Increased the padding-right value for the buttons. The sapce occupied by the icon made the button elements unbalanced.
* Add refactor as suggested by Zach (https://github.com/maybe-finance/maybe/pull/707#discussion_r1588506443)
* Extract empty state into a partial.
* Render new partial if no accounts exist.
* Moved translation text to shared directory.
* Fix padding-right on New account button.
* Lint fix
* i18n tasks
* Get tests passing with :test queue adapter
---------
Co-authored-by: Zach Gollwitzer <zach.gollwitzer@gmail.com>
* Added erblint and fixed offenses
* Added erblint bintstub. Included erblint into CI
* Merged GitHub Actions tasks for rubocop and erblint into one
* Added config for erblint.
* Reverted erblint call in the CI
* Initial foundational pass at multi-currency
* Default format currency
* More work on currency and exchanging
* Re-build currencies on change
* Currency import/setup
* Background job overhaul + cheaper OXR plan support
* Lint fixes
* Test fixes
* Multi-currency setup instructions
* Allow decimals in the balance field
* Spacing fix for form
---------
Signed-off-by: Josh Pigford <josh@joshpigford.com>