A RESTful blog API built with Spring Boot. Currently in active development.
A personal project to build a blogging platform from the ground up. Starting with a backend API, with plans to add authentication, authorization, and a modern frontend.
What's Working:
- ✅ Basic CRUD operations for Post
- ✅ Unit tests for PostController, PostRepository, PostService with JUnit and Mockito
- ✅ Exception handling for Post
- ✅ CI pipeline using GitHub Actions
Backend:
- Java 17+
- Spring Boot 4.0.2
- Maven
Spring Boot Dependencies:
- Spring Web
- Spring Data JPA
Planned:
- PostgreSQL
- Frontend framework (TBD - Probably React)
- Post entity with CRUD operations
- User entity with CRUD operations
- User authentication with JWT bearer token
- Role-based authorization (User, Admin)
- PostgreSQL with Testcontainers for testing
- Flyway database migrations
- Category & Tag entities with admin-only management *working on this now.
- Pagination for all list endpoints
- Post filtering and search (by category, tag, author, date)
- Rate limiting
- API documentation (Swagger/OpenAPI)
- Set up React framework (Vite/Next.js)
- Public blog interface
- Homepage with post listings
- Single post view
- Category/tag filtering
- Search functionality
- Admin dashboard
- Post management (create, edit, delete, publish/draft)
- Category/tag management
- Basic analytics
- Comment system
- Like/reaction system
- Email subscription/newsletter
- User profiles
- Social sharing
- Java 17 or higher
- Maven
POST /api/v1/posts- Create new postGET /api/v1/posts- Get all postsGET /api/v1/posts/{postId}- Get post by IDPUT /api/v1/posts/{postId}- Update postDELETE /api/v1/posts/{postId}- Delete post