/finapp

Open source personal finance application

Primary LanguageVue

Open source finance application

Written with Vue.js and Firebase.

Finapp helps you to control personal finances easily and efficiently.

This is Finapp 2.0. For the 1.x see the classic branch.

Demo

Finapp 2.0.0

Futures and Technologies

  • Works offline on all devices (Service Worker): you can see all your data. Create, edit and delete transactions. (ios not support yet)
  • Optimized for mobile and PC.
  • Themes: dark and white.
  • Support multiple currencies with auto conversion.
  • Instant synchronization between all device (Firebase).

Setup

Project setup

# clone the repo
$ git clone https://github.com/ilkome/finapp.git finapp

# go into app's directory
$ cd finapp

# install app's dependencies
$ npm install

Firebase setup

  • Create a Firebase project in the Firebase console
  • Go to the Authentication tab and enable Google authentication.
  • Go to the Database tab and enable Firestore.
  • Select Realtime Database and go to Rules tab.
  • Change rules to:
{
  "rules": {
    "users": {
      "$uid": {
        ".read": "auth != null && auth.uid == $uid",
        ".write": "auth != null && auth.uid == $uid"
      }
    },
    "currencies": {
      ".read": "auth != null",
      ".write": "auth != null"
    }
  }
}
  • Go to the Project Overviw and click Add Firebase to your web app.
  • You need to replace config in app's directory /src/firebase.js with your properties.
apiKey: 'YOUR_CONFIG',
authDomain: 'YOUR_CONFIG',
databaseURL: 'YOUR_CONFIG',
projectId: 'YOUR_CONFIG',
storageBucket: 'YOUR_CONFIG',
messagingSenderId: 'YOUR_CONFIG'

Development

Compiles and hot-reloads

$ npm run dev

Production

Compiles and minifies for production

$ npm run build

Upload to server

You can add your FTP config in app's directory /src/ftp.config.js

# upload all files from dist folder
$ npm run upload

# upload only css, js, html files from dist folder
$ npm run upload-min

Stay In Touch 🤪

I would like to speak with you about Finapp. I'm interesting to work in interesting modern projects.