{"id":26219777,"url":"https://github.com/sewery/pubber-rest-api","last_synced_at":"2026-05-18T00:04:24.678Z","repository":{"id":188794629,"uuid":"679437839","full_name":"Sewery/pubber-rest-api","owner":"Sewery","description":"Part of Pubber project REST API for managing pubs data using Spring Boot in Java","archived":false,"fork":false,"pushed_at":"2025-03-09T18:57:46.000Z","size":799,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-18T01:16:41.684Z","etag":null,"topics":["java","rest-api","spring-boot"],"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/Sewery.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,"zenodo":null}},"created_at":"2023-08-16T21:02:44.000Z","updated_at":"2025-03-09T18:57:49.000Z","dependencies_parsed_at":"2025-03-09T19:39:23.071Z","dependency_job_id":null,"html_url":"https://github.com/Sewery/pubber-rest-api","commit_stats":null,"previous_names":["sewery/pubber-rest-api"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Sewery/pubber-rest-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sewery%2Fpubber-rest-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sewery%2Fpubber-rest-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sewery%2Fpubber-rest-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sewery%2Fpubber-rest-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Sewery","download_url":"https://codeload.github.com/Sewery/pubber-rest-api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sewery%2Fpubber-rest-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33160167,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-17T22:39:12.733Z","status":"ssl_error","status_checked_at":"2026-05-17T22:39:10.741Z","response_time":107,"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":["java","rest-api","spring-boot"],"created_at":"2025-03-12T14:19:37.522Z","updated_at":"2026-05-18T00:04:19.670Z","avatar_url":"https://github.com/Sewery.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pubber REST API\nThe Pubber REST API is part of the [Pubber project](https://github.com/OverMighties/pubber),  platform designed to help users discover and explore their favorite pubs in nearby locations.\nThis repository is reposnible for the backend REST API, which handles pub management and data access. It provides:\n* **Secure Admin Endpoints:** For managing pub data, including creation, updates, and deletion.\n* **Public Data Access:** For users to retrieve pub information for their searches.\n## Summary\nThe REST API for sharing and managing pub informations shares data about:\n- Pub details\n- Drinks \u0026 drinks styles\n- Opening hours of pubs\n- Tags \u0026 photos\nBuilt with Spring Boot in Java using JPA for database connection and OpenAPI for documentation.\n## Development environment\n### Toolchain:\n- IntelliJ IDEA\n- Gradle build system\n- Docker (for local MySQL instance)\n### Database configuration \n- Production - Mysql (configure via environment variables)\n- Testing - H2 in-memory database\n- Local Development (dev profile)- use included docker-compose.yml file to run MySQL server locally\n## API  documentation\nDocumentation is automatically generated by OpenApi and is available at:\n``\nhttp://{YOUR_HOST}:{YOUR_PORT}/edit/swagger-ui/index.html\n``\n## Application architecture\n### Security Model\n- Public Endpoints (/pubs/**): Read-only access to pub details, Available without authentication\n- Admin Endpoints (All other routes): Basic authentication required\n### Used programming techniques\n- DTO Separation \n  - clientdto - for public access\n  - editdto - for admin in order to make easier access and modification of data\n- Validation \n- Error Handling \n- Controller-service-repository pattern\n- Integration tests (for now not working)\n### Database diagram\nDatabase is hosted in RDS server in AWS.\n![Screenshot showing Database Diagram](docs/database-diagram.png \"Screenshot showing Database Diagram\")\n\n## Configuration \nTo run application in production profile, set up following environment variables:\n```\nDB_URL=jdbc:mysql://localhost:3306/Pubber\nDB_USER=root\nDB_PASSWORD=securepassword\nAPP_USERNAME=admin\nAPP_PASSWORD=secret\n```\nIt is also possiblity to run in develepoment profile. For this .env file is not needed.\nRun Docker Compose file, then execute Spring Boot application using IntelliJ IDEA.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsewery%2Fpubber-rest-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsewery%2Fpubber-rest-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsewery%2Fpubber-rest-api/lists"}