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
- Host: GitHub
- URL: https://github.com/drichards188/gojenga
- Owner: drichards188
- Created: 2022-04-26T20:22:23.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2023-01-09T01:39:18.000Z (about 3 years ago)
- Last Synced: 2025-06-27T15:07:27.603Z (9 months ago)
- Topics: aws, golang, serverless
- Language: Go
- Homepage:
- Size: 576 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
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

## 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