Piggy is a Fin-Tech application aiming to empower users monitor their spending habits and optimize their daily financial decisions.
This project is currently work in progress.
Reference of this cute piggy: https://uxwing.com/piggy-bank-icon/
- Get familiar with GoLang through building REST APIs
- Build GraphQL supported backend server from the scratch
- Learn and implement system design of the modern full-stack application
- Get deeper exposures to DevOps tools such as Docker, nginx, Kubernetes, Workflow, and more. ...
- More learnings as this project progresses
This system design is developed for local development purpose. For the deployment, I consider using Kubernetes.
Using https:
git clone https://github.com/khishh/personal-finance-app.git
Using ssh:
git@github.com:khishh/personal-finance-app.git
This application uses Auth0 for the user authentication and Plaid API to authenticate and communicate with financial institutions of users. Therefore, you need to create an account for Auth0 and Plaid API. There should not be any incurred costs for trying this app out.
First copy .env.example
to a new file called .env
and you will fill out the environment variables for Plaid and Auth0 below.
cp .env.example .env
-
Obtain Auth0 domain and client ID from your application dashboard and place them within your
.env
(REACT_APP_AUTH0_DOMAIN
andREACT_APP_AUTH0_CLIENT_ID
). More info from https://auth0.com/docs/quickstart/spa/react/interactive -
Obtain
PLAID_CLIENT_ID
andPLAID_SECRET
from https://dashboard.plaid.com/account/keys and place them within your.env
file after you create your own Plaid account.
- Docker installed on your machine
- You have created
.env
file and fill out variables for Plaid and Auth0
docker compose up --build --detach
Once all containers spin ups, you can do
- open the web application at
localhost:3000
- open the graphql playground at
localhost:8080
ER diagram I created for this project: https://dbdiagram.io/d/63a78b3a7d39e42284e7630f