1
0
Fork 0
mirror of https://github.com/maybe-finance/maybe.git synced 2025-07-23 15:19:38 +02:00
Commit graph

160 commits

Author SHA1 Message Date
Josh Brown
b3f8ab78d9
Implement savings rate insight card (#670) 2024-04-24 10:02:22 -04:00
Josh Brown
461fa672ff
Add income and spending insight cards to dashboard (#668)
* Generate time series for rolling 30 day sum of income and spending

* Highlight accounts with most income and spending in the last 30 days

* Aggregate chips after 3 top accounts in insight card

* Refactor aggregation filter

I think this is easier to read and understand whats happening at a
glance

* Refactor and tidy

* Use family currency for insight cards

* Further reduce risk of sql injection

* Fix lint

* Refactor rolling total queries

* Add test for transaction snapshot
2024-04-24 08:34:50 -04:00
Mattia
8a29725562
Add transactions widget to dashboard page (#656) 2024-04-22 16:51:06 -04:00
Thibaut Gorioux
5be1ced19e
Shared money input should respond to change in currency (#654)
* Add step method to currency

* Change amount placeholder and step, when currency select change

* Lint

* Add test with auth

* Extract request to specific service
2024-04-20 08:07:06 -04:00
Zach Gollwitzer
c46662c99f
Add apply button, improve transaction filters (#655)
* Add apply button, improve transaction filters

* Remove temp log

* Fix lint errors
2024-04-19 12:03:16 -04:00
Zach Gollwitzer
f5f624881f
Add placeholders for dashboard features (#642)
* Add placeholders for new dashboard

* Fix tests and lint errors
2024-04-18 10:32:36 -04:00
Zach Gollwitzer
9bda7efc3f
New Settings Menu, Routes and Controllers Organization (#641)
* Add new settings routes and controllers

* Add new settings view, restructure controllers and routes

* Fix lint errors
2024-04-18 07:56:51 -04:00
Jose Farias
cd8d741fe1
Add transaction modal flow (#633)
* Add transaction modal flow

* Preserve decimals when creating transactions
2024-04-16 14:44:31 -04:00
Thibaut Gorioux
a22c7a0e9c
Add persistent notification with dismiss and action button (#611)
* Update notification partial

* Update locals args

* Lint

* Move content to body in notification helper

* Avoid dynamic Tailwind class

* Styling

* Add notification to localization file

* Lint

* Normalize locales

* Auto dismiss by default
2024-04-16 13:33:51 -04:00
Zach Gollwitzer
5aca2ff9b6
Add zero-config self hosting on Render (#612)
* v1 of backend implementation for self hosting

* Add docs

* Add upgrades controller

* Add global helpers for self hosting mode

* Add self host settings controller

* Conditionally show self hosting settings

* Environment and config updates

* Complete upgrade prompting flow

* Update config for forked repo

* Move configuration of github provider within class

* Add upgrades cron

* Update deploy button

* Update guides

* Fix render deployer

* Typo

* Enable auto upgrades

* Fix cron

* Make upgrade modes more clear and consistent

* Trigger new available version

* Fix logic for displaying upgrade prompts

* Finish implementation

* Fix regression

* Trigger new version

* Add i18n translations

* trigger new version

* reduce caching time for testing

* Decrease cache for testing

* trigger upgrade

* trigger upgrade

* Only trigger deploy once

* trigger upgrade

* If target is commit, always upgrade if any upgrade is available

* trigger upgrade

* trigger upgrade

* Test release

* Change back to maybe repo for defaults

* Fix lint errors

* Clearer naming

* Fix relative link

* Add abs path

* Relative link

* Update docs
2024-04-13 09:28:45 -04:00
Pablo Porto
00a42be5c0
fix(authentication): Fix issues when users try to logout (#603)
Run set last login information action only when the user exist. Thus preventing running it after the logout method, which was causing an error
2024-04-08 07:26:46 -04:00
Zach Gollwitzer
d29d465a3c
Basic transaction categories CRUD actions (inline) (#601)
* Fix dropdown issues and add dummy transaction category modal

* Minor namings tweaks

* Add search type

* Use new menu controller

* Complete basic transaction category inline CRUD actions

* Fix lint error

---------

Co-authored-by: Jakub Kottnauer <jk@jakubkottnauer.com>
2024-04-04 17:29:50 -04:00
Mattia
315c4bf1ec
Account Sync should happen at login, 1x per day, OR on-demand (#594)
* Add last_sync_date to accounts table

* Always sync Account after Valuation or Transaction creation, update, or deletion.

Skip sync if user clicks "sync" button without changing anything

* Sync user accounts daily based on last_login_at
2024-04-04 17:00:12 -04:00
Zach Gollwitzer
0a0289846e
Centralize auth (#598) 2024-04-03 10:35:55 -04:00
Mattia
f6540c03ef
Add ability to delete Account (#582)
* Add ability to delete Account

Issue #571

* Fix ActiveJob::DeserializationError in AccountSyncJob when an account doesn't exists

* Use custom confirm modal for account deletion

* Revert "Fix ActiveJob::DeserializationError in AccountSyncJob when an account doesn't exists"

This reverts commit 8dbf634819.
2024-03-31 17:36:54 -04:00
Zach Gollwitzer
b1bfdef8ff
Isolate infinite loop bug, add timeout to actions (#583)
* Isolate infinite loop bug, add timeout to actions

* Increase timeout to allow for temporary failure

* Set correct timeout, implement temporary fix

* Trigger syncs at controller layer
2024-03-29 12:53:08 -04:00
Zach Gollwitzer
f0c2d4ead0
Implement transaction filtering UI (#578)
* Rough sketch of implementation

* Consolidate auto submit controller

* Store ransack params in session

* Improve how summary is calculated for txns

* Implement filters UI
2024-03-28 13:23:54 -04:00
Zach Gollwitzer
d402f4d6ba
Remove currency conversion job call (#566) 2024-03-25 13:06:27 -04:00
Zach Gollwitzer
110855d077
Multi-Currency Part 2 (#543)
* Support all currencies, handle outside DB

* Remove currencies from seed

* Fix account balance namespace

* Set default currency on authentication

* Cache currency instances

* Implement multi-currency syncs with tests

* Series fallback, passing tests

* Fix conflicts

* Make value group concrete class that works with currency values

* Fix migration conflict

* Update tests to expect multi-currency results

* Update account list to use group method

* Namespace updates

* Fetch unknown exchange rates from API

* Fix date range bug

* Ensure demo data works without external API

* Enforce cascades only at DB level
2024-03-21 13:39:10 -04:00
Zach Gollwitzer
f904d9d062
Add the ability to "rollup" values in a time series (#554)
* Clean up time series models

* Add value group rollup class for summarizing hierarchical data

* Integrate new classes

* Update UI to use new patterns

* Update D3 charts to expect new data format

* Clean up account model

* More cleanup

* Money improvements

* Use new money fields

* Remove invalid fixture data to avoid orphaned accountables

* Update time series to work better with collections

* Fix tests and UI bugs
2024-03-19 09:10:40 -04:00
Zach Gollwitzer
fe2fa0eac1
Multi-currency support: Money + Currency class improvements (#553)
* Money improvements

* Replace all old money usage
2024-03-18 11:21:00 -04:00
Yu Le
56743eb380
Enable turbo refresh in layout/auth & Fix registrations controller create fail w/ status (#544) 2024-03-14 10:30:46 -04:00
Jakub Kottnauer
2c257a2a4b
Add inline category selection (#541)
* Implement inline category selection

* Add turbo frame to refresh updated transaction

* Improve styles

* Fix category assignment

* Reorganize code

* Revert event propagation

* Remove unused frames

* Make only the transaction name clickable

* Add custom scrollbar class
2024-03-14 10:30:36 -04:00
Zach Gollwitzer
c60ddaec1d
Multi-currency part 1 (#542)
* Add family snapshots table

* Add snapshot method, clean up family expected results

* Remove old sync trigger
2024-03-11 16:32:13 -04:00
Ciocanel Razvan
cca779d3c4
Feat transactions search (#532)
* gem: Add ransack gem

* feat: Implement transactions search
2024-03-11 08:51:16 -04:00
Cristiano Crolla
7f2633f9da
Add transaction sidebar (#534)
* Create sidebar element and working with turbo

* Add overview fields

* Add columns to transations and tidy modal

* permit new transaction params

* Add autosubmit form controller

* remove unused show code
2024-03-10 17:38:31 -04:00
Jean Moreau
9c9459211f
Implement basic transaction pagination (#531)
* install pagy

* add pagy to controller, display default pagy UI

* display hardcoded custom UI to confirm styling

* implement custom UI with pagy methods

* move pagination into partial

* use lucide icons

* only display pagination if 2 or more pages are available

* add mobile pagination placeholder

* use link_to and display greyed out buttons when no prev or next needed

* sort transactions by date so grouping works appropriately with pagination

* add space between mobile view buttons

* remove debugging
2024-03-08 15:11:58 -05:00
Jakub Kottnauer
90d0cc0c39
Add backend support for transaction categories (#524)
* Add backend support for transaction categories

* Fix tests

* Localize default category names

* Add tests

* Remove category icon and set default color
2024-03-07 13:15:50 -05:00
Zach Gollwitzer
ad7136cb63
Add accounts management list (#522)
* Add accounts management

* Normalize i18n file

* Get turbo streams working

* Ignore disabled accounts in calculations

* Add empty state
2024-03-07 10:55:51 -05:00
Zach Gollwitzer
6f0e410684
Dashboard View and Calculations (#521)
* Handle Turbo updates with tabs

Fixes #491

* Add Filterable concern for controllers

* Add trendline chart

* Extract common UI to partials

* Series refactor

* Put placeholders for calculations in

* Add classification generated column to account

* Add basic net worth calculation

* Add net worth tests

* Get net worth graph working

* Fix lint errors

* Implement asset grouping query

* Make trends and series more intuitive

* Fully functional dashboard

* Remove logging
2024-03-06 09:56:59 -05:00
Zach Gollwitzer
0fe9b6d34a
Add Money and Money Series (#505)
* Add Money class

* Standardize creation of money series

* Formatting

* Fix test
2024-03-01 17:17:34 -05:00
Zach Gollwitzer
7d48c01833
Prepare fixture data for account sync tests (#493)
* Rename account balance field for clarity

`original_balance` and `original_currency` may infer that these values are "original" to the account.  In reality, they represent the "current" balance and currency on the account.

* Prepare fixture data for account sync testing

* Update to new field

* Fix conflicts

* Remove local schema change
2024-02-27 12:43:49 -05:00
Dwight Watson
971347c761
Find account first and build transaction through association (#487)
* Find account first and build transaction through association

* Fix flaky test
2024-02-26 06:29:28 -05:00
Zach Gollwitzer
87b97b3c41
Scaffold out basic transactions model and UI (#478)
* Transaction scaffold

* Rough in transaction views

* Fix sort order

* Fix mass assignment issue

* Fix test

* Simplify CI workflow

* Don't seed db before test
2024-02-23 21:34:33 -05:00
Zach Gollwitzer
7e324f1b53
Scaffold out Account Syncing (#474)
* Add trends, time series, seed data

* Remove test data

* Replace old view values with helpers

* Fix tooltip bugs in D3 chart

* Fix tests

* Fix smoke test

* Add CRUD actions for valuations

* Scaffold out inline editing with Turbo

* Refactor series logic

* Scaffold out basic sync process for accounts

* Fix tests
2024-02-22 11:35:06 -05:00
Zach Gollwitzer
b5b2d335fd
Add Live Data to Account Page (#464)
* Add trends, time series, seed data

* Remove test data

* Replace old view values with helpers

* Fix tooltip bugs in D3 chart

* Fix tests

* Fix smoke test

* Add CRUD actions for valuations

* Scaffold out inline editing with Turbo
2024-02-20 09:07:55 -05:00
Zach Gollwitzer
3ec9c9b56b
Scaffold out the UI for individual account page (#461)
* Add `AccountBalance` table for account views

* Scaffold out account UI

* Add D3 line chart scaffolding

* Style fixes
2024-02-14 13:02:11 -05:00
Josh Pigford
4d5d35b277 Rough-in on account show pages 2024-02-10 19:39:18 -06:00
Josh Pigford
aa351ae616
Multi-currency support (#425)
* 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>
2024-02-10 16:18:56 -06:00
Josh Brown
df3e14a975
Apply default form styling (#272)
* Add and organise component stylesheets

* Revert CSS folder and file structure

* Add FormsHelper and FormBuilder to apply component classes

* Refactor label args

Co-authored-by: Jose Farias <31393016+josefarias@users.noreply.github.com>
Signed-off-by: Josh Brown <josh@joossh.com>

* Update form field styles

* Apply form builder to all fields

* Remove redundant style rules

Some of these were either duplicative or had no effect.

* Apply default submit button styles

* Set default form class

* Fix opacity of input when focused

---------

Signed-off-by: Josh Brown <josh@joossh.com>
Co-authored-by: Jose Farias <31393016+josefarias@users.noreply.github.com>
Co-authored-by: Josh Pigford <josh@joshpigford.com>
2024-02-09 09:29:31 -06:00
Josh Brown
f8174990ca
Fix accountable type references in new account flow (#395)
* Fix accountable type references in new account flow

* Add remaining references

* Refactor accountable type checking

* Refactor new account template to use account

* Refactor account create action

* Refactor account sidebar
2024-02-09 08:26:54 -06:00
Ricardo Siqueira de Oliveira Leite
c8a659694d
Start I18n Internationalization setup (#276)
* start internationalization_setup

* add passwords views translations

* add account views translations

* fix translations

* temporary disable i18n used key
2024-02-06 11:58:17 -06:00
Nidhi Sarvaiya
1182ab39bd
Integrate money-rails gem (#268)
* Integrate money-rails gem

* Fix Lint issues

* Basic test for monetize feature

* Merge main branch

* Changes to monetize balance field

---------

Co-authored-by: Zach Gollwitzer <zach.gollwitzer@gmail.com>
2024-02-06 12:30:51 -05:00
Edrick Leong
622fc07a76
feat: add settings page (#274)
* feat: add settings page

* feat: add updating family name

* fix: formatting

* refactor: update to use Rails label helper
2024-02-05 08:19:23 -06:00
Dwight Watson
97789bc538
Fix arguments to find_by_token_for (#299) 2024-02-04 19:10:48 -06:00
Dwight Watson
1cded2af90
Use Current association in AccountsController and add tests (#298)
* Add PagesControllerTest with authentication

* Rubocop fixes

* Move sign_in to setup block

* Remove instance variable

* Add tests for AccountsController

* Use specific account
2024-02-04 18:00:40 -06:00
Dwight Watson
d61a22b070
Opt-in to Current fully (#297) 2024-02-04 17:36:46 -06:00
Dwight Watson
23eaa3e066
Split authentication concern from ApplicationController (#289)
* Split authentication concern from ApplicationController

* Remove empty space

* Rubocop fixes
2024-02-04 13:05:13 -06:00
Jose Farias
c5192ee424
Centralize auth messages (#269)
* Add i18n-tasks

* Add auth-related i18n

* Centralize auth messages

* Remove safe navigation

* Revert "Remove safe navigation"

This reverts commit 56b5e01e5e.

* Remove newline in Gemfile
2024-02-03 14:17:49 -06:00
Rob Zolkos
48ade396ca Fix account creation 2024-02-03 02:50:09 +00:00