{"id":25443008,"url":"https://github.com/drichards188/gojenga","last_synced_at":"2025-06-27T15:07:49.736Z","repository":{"id":37019105,"uuid":"485936315","full_name":"drichards188/gojenga","owner":"drichards188","description":"Serverless Banking Portfolio Project","archived":false,"fork":false,"pushed_at":"2023-01-09T01:39:18.000Z","size":590,"stargazers_count":1,"open_issues_count":9,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-27T15:07:27.603Z","etag":null,"topics":["aws","golang","serverless"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/drichards188.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-04-26T20:22:23.000Z","updated_at":"2022-07-07T20:59:13.000Z","dependencies_parsed_at":"2023-01-17T13:31:42.954Z","dependency_job_id":null,"html_url":"https://github.com/drichards188/gojenga","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/drichards188/gojenga","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drichards188%2Fgojenga","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drichards188%2Fgojenga/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drichards188%2Fgojenga/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drichards188%2Fgojenga/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/drichards188","download_url":"https://codeload.github.com/drichards188/gojenga/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drichards188%2Fgojenga/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262279177,"owners_count":23286550,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","golang","serverless"],"created_at":"2025-02-17T14:16:35.116Z","updated_at":"2025-06-27T15:07:49.699Z","avatar_url":"https://github.com/drichards188.png","language":"Go","readme":"# Gojenga\n## Serverless Banking Portfolio Project\n\n### Made by David Richards\n### https://www.linkedin.com/in/drichards188/\n\n## **WIP (Work In Progress)**\n\n## **Early Alpha**\n\n## **Not Production Ready**\n\n## **What this project does**\u003cbr\u003e\nThis 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.\n\n### Sample Network graph\nVertexes are users\u003cbr\u003e\nEdges are transactions with direction\u003cbr\u003e\nCreated with Python and Networkx from Gojenga DBs\nUsing Networkx enables value from the whole field of graph theory\n\n![my sample network graph](https://github.com/drichards188/gojenga/blob/master/docs/sampleGojengaGraph.png?raw=true)\n\n## Technologies\n-Golang\n\n-Aws (DynamoDB, ECS)\n\n-OpenTelemetry Distributed Tracing\n\n-Zap logging\n\n-Java\n\n-Springboot Java Framework\n\n-MongoDB\n\n-Junit \u0026 Mockito\n\n-Python\n\n-Networkx\n\n-Jupyter Notebooks\n\n-React\n\n-Redux\n\n## **Roadmap**\u003cbr\u003e\n[0] - Implement Saga Orchestration for transaction completion and rollbacks\n\n[1] - Making the system Zillow production compliant\n\n-Comments\n\n-Timeouts\n\n-Graceful Shutdown\n\n-Instrumentation\n\n-Distributed Tracing\n\n-Context Propagation\n\n-Concurrency\n\n-Circuit Breaker\n\n-Error Handling\n\nhttps://www.youtube.com/watch?v=9Q1RMueVHAg\n\n[2] - Adhering to Google Golang best practices\n\n-naming conventions, formatting, flow, swagger comments etc...\n\nhttps://www.youtube.com/watch?v=EXrEd1-GZR0\n\n[3] - Convert to microservices architecture and deploy on AWS\n\nhttps://aws.amazon.com/lambda/\n\nhttps://aws.amazon.com/ecr/\n\n## **Install Instructions**\u003cbr\u003e\n-Install AWS CLI and setup credentials\n\n-configure OpenTelemetry collector to AWS\n\n-clone project\n\n-enter sqs url on lambda folder\n\n-enter directory\n\n-build and run gojenga/main/main.go\n\n-or run the Dockerfile and deploy to ECS (pre alpha)\n\n## **Run Instructions**\u003cbr\u003e\n\n-build and run gojenga/main/main.go\n\n-or run the Dockerfile and deploy to ECS (pre alpha)\n\n-be sure to have AWS CLI and your credentials setup\n\n-adding API documentation soon\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrichards188%2Fgojenga","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdrichards188%2Fgojenga","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrichards188%2Fgojenga/lists"}