{"id":28944032,"url":"https://github.com/arkenidar/just-blog","last_synced_at":"2026-05-16T18:05:27.358Z","repository":{"id":300577687,"uuid":"1006492391","full_name":"arkenidar/just-blog","owner":"arkenidar","description":"[AI] [Java] Claude Sonnet 4 agent for Spring-based \"Java web-app\" about \"blogging\"","archived":false,"fork":false,"pushed_at":"2025-06-22T14:03:52.000Z","size":26,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-22T14:36:29.524Z","etag":null,"topics":["blog","java","spring"],"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/arkenidar.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":"2025-06-22T11:53:34.000Z","updated_at":"2025-06-22T14:03:55.000Z","dependencies_parsed_at":"2025-06-22T14:49:09.517Z","dependency_job_id":null,"html_url":"https://github.com/arkenidar/just-blog","commit_stats":null,"previous_names":["arkenidar/just-blog"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/arkenidar/just-blog","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arkenidar%2Fjust-blog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arkenidar%2Fjust-blog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arkenidar%2Fjust-blog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arkenidar%2Fjust-blog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arkenidar","download_url":"https://codeload.github.com/arkenidar/just-blog/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arkenidar%2Fjust-blog/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261417626,"owners_count":23155086,"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":["blog","java","spring"],"created_at":"2025-06-23T05:17:07.170Z","updated_at":"2025-09-21T23:34:12.081Z","avatar_url":"https://github.com/arkenidar.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Just Blog\n\nA simple and elegant blog application built with Spring Boot, featuring a clean web interface and RESTful API.\n\n## Features\n\n- 📝 Create, read, update, and delete blog posts\n- 🌐 Web interface with responsive design\n- 🔌 REST API endpoints for programmatic access\n- 🗄️ H2 in-memory database for development\n- 🎨 Modern UI with Bootstrap 5\n- 🔄 Hot reload for development\n- 📊 H2 console for database management\n\n## Tech Stack\n\n- **Java 17** - Programming language\n- **Spring Boot 3.2.0** - Application framework\n- **Spring Data JPA** - Data persistence\n- **Thymeleaf** - Template engine\n- **H2 Database** - In-memory database\n- **Bootstrap 5** - CSS framework\n- **Maven** - Build tool\n\n## Getting Started\n\n### Prerequisites\n\n- Java 17 or higher\n- Maven 3.6 or higher\n\n### Installation\n\n1. Clone the repository:\n\n   ```bash\n   git clone \u003crepository-url\u003e\n   cd just-blog\n   ```\n\n2. Build the project:\n\n   ```bash\n   mvn clean install\n   ```\n\n3. Run the application:\n\n   ```bash\n   mvn spring-boot:run\n   ```\n\n4. Open your browser and navigate to:\n   - Web interface: http://localhost:8080\n   - H2 Console: http://localhost:8080/h2-console\n\n### H2 Database Configuration\n\nWhen accessing the H2 console, use these settings:\n\n- **JDBC URL**: `jdbc:h2:mem:blogdb`\n- **Username**: `sa`\n- **Password**: (leave empty)\n\n## API Endpoints\n\n### REST API\n\n| Method | Endpoint                        | Description           |\n| ------ | ------------------------------- | --------------------- |\n| GET    | `/api/posts`                    | Get all blog posts    |\n| GET    | `/api/posts/{id}`               | Get a specific post   |\n| POST   | `/api/posts`                    | Create a new post     |\n| PUT    | `/api/posts/{id}`               | Update a post         |\n| DELETE | `/api/posts/{id}`               | Delete a post         |\n| GET    | `/api/posts/search?title=query` | Search posts by title |\n| GET    | `/api/posts/author/{author}`    | Get posts by author   |\n\n### Web Interface\n\n| Route        | Description              |\n| ------------ | ------------------------ |\n| `/`          | Home page with all posts |\n| `/post/{id}` | View a specific post     |\n| `/new`       | Create a new post        |\n| `/edit/{id}` | Edit an existing post    |\n\n## Sample API Usage\n\n### Create a new post:\n\n```bash\ncurl -X POST http://localhost:8080/api/posts \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"title\": \"My New Post\",\n    \"content\": \"This is the content of my new post.\",\n    \"author\": \"John Doe\"\n  }'\n```\n\n### Get all posts:\n\n```bash\ncurl http://localhost:8080/api/posts\n```\n\n### Search posts by title:\n\n```bash\ncurl \"http://localhost:8080/api/posts/search?title=spring\"\n```\n\n## Development\n\n### Running Tests\n\n```bash\nmvn test\n```\n\n### Building for Production\n\n```bash\nmvn clean package\njava -jar target/just-blog-1.0.0.jar\n```\n\n### Development Mode\n\nThe application includes Spring Boot DevTools for automatic restart during development. Simply save your changes and the application will restart automatically.\n\n## Project Structure\n\n```\nsrc/\n├── main/\n│   ├── java/com/example/justblog/\n│   │   ├── JustBlogApplication.java     # Main application class\n│   │   ├── model/\n│   │   │   └── BlogPost.java            # Blog post entity\n│   │   ├── repository/\n│   │   │   └── BlogPostRepository.java  # Data access layer\n│   │   ├── service/\n│   │   │   └── BlogPostService.java     # Business logic\n│   │   ├── controller/\n│   │   │   ├── BlogPostController.java  # REST API controller\n│   │   │   └── WebController.java       # Web interface controller\n│   │   └── config/\n│   │       └── DataInitializer.java     # Sample data setup\n│   └── resources/\n│       ├── application.properties       # Configuration\n│       └── templates/                   # Thymeleaf templates\n│           ├── index.html\n│           ├── post.html\n│           ├── new-post.html\n│           └── edit-post.html\n└── test/\n    └── java/com/example/justblog/\n        └── JustBlogApplicationTests.java\n```\n\n## Configuration\n\nThe application can be configured through `application.properties`:\n\n- `server.port` - Change the server port (default: 8080)\n- `spring.datasource.*` - Database configuration\n- `spring.jpa.*` - JPA/Hibernate settings\n- `spring.h2.console.enabled` - Enable/disable H2 console\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes\n4. Add tests for new functionality\n5. Submit a pull request\n\n## License\n\nThis project is open source and available under the [MIT License](LICENSE).\n\n## Sample Data\n\nThe application comes with sample blog posts to help you get started. These are created automatically when the application starts and the database is empty.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farkenidar%2Fjust-blog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farkenidar%2Fjust-blog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farkenidar%2Fjust-blog/lists"}