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 devFrontend 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 $projectPORTthe port can be configured by setting thePORTenv varADDRthe listening address can be configured by setting theADDRenv varDATABASE_URLthe database connection can be configured by setting theDATABASE_URLenv varCORSspace separated list of domains, defaults tohttp://localhost:3001BUDGETAL_HEADERname of header used when authenticating, defaults toX-Budgetal-SessionBUDGETAL_COOKIEname 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_IDAWS_S3_SECRET_ACCESS_KEYAWS_S3_TOKENAWS_S3_REGIONAWS_S3_BUCKET
Production will also need the following:
GO_ENVapplication run-time environment, usuallyproductionSMTP_USERusername for smtp serviceSMTP_PASSWORDpassword for smtp serviceSMTP_HOSThost for smtp serviceSMTP_PORTport for smtp serviceERROR_NOTIFICATION_EMAILScomma-separated list of emails to receive 500 errors
The front end needs certain ENV vars at build time:
REACT_APP_HELP_FRAMEUsed to populate the iframe in the help modal.REACT_APP_BASE_URLUsed 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