{"id":23089718,"url":"https://github.com/manonworldrepository/spring-cloud-stream-cashcard-application","last_synced_at":"2026-02-28T05:30:16.195Z","repository":{"id":267214302,"uuid":"900549892","full_name":"manonworldrepository/spring-cloud-stream-cashcard-application","owner":"manonworldrepository","description":"Spring cloud stream application","archived":false,"fork":false,"pushed_at":"2025-01-01T14:11:29.000Z","size":152,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-09T06:13:53.686Z","etag":null,"topics":["graalvm","spring","spring-cloud-stream","spring-cloud-stream-kafka"],"latest_commit_sha":null,"homepage":"https://www.linkedin.com/in/mostafa-abdelhamid-atwa-067a0a26b/","language":"Java","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/manonworldrepository.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-09T02:47:30.000Z","updated_at":"2025-02-05T11:22:30.000Z","dependencies_parsed_at":"2024-12-16T06:24:56.025Z","dependency_job_id":null,"html_url":"https://github.com/manonworldrepository/spring-cloud-stream-cashcard-application","commit_stats":{"total_commits":23,"total_committers":1,"mean_commits":23.0,"dds":0.0,"last_synced_commit":"c01d973cadd50fd06b1e4b5f8b2f1eb5a2d2432c"},"previous_names":["manonworldrepository/spring-cloud-stream-cashcard-application"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manonworldrepository%2Fspring-cloud-stream-cashcard-application","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manonworldrepository%2Fspring-cloud-stream-cashcard-application/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manonworldrepository%2Fspring-cloud-stream-cashcard-application/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manonworldrepository%2Fspring-cloud-stream-cashcard-application/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/manonworldrepository","download_url":"https://codeload.github.com/manonworldrepository/spring-cloud-stream-cashcard-application/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247044689,"owners_count":20874359,"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":["graalvm","spring","spring-cloud-stream","spring-cloud-stream-kafka"],"created_at":"2024-12-16T20:39:32.102Z","updated_at":"2026-02-28T05:30:16.189Z","avatar_url":"https://github.com/manonworldrepository.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Cashcard Application [![Java CI with Gradle](https://github.com/manonworldrepository/spring-cloud-stream-cashcard-application/actions/workflows/gradle.yml/badge.svg)](https://github.com/manonworldrepository/spring-cloud-stream-cashcard-application/actions/workflows/gradle.yml)\n\nThis project demonstrates a simple, event-driven system using Spring Cloud Stream, Kafka, and Spring Boot with GraalVM native images. All services are designed to run within a Docker environment.\n\n### Prerequisites\n\n*   Java 21+\n*   Docker and Docker Compose\n\n### Building and Running the System\n\nThe entire system, including the applications and the end-to-end tests, is managed through Docker Compose.\n\nIf you want to build the application faster, you can just pull the necessary images from docker:\n\n```bash\ndocker pull paketobuildpacks/builder-jammy-java-tiny:latest\ndocker pull paketobuildpacks/run-jammy-tiny:latest\n```\n\n**1. Build the Application Docker Images**\n\nFirst, build the native Docker images for the `source`, `enricher` and `sink` services using the Spring Boot Gradle plugin.\n\n```bash\n  ./gradlew clean bootBuildImage --no-daemon\n```\n\nOr you can build one image after another like so:\n\n```bash\n./gradlew :cashcard-transaction-source:bootBuildImage --no-daemon\n./gradlew :cashcard-transaction-enricher:bootBuildImage --no-daemon\n./gradlew :cashcard-transaction-sink:bootBuildImage --no-daemon\n```\n\n### Then in order to be able to run everything in docker containers, just run the following command:\n\n```bash\n  docker compose up -d --build\n```\n\n### Application's Endpoint URL: \n\n``` http://localhost:8080/pub ```\n\nHTTP Method: ``` POST ```\n\nExample Payload:\n\n```\n{\n    \"id\": 1234,\n    \"cashCard\": {\n        \"id\": 12345,\n        \"owner\": \"testOwner\",\n        \"amountRequestedForAuth\": \"3.14\"\n    }\n}\n```\n\nYou can also check `requests.http` to run the same request.\n\n### Architecture Overview\n\n![Architecture Overview](./system-with-sink.svg \"Architecture Overview\")\n\n\n### Running Tests\n\n` ./gradlew clean test `\n\n\n### Grafana Dashboard\n\nThe system starts with a preconfigured Prometheus datasource and a basic \"CashCard System Overview\" dashboard.\n\nURL: http://localhost:3000\n\nUsername: `admin`\n\nPassword: `admin`\n\nA screenshot of Grafana Dashboard should look like so:\n\n![Grafana Dashboard](./Screenshot-2026-02-28-040104.png \"Grafana Dashboard\")","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanonworldrepository%2Fspring-cloud-stream-cashcard-application","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmanonworldrepository%2Fspring-cloud-stream-cashcard-application","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanonworldrepository%2Fspring-cloud-stream-cashcard-application/lists"}