Skip to content

davidpoza/wheimo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

559 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WHEIMO

Acronym for Where is my money, a web app for expenses tracking. This is a monorepo. For frontend I'm using React, and on backend, Node express.js with an sqlite database.

Installation

touch database.sqlite
docker-compose up

Prerequisites

  • Node.js >= 13, I'm using 14.15.4
  • python to build sqlite3 package using node-pre-gyp (sudo apt install python)

Environment variables

ADMIN_EMAIL=admin@gmail.com
ADMIN_PASS=xxxxxxxx

LOG_LEVEL=

# secret for encryption of jwt signature
JWT_SECRET=yoursecret

# number of rounds for Blowfish algorithm for hashing user password
BCRYPT_ROUNDS=12

# lifetime of the token (in seconds)
JWT_LIFETIME=86400

# algorithm used in token signing
JWT_ALGORITHM=HS256

# passphrase used to encrypt access password
AES_PASSPHRASE=xxxxxxx

# Resync frequency in minutes
RESYNC_FREQ=10

UPLOAD_MAX_SIZE=10
UPLOAD_MAX_RESOLUTION=1920

# Vapid keys for web push notifications
# generate using npx web-push generate-vapid-keys
PRIVATE_VAPID_KEY=xxxxxxxxx
WEB_PUSH_EMAIL=xxxx@xxx.com
REACT_APP_PUBLIC_VAPID_KEY=yyyyyyyyyy
REACT_APP_API_HOST=http://localhost:3001
REACT_APP_NOTIFIER_HOST=http://localhost:3002

API

/auth

POST: /auth/signup

Creates user account Fields:

  • email (required)
  • password (required)
  • name

POST: /auth/signin

Generates jwt valid token Fields:

  • email (required)
  • password (required)

/users

GET: /users

Retrieves users

POST: /users

Creates user Fields:

  • email (required)
  • password (required)
  • level

PATCH: /users

Updates user

DELETE: /users

Deletes user


/accounts

GET: /accounts

Retrieves banks accounts

POST: /accounts

Creates bank account Fields:

  • name (required)
  • number (required)
  • description
  • accessId
  • accessPassword

PATCH: /accounts

Updates bank account Fields:

  • name (required)
  • number (required)
  • description
  • accessId
  • accessPassword

DELETE: /accounts

Deletes bank account


/transactions

GET: /transactions

Retrieves transactions

POST: /transactions

Creates transaction Fields:

  • amount (required)
  • emitter (required)
  • emitterName
  • description
  • tags <Array(numbers)>

PATCH: /transactions

Updates transaction

DELETE: /transactions

Deletes transaction


/tags

GET: /tags

Retrieves tags

POST: /tags

Creates tag Fields:

  • name
  • rules <Array(number)>: Arrays of rule ids

PATCH: /tags

Updates tag

DELETE: /tags

Deletes tags


/rules

GET: /rules

Retrieves tagging rules

POST: /rules

Creates tagging rule Fields:

  • name
  • type
  • value

PATCH: /rules

Updates tagging rule

DELETE: /rules

Deletes tagging rule


/recurrents

GET: /recurrents

Retrieves recurrent payments

POST: /recurrents

Creates recurrent payment Fields:

  • name (required)
  • emitter (required)
  • amount (required)
  • transactionId

PATCH: /recurrents

Updates recurrent payment

DELETE: /recurrents

Deletes recurrent payment

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages