All Projects → billglover → starling-roundup

billglover / starling-roundup

Licence: MIT license
Round-up your Starling Bank transactions and transfer the proceeds to a savings goal

Programming Languages

go
31211 projects - #10 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to starling-roundup

Vnpy
基于Python的开源量化交易平台开发框架
Stars: ✭ 17,054 (+100217.65%)
Mutual labels:  finance, fintech
Iex Api
The IEX API provides any individual or academic, public or private institution looking to develop applications that require stock market data to access near real-time quote and trade data for all stocks trading on IEX.
Stars: ✭ 683 (+3917.65%)
Mutual labels:  finance, fintech
Deep Finance
Datasets, papers and books on AI & Finance.
Stars: ✭ 475 (+2694.12%)
Mutual labels:  finance, fintech
StockNotify
Easy to deploy stock trigger bot built using python and mongoDB
Stars: ✭ 15 (-11.76%)
Mutual labels:  finance, fintech
Openfintech
Opensource FinTech standards & payment provider data
Stars: ✭ 87 (+411.76%)
Mutual labels:  finance, fintech
Akaunting
Free and Online Accounting Software
Stars: ✭ 4,599 (+26952.94%)
Mutual labels:  finance, fintech
Go Finance
⚠️ Deprecrated in favor of https://github.com/piquette/finance-go
Stars: ✭ 536 (+3052.94%)
Mutual labels:  finance, fintech
fints-institute-db
Database of German Banks and their HBCI / FinTS endpoints
Stars: ✭ 28 (+64.71%)
Mutual labels:  finance, fintech
Livechart
Android library to draw beautiful and rich line charts.
Stars: ✭ 78 (+358.82%)
Mutual labels:  finance, fintech
Mortgageblockchainfabric
Mortgage Processing App using Hyperledger Fabric Blockchain. Uses channels for privacy and access, and restricts read/write previleges through endorsement policies
Stars: ✭ 45 (+164.71%)
Mutual labels:  finance, fintech
FinRL
FinRL: The first open-source project for financial reinforcement learning. Please star. 🔥
Stars: ✭ 3,497 (+20470.59%)
Mutual labels:  finance, fintech
Finrl Library
FinRL: Financial Reinforcement Learning Framework. Please star. 🔥
Stars: ✭ 3,037 (+17764.71%)
Mutual labels:  finance, fintech
Personal-Finance-Net-Worth-Tracker
Personal Finance (Net Worth Tracker) Wealth Management Spreadsheet
Stars: ✭ 31 (+82.35%)
Mutual labels:  finance, fintech
Quantdom
Python-based framework for backtesting trading strategies & analyzing financial markets [GUI ]
Stars: ✭ 449 (+2541.18%)
Mutual labels:  finance, fintech
costa-rica-iban
Funciones utiles para extraer y validar información general de números de cuenta IBAN de Costa Rica
Stars: ✭ 16 (-5.88%)
Mutual labels:  finance, fintech
Qlib
Qlib is an AI-oriented quantitative investment platform, which aims to realize the potential, empower the research, and create the value of AI technologies in quantitative investment. With Qlib, you can easily try your ideas to create better Quant investment strategies. An increasing number of SOTA Quant research works/papers are released in Qlib.
Stars: ✭ 7,582 (+44500%)
Mutual labels:  finance, fintech
stockholm
💵 Modern Python library for working with money and monetary amounts. Human friendly and flexible approach for development. 100% test coverage + built-in support for GraphQL and Protocol Buffers transports using current best-practices.
Stars: ✭ 26 (+52.94%)
Mutual labels:  finance, fintech
futu algo
Futu Algorithmic Trading Solution (Python) 基於富途OpenAPI所開發量化交易程序
Stars: ✭ 143 (+741.18%)
Mutual labels:  finance, fintech
Intrinio Realtime Node Sdk
Intrinio NodeJS SDK for Real-Time Stock & Crypto Prices
Stars: ✭ 30 (+76.47%)
Mutual labels:  finance, fintech
Tushare
TuShare is a utility for crawling historical data of China stocks
Stars: ✭ 11,288 (+66300%)
Mutual labels:  finance, fintech

starling-roundup

This serverless application allows you to round-up your Starling bank transactions to the nearest £1 and transfer the delta to a savings goal.

This implementation is targeted at Amazon's AWS Serverless Application Model (SAM), but the principle could easily be deployed elsewhere.

How it works

  1. Starling Bank triggers a web-hook on each transaction.
  2. This web-hook is configured to call an API deployed on API Gateway.
  3. The API call is handled by a Lambda function which checks the signature of the request and submits it to a DynamoDB table for processing.
  4. A second Lambda function looks for new entries to the table and performs the round-up before sending a request back to Starling Bank to move the delta to a savings goal.

alt text

Questions

How do you store secure parameters? This application retrieves all parameters from the System Manager Parameter Store. This allows the parameters to be stored securely and only accessed by the Lambda function.

  • starling-webhook-secret - used to validate inbound requests
  • starling-personal-token - used to request transfers to savings goal
  • starling-savings-goal - the identifier of the target savings goal

Why do you need the DynamoDB? An early version of the solution didn't include a DynamoDB table. The first Lambda function was responsible for rounding-up transaction values and requesting the transfer to a savings goal. The DynamoDB was introduced because occasionally a web-hook would fire twice for the same transaction and the intermediary data store allows us to detect duplicate transactions and only perform the round-up once.

Installation

Pre-Requisites

Configuring Your App

  • Deploy the Serverless Application, making a note of the 'WebHook' URL that is returned as part of the output. You'll need this to configure your Starling application.
aws cloudformation deploy --region eu-west-2 --capabilities CAPABILITY_IAM --template-file /Users/bill/go/src/github.com/billglover/starling-roundup/aws/sam/starling-roundup/template.yaml --stack-name starling-roundup

Note: this assumes you are using the code packages hosted in my s3 bucket. The bucket name and path to the code packages are exposed as parameters should you wish to override them.

  • Register an application with your Starling developer account.
  • Create a personal web-hook using the URL returned above.
  • Make a note of the web-hook secret and the personal access token.
  • Create the three secure parameters, named as above, in the Parameter Store.

Contributing

Issues and pull requests are both welcome. I'd be particularly interested in help around packaging this up to simplify the deployment process.

Similar Projects

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].