An open API service indexing awesome lists of open source software.

https://github.com/drichards188/gojenga

Serverless Banking Portfolio Project
https://github.com/drichards188/gojenga

aws golang serverless

Last synced: 9 months ago
JSON representation

Serverless Banking Portfolio Project

Awesome Lists containing this project

README

          

# Gojenga
## Serverless Banking Portfolio Project

### Made by David Richards
### https://www.linkedin.com/in/drichards188/

## **WIP (Work In Progress)**

## **Early Alpha**

## **Not Production Ready**

## **What this project does**

This project is a learning and portfolio project that revolves around a banking app in functionality. The basic functions such as creating an account, making deposits and transactions are implimented. The data generated by these operations are then available for data science. There is a cloud microservices implimentation and a local implimentation. The cloud version uses DynamoDB. The local version uses MySQL. The use of SQL not only allows for relational DB magic, but porting to Apache Spark for big data practice.

### Sample Network graph
Vertexes are users

Edges are transactions with direction

Created with Python and Networkx from Gojenga DBs
Using Networkx enables value from the whole field of graph theory

![my sample network graph](https://github.com/drichards188/gojenga/blob/master/docs/sampleGojengaGraph.png?raw=true)

## Technologies
-Golang

-Aws (DynamoDB, ECS)

-OpenTelemetry Distributed Tracing

-Zap logging

-Java

-Springboot Java Framework

-MongoDB

-Junit & Mockito

-Python

-Networkx

-Jupyter Notebooks

-React

-Redux

## **Roadmap**

[0] - Implement Saga Orchestration for transaction completion and rollbacks

[1] - Making the system Zillow production compliant

-Comments

-Timeouts

-Graceful Shutdown

-Instrumentation

-Distributed Tracing

-Context Propagation

-Concurrency

-Circuit Breaker

-Error Handling

https://www.youtube.com/watch?v=9Q1RMueVHAg

[2] - Adhering to Google Golang best practices

-naming conventions, formatting, flow, swagger comments etc...

https://www.youtube.com/watch?v=EXrEd1-GZR0

[3] - Convert to microservices architecture and deploy on AWS

https://aws.amazon.com/lambda/

https://aws.amazon.com/ecr/

## **Install Instructions**

-Install AWS CLI and setup credentials

-configure OpenTelemetry collector to AWS

-clone project

-enter sqs url on lambda folder

-enter directory

-build and run gojenga/main/main.go

-or run the Dockerfile and deploy to ECS (pre alpha)

## **Run Instructions**

-build and run gojenga/main/main.go

-or run the Dockerfile and deploy to ECS (pre alpha)

-be sure to have AWS CLI and your credentials setup

-adding API documentation soon