{"id":15103210,"url":"https://github.com/jonasfschuh/quarkus-social-network-api","last_synced_at":"2026-01-19T21:33:44.602Z","repository":{"id":256108242,"uuid":"854340035","full_name":"jonasfschuh/quarkus-social-network-api","owner":"jonasfschuh","description":"A social network built using Quarkus. Includes API testing and telemetry with Prometheus and Grafana","archived":false,"fork":false,"pushed_at":"2024-09-11T04:31:29.000Z","size":6458,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-05T11:44:55.538Z","etag":null,"topics":["api-tests","docker","grafana","grafana-dashboard","java-17","panache","prometheus","quarkus","unit-testing"],"latest_commit_sha":null,"homepage":"","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/jonasfschuh.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-09-09T01:45:39.000Z","updated_at":"2024-09-11T04:35:10.000Z","dependencies_parsed_at":"2024-09-09T03:30:56.294Z","dependency_job_id":"d7be96e7-80d2-4261-b08f-57b4485cd48d","html_url":"https://github.com/jonasfschuh/quarkus-social-network-api","commit_stats":{"total_commits":109,"total_committers":1,"mean_commits":109.0,"dds":0.0,"last_synced_commit":"92f909749668156dea0868955a94643f14111e37"},"previous_names":["jonasfschuh/quarkus-social-network-api"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jonasfschuh/quarkus-social-network-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonasfschuh%2Fquarkus-social-network-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonasfschuh%2Fquarkus-social-network-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonasfschuh%2Fquarkus-social-network-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonasfschuh%2Fquarkus-social-network-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jonasfschuh","download_url":"https://codeload.github.com/jonasfschuh/quarkus-social-network-api/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonasfschuh%2Fquarkus-social-network-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28585518,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-19T20:45:59.482Z","status":"ssl_error","status_checked_at":"2026-01-19T20:45:41.500Z","response_time":67,"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":["api-tests","docker","grafana","grafana-dashboard","java-17","panache","prometheus","quarkus","unit-testing"],"created_at":"2024-09-25T19:22:14.664Z","updated_at":"2026-01-19T21:33:44.588Z","avatar_url":"https://github.com/jonasfschuh.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Quarkus Social Network API\n\n![Java](https://img.shields.io/badge/java-%23ED8B00.svg?style=for-the-badge\u0026logo=openjdk\u0026logoColor=white)\n![Quarkus](https://img.shields.io/badge/quarkus-%234794EB.svg?style=for-the-badge\u0026logo=quarkus\u0026logoColor=white)\n![Postgres](https://img.shields.io/badge/postgres-%23316192.svg?style=for-the-badge\u0026logo=postgresql\u0026logoColor=white)\n![IntelliJ IDEA](https://img.shields.io/badge/IntelliJIDEA-000000.svg?style=for-the-badge\u0026logo=intellij-idea\u0026logoColor=white)\n![Swagger](https://img.shields.io/badge/-Swagger-%23Clojure?style=for-the-badge\u0026logo=swagger\u0026logoColor=white)\n![Prometheus](https://img.shields.io/badge/Prometheus-E6522C?style=for-the-badge\u0026logo=Prometheus\u0026logoColor=white)\n![Grafana](https://img.shields.io/badge/grafana-%23F46800.svg?style=for-the-badge\u0026logo=grafana\u0026logoColor=white)\n![Docker](https://img.shields.io/badge/docker-%230db7ed.svg?style=for-the-badge\u0026logo=docker\u0026logoColor=white)\n![Hibernate](https://img.shields.io/badge/Hibernate-59666C?style=for-the-badge\u0026logo=Hibernate\u0026logoColor=white)\n![Apache Maven](https://img.shields.io/badge/Apache%20Maven-C71A36?style=for-the-badge\u0026logo=Apache%20Maven\u0026logoColor=white)\n\nThis project is an API built useing Quarkus, the Supersonic Subatomic Java Framework.\nIf you want to learn more about Quarkus, please visit its website: \u003chttps://quarkus.io/\u003e.\n\nA simple social network for users to send short texts and follow each other.\nContains a Users, Posts and Followers API\n\n- Java 17\n- Quarkus 3.14.2\n- H2 (tests)\n- PostgreSQL (production)\n- OpenAPI (Swagger)\n- API unit testes\n- Telemetry with Prometheus and Grafana\n\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Configuration](#configuration)\n- [Usage](#usage)\n- [API Endpoints](#api-endpoints)\n- [Contributing](#contributing)\n- [Screenshots](#screenshots)\n\n## Installation\n\n1. Clone the repository:\n\n```bash\ngit clone https://github.com/jonasfschuh/quarkus-social-network-api.git\n```\n\nNotes: \n\n\n## Configuration\n\n### Quarkus starter\nhttps://code.quarkus.io/\n\n\u003e **_NOTE:_**  Quarkus now ships with a Dev UI, which is available in dev mode only at \u003chttp://localhost:8080/q/dev/\u003e.\n\n### Packaging and running the application\n\nThe application can be packaged using:\n\n```shell script\n./mvnw package\n```\n\nIt produces the `quarkus-run.jar` file in the `target/quarkus-app/` directory.\nBe aware that it’s not an _über-jar_ as the dependencies are copied into the `target/quarkus-app/lib/` directory.\n\nThe application is now runnable using `java -jar target/quarkus-app/quarkus-run.jar`.\n\nIf you want to build an _über-jar_, execute the following command:\n\n```shell script\n./mvnw package -Dquarkus.package.jar.type=uber-jar\n```\n\nThe application, packaged as an _über-jar_, is now runnable using `java -jar target/*-runner.jar`.\n\n### Creating a native executable\n\nYou can create a native executable using:\n\n```shell script\n./mvnw package -Dnative\n```\n\nOr, if you don't have GraalVM installed, you can run the native executable build in a container using:\n\n```shell script\n./mvnw package -Dnative -Dquarkus.native.container-build=true\n```\n\nYou can then execute your native executable with: `./target/quarkus-social-network-api-1.0-runner`\n\n## Usage\n\n### Running the application in dev mode\n\n1. Start your PostgreSQL database using Docker or Local\n\n2. You can run your application in dev mode that enables live coding using:\n\n```shell script\n./mvnw compile quarkus:dev\n```\n\n## API Endpoints\n\nThe API provides the following endpoints:\n\n#### Users\n```markdown\n    GET /users - Retrieve a list of all registered users \n   POST /users - Create a new user and return the create user´s data\n    PUT /users - Update the data of an existing user based on its ID\n DELETE /users - Delete an existing user based on its ID\n```\n#### Posts\n```markdown\n    GET /users/{userId}/posts - Retrieve a list of all posts from a specific user\n   POST /users/{userId}/posts - Create a new post for a specific user\n```\n\n#### Followers\n```markdown\n    GET /users/{userId}/followers - Retrieve a list of all followers from a specific user\n    PUT /users/{userId}/followers - Add a new follower to a specific user\n DELETE /users/{userId}/followers - Delete an existed follower from a specific user \n```\n\nNOTES:\nMore details about the API endpoints can be found in the Swagger UI, which is available at \u003chttp://localhost:8080/q/swagger-ui/\u003e.\n\n\n## Contributing\n\nContributions are welcome! If you find any issues or have suggestions for improvements, please open an issue or submit a pull request to the repository.\n\nWhen contributing to this project, please follow the existing code style, [commit conventions](https://www.conventionalcommits.org/en/v1.0.0/), and submit your changes in a separate branch.\n\n## Screenshots\n\nQuarkus dev User Interface\n![](https://github.com/jonasfschuh/quarkus-social-network-api/blob/master/docs/img/dev-ui.gif?raw=true\u0026sanitize=true)\n\nAPI Tests\n![](https://github.com/jonasfschuh/quarkus-social-network-api/blob/master/docs/img/api_tests.gif?raw=true\u0026sanitize=true)\n\nSwagger-ui\n![](https://github.com/jonasfschuh/quarkus-social-network-api/blob/master/docs/img/swagger-ui.gif?raw=true\u0026sanitize=true)\n\nMetrics\n\n![](https://github.com/jonasfschuh/quarkus-social-network-api/blob/master/docs/img/metrics.gif?raw=true\u0026sanitize=true)\n\nPrometheus\n![](https://github.com/jonasfschuh/quarkus-social-network-api/blob/master/docs/img/metrics_prometheus.gif?raw=true\u0026sanitize=true)\n\nGrafana Dashboard\n![](https://github.com/jonasfschuh/quarkus-social-network-api/blob/master/docs/img/metrics_grafana.gif?raw=true\u0026sanitize=true)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonasfschuh%2Fquarkus-social-network-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjonasfschuh%2Fquarkus-social-network-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonasfschuh%2Fquarkus-social-network-api/lists"}