Giter Site home page Giter Site logo

odinsride / olubalance Goto Github PK

View Code? Open in Web Editor NEW
13.0 3.0 9.0 31.47 MB

olubalance is a personal finance tool to balance and reconcile your bank accounts

Home Page: https://www.olubalance.com

License: MIT License

Ruby 53.10% JavaScript 4.07% HTML 39.56% SCSS 3.19% CSS 0.05% Procfile 0.03%
finance banking banking-applications rails rails-application postgresql postgresql-database personal-finance bulma stimulusjs

olubalance's Introduction

Hi there ๐Ÿ‘‹

I'm Kevin Custer. I build things with Rails in my spare time, and with ServiceNow at work.

I'm currently working on ...

  • olubalance - A personal finance app that has helped my wife and I pay off debts and become financially responsible. It is a Rails 6 app and uses Postgres, Webpack, Stimulus, and Bulma. I've learned a lot building it and currently working on a complete rewrite using the knowledge and patterns I've learned about while working on the original version.
  • Building a self-hosted personal cloud, powered by Debian, Docker, and Tailscale
  • Freelance opportunities: Wordpress, Shopify, Custom development, and finding the best solutions for clients

Tech Interests (besides web development!)

  • Linux
  • Docker
  • Virtualization
  • Homelabbing and Self hosting
  • Hardware / PC building

How to reach me

Fun fact

I'm also a photographer! I enjoy capturing landscapes and nature photos. See my photography here

olubalance's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

olubalance's Issues

Running Balance

Add a Running Balance column to Transactions page. Should work with pagination.

Additional Info for those interested in helping:

My app is a simple online check register where users can sign up, add bank accounts, and enter transactions for each account. It functions exactly as a hand written check register would work. I need help calculating the running balance to display in the transactions list. I was able to calculate it in the view, but when I added the "will_paginate" gem, the calculation was reset when going to the next page.

Account Stashes

Add the ability to create one or more stashes for an Account. This will let the user move money into a separate area and out of the main account's balance. This can be useful for various things such as saving up for a large purchase or expense, or to use as an emergency fund / account buffer. A summary of stashes should appear on the account transactions page near the bottom of the transactions list.

New User Registration fails with ActionView::CompiledTemplates::Constants

New Users registering for olubalance receive the standard Rails production error page. Investigation of the log files reveals the error:

ActionView::Template::Error (uninitialized constant ActionView::CompiledTemplates::Constants

... coming from app/views/accounts/index.html.erb in the call to Constants::NO_ACCOUNT_DESC.

Further investigation revealed there is likely an issue with the autoload_path config option in production environments (see https://guides.rubyonrails.org/autoloading_and_reloading_constants.html)

Redesign + Refactor Codebase

  • - Review Codebase

  • - Refactor Models, Views, Controllers where necessary and following best practices

  • - Redesign UI using Bulma:

  • - Remove JQuery

  • - Remove simple_form

  • - Remove Materialize and related gems

  • - Remove fontawesome

  • - Use Bulma as manually added asset

  • - Consider moving view code into partials where it makes sense

  • - Evaluate organization of partials

  • - Review Decorators and Helpers

  • Separate the Password Change form out

  • Move form buttons to the left

  • Add links into footer

  • Add a landing page

Remove animate.css

Remove animate.css from olubalance. It is unused and causing errors in the application logs.

Add form validation

For new accounts, transactions
Also for Edit Transaction, don't allow negative values, and set the Transaction Type based on negative or positive

Transaction Attachments

Add the ability to save attachments or images to the transaction. Useful for keeping track of payment confirmation emails, images of checks, etc.

Add the ability to inactivate accounts

For example if an account has been closed, it can be marked as such and displayed accordingly while preserving transactions and statements for recordkeeping.

Swap will_paginate for pagy gem

will_paginate is proving to be a challenge with remembering the current page within an account, and then switching to another account. Further, this gem is dated and not as feature-rich or performant as newer gems such as pagy.

Swap the will_paginate gem for the pagy gem for transaction pagination.

Add Pending Status for Check Transactions

  • Add pending field on Transaction model
  • Add pending field on Transaction Form
  • Add section in transaction list to separate Pending Transactions
  • Add a button somewhere to mark a transaction as non-pending

Please comment on this issue prior to working for further details. And thanks to anyone willing to tackle this!

olubalance 1.2 planned updates

olubalance 1.2 will mark the final feature release of the Rails based front-end. Going forward, olubalance will be split into a Rails API and a Vue frontend. The following features are planned for 1.2

  • Deleting an account will no longer permenantly delete the account from the database, though it will be hidden from the user. An admin can easily recover accidentally deleted accounts and transactions this way.
  • A new feature will be added to inactivate accounts and show them in a separate area of olubalance. This can be helpful for record keeping.
  • Transaction search will be added (#21)
  • Accounts will have a field to store the last 4 digits of the account number for ease of identifying accounts
  • Attachments will be available at the account level for storing statements (#14)
  • Image and attachment uploads will be renamed per the transaction/account details
  • A new account type will be added for Credit Cards which will allow for separation and alternate display properties on the accounts screen (#13)
  • Transactions will have autocomplete enabled for the description field (#8)
  • Bugfix for account deletion
  • Pagination options to be added for viewing more transactions at a time
  • Bugfix for going back to the page you were on after updating a transaction several pages back

Look into timezone settings

When creating new transaction at 8pm EST the transaction date was defaulted to the next day. Suspect time zone setting is incorrect either at app level or possibly server level

Account Attachments

Add the ability to attach files to accounts. This would be useful for attaching bank or credit card statements to the account so everything is stored on olubalance.

Create RSpec Tests

  • Implement RSpec Gem
    • Include shoulda-matchers
    • Include simplecov
    • Include factory_bot_rails
    • Include database_cleaner
  • Create Model Tests
    • Covers validations and relationships
  • Create Request Tests
    • Covers controller actions, business logic, router functionality
  • Create Feature Tests as necessary

Add transaction description autofill functionality

Add transaction description autofill functionality.

Notes from 1/10/21:
Attempted autocomplete with stimulus and autocomplete.js, but the problem is that it requires a controller action that constantly queries the DB with every keystroke. Prefer to have the unique descriptions fetched one time and filtered client side. Will revisit implementing this as a Vue component or trying a different approach in Stimulus later.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.