A Budgetal implementation written in Go with Create React App on the web frontend and a fully-functional iOS and Android app written with Create React Native App
Backend setup:
Install buffalo then install Budgetal
$ git clone https://github.com/dillonhafer/budgetal.git
$ cd backend
$ buffalo db create
$ buffalo db migrate
$ buffalo dev
Frontend setup:
cd frontend
yarn install
yarn start
Mobile setup:
Mobile is an Expo app
cd mobile
yarn install
yarn start
iTerm automation
If you are using iTerm and/or Visual Studio Code, there is a Task/AppleScript to start all
the servers for you. Simply run the task budgetal-servers
You can manually run the AppleScript with the following (if using another editor):
#!/bin/bash
project=/my/path/to/budgetal-go
$project/.vscode/./budgetal-servers $project
PORT
the port can be configured by setting thePORT
env varADDR
the listening address can be configured by setting theADDR
env varDATABASE_URL
the database connection can be configured by setting theDATABASE_URL
env varCORS
space separated list of domains, defaults tohttp://localhost:3001
BUDGETAL_HEADER
name of header used when authenticating, defaults toX-Budgetal-Session
BUDGETAL_COOKIE
name of cookie used when authenticating, defaults to_budgetal_session
S3 Credentials
Providing S3 credentials will auto-matically use S3 to store avatars:
AWS_S3_ACCESS_KEY_ID
AWS_S3_SECRET_ACCESS_KEY
AWS_S3_TOKEN
AWS_S3_REGION
AWS_S3_BUCKET
Production will also need the following:
GO_ENV
application run-time environment, usuallyproduction
SMTP_USER
username for smtp serviceSMTP_PASSWORD
password for smtp serviceSMTP_HOST
host for smtp serviceSMTP_PORT
port for smtp serviceERROR_NOTIFICATION_EMAILS
comma-separated list of emails to receive 500 errors
The front end needs certain ENV
vars at build time:
REACT_APP_HELP_FRAME
Used to populate the iframe in the help modal.REACT_APP_BASE_URL
Used to specify the base api url for all fetch requests.
How to run the backend tests:
$ make test
- Backend deploy (heroku):
cd backend && make release
- Frontend deploy (firebase):
cd frontend && yarn release