{"id":18888155,"url":"https://github.com/consol/nostrastockerus","last_synced_at":"2026-04-30T13:31:58.406Z","repository":{"id":72844629,"uuid":"170844361","full_name":"ConSol/nostrastockerus","owner":"ConSol","description":"Nostradamus + Stock = Nostrastockerus","archived":false,"fork":false,"pushed_at":"2019-02-15T10:10:22.000Z","size":58,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-05-31T12:30:31.985Z","etag":null,"topics":["example-project","java8","jwt-authentication","k8s","kubernetes","microprofile","minikube","openliberty"],"latest_commit_sha":null,"homepage":"https://labs.consol.de/microservices/2018/09/10/eclipse-microprofile.html","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ConSol.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2019-02-15T10:10:02.000Z","updated_at":"2019-02-15T10:17:39.000Z","dependencies_parsed_at":"2023-03-11T14:09:04.508Z","dependency_job_id":null,"html_url":"https://github.com/ConSol/nostrastockerus","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ConSol/nostrastockerus","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ConSol%2Fnostrastockerus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ConSol%2Fnostrastockerus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ConSol%2Fnostrastockerus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ConSol%2Fnostrastockerus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ConSol","download_url":"https://codeload.github.com/ConSol/nostrastockerus/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ConSol%2Fnostrastockerus/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32466333,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"ssl_error","status_checked_at":"2026-04-30T13:12:06.837Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["example-project","java8","jwt-authentication","k8s","kubernetes","microprofile","minikube","openliberty"],"created_at":"2024-11-08T07:42:31.470Z","updated_at":"2026-04-30T13:31:58.389Z","avatar_url":"https://github.com/ConSol.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Nostrastockerus (MicroProfile Example App)\nTech stack: Java 8 + MicroProfile 2.1 + Open Liberty 18.0.0.4\n\n### Functionality\nUsers can create \"prophecies\" (e.g. \"stock X on date Y will have value Z) and vote for or against them. The prophecies are checked periodically (by a K8S `CronJob`). The aggregated statistics for a user can be then showed showing how many \"prophecies\" he/she has done, how many have been checked and how many have fulfilled (or, equivalently, which \"precision\" as a \"prophet\" the user has).\n\nThe app consists of 3 (micro-)services (user, prophecy and stats) which demonstrate usage of various MicroProfile technologies (Config, OpenAPI, OpenTracing etc.). Responsibilities of the services are the following:\n* user service holds users and issues JWTs to them.\n* prophecy service holds \"prophecies\" and accepts votes for and against them.\n* stats service calls the prophecy service, collects prophecies and checks them. It also creates and aggregates statistics about users and theirs prophecies.\n\nAll three services have the following common features:\n* they are secured via JWT\n* they have `/health` and `/metrics` endpoints for liveness probing and metrics scraping respectively\n* they use MicroProfile Config for configuration and support MicroProfile OpenTracing (Zipkin is used for trace collecting)\n\n### Deployment\n###### Dependencies\n* `minikube`\n* `kubectl`\n* `helm`\n* `JDK 1.8` ([keytool](https://docs.oracle.com/javase/8/docs/technotes/tools/unix/keytool.html) will be needed)\n* `maven`\n* `curl`\n* `docker`\n###### Procedure\n* `git clone https://github.com/progaddict/nostrastockerus.git`\n* `cd nostrastockerus/utils/scripts`\n* `minikube start # if not running yet`\n* wait for minikube to start\n* `source main.sh`\n\n### Usage example\nsee the `utils/scripts/example-requests.sh`\n\n### Prometheus metrics\n* `source vars.sh`\n* find the prometheus pod:\n`POD=$(kubectl get pods --selector=\"app=prometheus,prometheus=${K8S_NAMESPACE}-prome-prometheus\" | grep prometheus- | cut -d' ' -f 1)`\n* the pod should be named similar to `prometheus-microprofile-article-prome-prometheus-0`\n* ask K8S to proxy the `9090` port of the pod:\n`kubectl port-forward ${POD} 9090`\n* go to http://localhost:9090/ and observe the Prometheus' UI\n\n### Zipkin traces\n* `source vars.sh`\n* `minikube service zipkin --namespace=${K8S_NAMESPACE}`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconsol%2Fnostrastockerus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fconsol%2Fnostrastockerus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconsol%2Fnostrastockerus/lists"}