Skip to content
This repository has been archived by the owner on Oct 6, 2022. It is now read-only.
/ unroot Public archive

A GraphQL Server on top of root.co.za's programmable banking api.

Notifications You must be signed in to change notification settings

nunsie/unroot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UNROOT


🚀 Root Banking meets GraphQL
A GraphQL Server on top of root.co.za's programmable banking api.

Try it out here 👉 live.unroot.co.za

Features

  • Serverless Architecture: Unroot runs on AWS Lambda which is scalable and cheap.
  • Scalable GraphQL server: The server uses graphql-yoga which is based on Apollo Server & Express.
  • Tooling: Out-of-the-box support for GraphQL Playground & query performance tracing.
  • Extensible: Simple and flexible data model – easy to adjust and extend.
  • No configuration overhead: Preconfigured graphql-config setup.

Requirements

You need to have the Serverless installed to run the application locally or deploy it to your own AWS account:

npm install -g serverless

Getting started

# 1. Install project dependencies with yarn
yarn

# 2. Export the STAGE env var
export STAGE=dev

# 3. Start server (runs on http:https://localhost:3000) and open GraphQL Playground
sls offline start

Authenticating

Same auth method as the root api, basic with api key as user and password blank. Test using test key provided (test_key_tYILz1640w9q5n5kNQUZ), base64 string for use in "Authorization" header:

"Basic dGVzdF9rZXlfdFlJTHoxNjQwdzlxNW41a05RVVo6"

Documentation

Commands

  • yarn start starts GraphQL server on http:https://localhost:3000 and opens GraphQL Playground

  • yarn deploy deploys application to AWS Lambda via serverless

TODO

I haven't been able to test a bunch of queries and mutations as yet because I haven't been accepted into the private beta 💔, would love if someone with access could test some of the below and report their findings:

  • Test card query with a valid api key
  • Test transaction query with a valid api key
  • Test category query with a valid api key
  • Test contact query with a valid api key
  • Test tag query with a valid api key

These relational queries might get a little complex.. don't want to end up in infinite loops 🤔

  • Extend Card type to include code, sensitive and config_variables

  • Extend Card type to return relational data to Tag instead of just the tag_id

  • Extend Transaction type to return relational data to: Tag, Card, Category & Contact, instead of just returning their id's

  • Implement updateCard resolver

  • Implement updateCategory resolver

  • Implement updateContact resolver

  • Implement updateTag resolver

  • Implement updateTransaction resolver

About

A GraphQL Server on top of root.co.za's programmable banking api.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published