{"id":21357572,"url":"https://github.com/sivaprasadreddy/spring-blog","last_synced_at":"2025-07-13T00:33:00.743Z","repository":{"id":262732979,"uuid":"887967189","full_name":"sivaprasadreddy/spring-blog","owner":"sivaprasadreddy","description":"Blogging platform using Java and Spring Boot","archived":false,"fork":false,"pushed_at":"2024-11-21T05:03:17.000Z","size":143,"stargazers_count":7,"open_issues_count":15,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-11-21T06:18:16.016Z","etag":null,"topics":["docker","docker-compose","flyway","java","maven","postgresql","spring-boot","spring-data-jpa","testcontainers","thymeleaf"],"latest_commit_sha":null,"homepage":"","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/sivaprasadreddy.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":"2024-11-13T15:32:36.000Z","updated_at":"2024-11-21T05:03:21.000Z","dependencies_parsed_at":null,"dependency_job_id":"4c94c1aa-12df-43af-a090-5a0b80fd57ed","html_url":"https://github.com/sivaprasadreddy/spring-blog","commit_stats":null,"previous_names":["sivaprasadreddy/spring-blog"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sivaprasadreddy%2Fspring-blog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sivaprasadreddy%2Fspring-blog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sivaprasadreddy%2Fspring-blog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sivaprasadreddy%2Fspring-blog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sivaprasadreddy","download_url":"https://codeload.github.com/sivaprasadreddy/spring-blog/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225844821,"owners_count":17533161,"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":["docker","docker-compose","flyway","java","maven","postgresql","spring-boot","spring-data-jpa","testcontainers","thymeleaf"],"created_at":"2024-11-22T05:08:06.193Z","updated_at":"2025-07-13T00:33:00.728Z","avatar_url":"https://github.com/sivaprasadreddy.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Spring-Blog\nA blogging platform using Java and Spring Boot.\n\n## Prerequisites\n* JDK 24\n* Docker and Docker Compose\n* Your favourite IDE (Recommended: [IntelliJ IDEA](https://www.jetbrains.com/idea/))\n\nInstall JDK, Maven using [SDKMAN](https://sdkman.io/)\n\n```shell\n$ curl -s \"https://get.sdkman.io\" | bash\n$ source \"$HOME/.sdkman/bin/sdkman-init.sh\"\n$ sdk install java 24.0.1-tem\n$ sdk install maven\n```\n\n**Verify the prerequisites**\n\n```shell\n$ java -version\n$ docker info\n$ docker compose version\n```\n\n## Tech Stack:\n* Java\n* Spring Boot\n* Spring JdbcClient\n* Spring Security\n* PostgreSQL\n* Flyway\n* Thymeleaf\n* JUnit 5\n* Testcontainers\n* Docker, Docker Compose\n\n## Features\n* Home Page: Display a list of posts in createdDate desc order with pagination\n* Search Posts\n* Post Details View\n* Add Comment to a Post\n* Admin - Login\n* Admin - Create a new Post using Markdown\n* Admin - Edit existing Post\n* Admin - Delete a Post\n* Admin - Delete comment(s)\n\n## How to?\n\n### Run Unit / Integration Tests\n\n```shell\n$ ./mvnw verify\n```\n\n### Format code\nYou can format the code automatically using [spotless-maven-plugin](https://github.com/diffplug/spotless/blob/main/plugin-maven/README.md)\n\n```shell\n$ ./mvnw spotless:apply // to formatting code automatically\n$ ./mvnw spotless:check // to verify the code formatting\n```\n\n### Run application locally\nWe can use Docker Compose or Testcontainers to start the dependent services like database, mail server, etc.\n\nTo start the application using docker-compose:\n\n```shell\n$ ./mvnw spring-boot:run\n```\n\nTo start the application using [Testcontainers](https://testcontainers.com/):\n\n```shell\n$ ./mvnw spring-boot:test-run\n```\n\nThe application is accessible at http://localhost:8080/.\n\n## How to contribute?\n* If you find this project interesting, fork/clone it, run the application and provide feedback.\n* If you find any bugs or have suggestions for improvement, then please file an issue.\n* Of course, Pull Requests are most welcome.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsivaprasadreddy%2Fspring-blog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsivaprasadreddy%2Fspring-blog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsivaprasadreddy%2Fspring-blog/lists"}