A full-stack blogging platform with a Spring Boot backend, PostgreSQL database, and React frontend. Supports post creation, category/tag filtering, draft management, and responsive design.
Frontend Repo: https://github.com/cenesdeveloper/blog-frontend
Frontend Live Demo: https://blog-frontend-green-five.vercel.app/
- PostgreSQL Database: Stores all blog data, including posts, categories, tags, and drafts.
- Spring Boot Backend: RESTful API for managing blog content. Includes filtering by category/tag, draft management, and secure CRUD operations for authenticated users.
- React Frontend: Responsive interface for browsing, creating, and managing blog posts. Supports category/tag filtering, draft management, and detailed post views.
- Java 17 or higher
- Node.js and npm
- PostgreSQL
- IDE (IntelliJ IDEA, Eclipse, VS Code, etc.)
- Clone this repository.
- Open the
src/main/resources/application.propertiesfile and enter your PostgreSQL database credentials. - Run the Spring Boot application.
- Clone the frontend repository.
- Run
npm installto install the necessary dependencies. - Update
vercel.jsonwith the appropriate backend API URL if needed. - Run
npm startto start the React application.
- Access the frontend via
http://localhost:3000 - Access the backend API via
http://localhost:8080
Base path: /api/v1
GET /posts— List published posts (optional filters:categoryId,tagId)GET /posts/{id}— Get a single post (drafts visible to owner)GET /posts/drafts— List drafts for logged-in userPOST /posts— Create a new post (requires category and authentication)PUT /posts/{id}— Update a post (owner/admin only)DELETE /posts/{id}— Delete a post (owner/admin only)
GET /categories— List all categoriesPOST /categories— Create a new categoryDELETE /categories/{id}— Delete a category
Note: Editing/renaming categories is not supported.
GET /tags— List all tagsPOST /tags— Create one or more tags (bulk create)DELETE /tags/{id}— Delete a tag
Note: Editing/renaming tags is not supported.