Giter Site home page Giter Site logo

afaneca / myfin Goto Github PK

View Code? Open in Web Editor NEW
33.0 4.0 5.0 17.94 MB

Web frontend for the personal finances platform that'll help you budget, keep track of your income/spending and forecast your financial future.

Home Page: https://myfin.afaneca.com

License: GNU General Public License v3.0

HTML 46.32% CSS 36.29% JavaScript 17.39%
pfm personal-finance-manager personal-finances budgeting budget-manager budget-app finance-management

myfin's Introduction

License: GPL v3

๐Ÿ“Ÿ The API project is available here. ๐Ÿ“Ÿ

๐Ÿ“ฑ The android mobile app project is available here. ๐Ÿ“ฑ

๐Ÿฆ๐Ÿ“ˆ๐Ÿ’ณ MyFin - Personal Finances Platform

โšก About MyFin

MyFin originated as my own passion project in 2020. At that point, I'd already tried a bunch of other FPM's, but all of them lacked in at least one of the following points:

  • They were not user-friendly
  • Their features lacked a full-fledged budgeting tool
  • I was never in control of my own data

MyFin is my attempt to solve all of these issues. It has helped me manage my finances for a while now and I hope it can be useful for you as well.

MyFin MyFin MyFin MyFin MyFin MyFin MyFin MyFin MyFin MyFin MyFin MyFin

โœจ Features

Here are the main features of MyFin:

  • Localization (Multilingual support) - Native full support to both english and portuguese
  • Transactions - You can add transactions manually or import them in batches from the clipboard (from a .csv file or directly from your bank's homebanking solution)
  • Split Transactions - Easily split an already added transaction into two different ones, all with a few clicks
  • Accounts - You can track all of your accounts, including their transactions and balances
  • Categories & Entities - You can create as many of these as you want to better segment your income and spending
  • Rules & Auto-categorization - With rules, you can make your transactions importing smarter and faster, by allowing MyFin to automatically categorize some of your imported transactions, based on your specifications
  • Budgets - Taking a Boonzi-style approach to budgeting, our budget tool allows you to budget for your future, month by month
  • Stats - this one's for the data nerds. Here you have an overview of your patrimony's evolution across each month and get a forecast of your financial future for the years to come
  • Account Management - Change your password, etc...
  • Investing - keeping track of your investments (currently in beta!)
  • Theming - multiple (white & dark) themes to choose from!

๐Ÿ›ฃ๏ธ Roadmap

Here's some of the features currently in development or planned for the near future:

  • Goals - Record and keep track of your goals to keep yourself motivated at all times
  • Better Account Management - allowing the user to change its data (email, profile photo...)
  • Better Stats - add more complex & interesting stats
  • & much more...

๐Ÿ”ฐ Getting Started

Here you can find the full documentation on the first steps to get started.

๐Ÿ™‹โ€โ™‚๏ธ Contributing

This was never meant to be anything other than a little passion project of mine. However, if you're interested in taking this project and make it your own or add something to it, you're more than welcome to do so. Just get in touch :)

๐Ÿ“ฆ Dependencies

Web

myfin's People

Contributors

afaneca avatar dependabot[bot] avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar

myfin's Issues

Fix: Projections chart error

/stats/stats/monthly-patrimony-projections

 "error": {
        "type": "SERVER_ERROR",
        "description": "ERROR: Trying to access array offset on value of type bool on line 152 in file \/var\/www\/myfin.afaneca.com\/html\/myfin\/api\/public\/controllers.autoload\/Stats.php."
    }

Trxs: add lazy loading pagination

Load new transactions only when next page is requested.
Should already be supported by the API, since it's already being used by the mobile app.

Migrate MaterializeCSS to community version

Migrate from
https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js
https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css
to
https://cdn.jsdelivr.net/npm/@materializecss/[email protected]/dist/js/materialize.min.js
https://cdn.jsdelivr.net/npm/@materializecss/[email protected]/dist/css/materialize.min.css

Fix: Recalculate balance utility method error

/accounts/recalculate-balance/all

{
    "statusCode": 500,
    "error": {
        "type": "SERVER_ERROR",
        "description": "ERROR: Trying to access array offset on value of type bool on line 457 in file \/var\/www\/{...}\/html\/myfin\/api\/public\/controllers.autoload\/models\/AccountModel.php."
    }
}

Budget: change UI to maximize readability of categories list

  • Try different text color for category name of categories with zero planned amount
  • Experiment with hiding the progress bar (might lead to alignment issues with the opposite column)
  • Try minimizing height the progress bars (maybe remove redundant text inside them?)

Trxs: allow for full transactions search & pagination

Provide input field that allows to search a specific query through all of the user's transactions in record and not only the already loaded ones.
Also integrate pagination into transactions list on the web frontend.

Analyze if it makes sense to keep instant search (current implementation - simply filters through all already loaded items) and full search as independent options.

  • implement API endpoint
  • implement web interface
  • connect the dots
  • finishing touches

Update API dependencies

  • PHP required version (^7.1 => ^7.4)
  • slim/Psr7: (0.5 => 1.5)
  • cakephp/core (4.4.3 => 4.4.4)
  • cakephp/database (4.4.3 => 4.4.4)
  • cakephp/datasource (4.4.3 => 4.4.4)
  • cakephp/utility (4.4.3 => 4.4.4)
  • odan/phinx-migrations-generator (5.5.0 => 5.6.0)

Trx: Add "essential" attribute to transactions

  • Add input to Add Transaction Form
  • Add input to Edit Transaction Form
  • Add input to Import Transaction Flow
  • Add input to Add Rule Form
  • Add input to Edit Rule Form
  • Add visual queue to transactions list
  • Add essential trx expenses info to budget details

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.