Skip to content

pawelkrystkiewicz/simple-health-tracker-backend

Repository files navigation

SEM - simple expenses manager (backend)

Paweł Krystkiewicz 2019 ©

Quick start guide

Add ormconfig.json

{
    "type": "postgres",
    "host": "localhost",
    "port": 5432,
    "username": "test",
    "password": "test",
    "database": "test"
}

Add .env.development

EXAMPLE

SENDGRID_API_SECRET = #Not used yet
SENDGRID_API_KEY = #Not used yet
SESSION_TTL = 1000 * 60 * 60 * 48
SESSION_NAME = sid
SESSION_SECRET = supersecret
REDIS_HOST = 'redist.host.url'
REDIS_PASS = 'redis-pass'
REDIS_PORT = 6789
PORT = 4449
TECH_SUPPORT = your.mail @somedomain.com
MAIL_SENDER = sender.mail @somedomain.com
APP_ID = your_app_id_to_distinguish_in_your_apps
SERVICE_NAME = 'something_something_dark'
CLIENT_URL = 'http://localhost:3000'

Already done?

Then just run

yarn
yarn start

Then have a look at localhost:$PORT/graphql

Database structure

TRANSACTION

NAME TYPE CONSTRAINT RELATED FIELD NULLABLE
id int PK
value float
createdAt timestamp
updatedAt timestamp
createdBy int FK 1:1 user[id]
updatedBy int FK 1:1 user[id]
currency int FK 1:1 currency[id]
comment varchar ✔️
repeat int FK 1:1 repeatPattern[id] ✔️
type enum
category int FK 1:N category[id]
project int FK 1:1 project[id] ✔️
name varchar
account int FK 1:1 account[id] ✔️
attachment int FK 1:1 attachment[id] ✔️

CURRENCY

AFTER ISO 4217
NAME TYPE CONSTRAINT NULLABLE
id int PK
country varchar
name varchar
code varchar(3)
number int

CATEGORY

NAME TYPE CONSTRAINT NULLABLE
id int PK
name varchar
description varchar ✔️
createdAt timestamp
updatedAt timestamp

USER

NAME TYPE CONSTRAINT NULLABLE
id int PK
firstName varchar
lastName varchar
email varchar
password varchar
phone varchar ✔️
redeemCode varchar ✔️
active boolean
confirmed boolean
createdAt timestamp
updatedAt timestamp

ACCOUNT

NAME TYPE CONSTRAINT RELATED FIELD NULLABLE
id int PK
name varchar
number varchar ✔️
description varchar ✔️
createdBy int FK 1:1 user[id]
updatedBy int FK 1:1 user[id]
createdAt timestamp
updatedAt timestamp

ATTACHEMENT

NAME TYPE CONSTRAINT RELATED FIELD / VALUE NULLABLE
id int PK
path varchar
fileType enum jpg | png | pdf
type enum invoice | receipt
createdAt timestamp
updatedAt timestamp

PROJECT

NAME TYPE CONSTRAINT NULLABLE
id int PK
name varchar
description varchar ✔️
createdAt timestamp
updatedAt timestamp

REPEAT PATTERN

NAME TYPE CONSTRAINT RELATED FIELD / VALUE NULLABLE
id int PK
amount int
unit enum interval unit d | m | q | y
startAt timestamp
endAt timestamp ✔️
name varchar
createdAt timestamp
updatedAt timestamp

This enum will be used to multiply by interval amount. nextDate = lastDate + interval * intervalType

export enum intervalType = {
    days: 1,
    months: 30,
    quarters: 90,
    years: 365
}

TRANSACTION TYPE

  • INCOME
  • EXPENSE
  • TRANSFER

About

Backend for simple-health-tracker app

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published