This project is a Blog REST API that allows users and administrators to manage and interact with blog-related entities, such as users, posts, categories, and comments. It provides endpoints for various operations including creating, updating, deleting, and retrieving these entities.
- New users can create their accounts by providing their email and password. Their passwords are securely stored using encryption.
- Users can modify their profile information, including their email address and password.
- Users have the option to delete their accounts, which will remove their data from the platform.
- Users can read and view blog posts published on the platform.
- Users can explore different categories under which blog posts are organized.
- Users can search for posts using keywords to find specific topics.
- Users can interact with blog posts by leaving comments.
- Admins can access the administrative panel by logging in with their credentials.
- Existing admins can create new admin accounts for other authorized users.
- Admins can update their own profile information, just like regular users.
- Admins have the ability to delete their own accounts.
- Admins can write and publish new blog posts to share content.
- Admins can edit existing blog posts to update or correct information.
- Admins can remove outdated or irrelevant blog posts.
- Admins can create, update, and delete categories to organize content.
- Admins can review and moderate user comments to ensure compliance with guidelines.
-
Clone this repository to your local machine. Install the required dependencies using npm install or yarn install.
-
Configure the database settings in the application.properties file.
-
Run the application using mvn spring-boot:run.
The API documentation can be accessed by running the application and visiting https://blogapi-production-b26d.up.railway.app/swagger-ui/index.html
http://localhost:8080/swagger-ui.html. This provides a user-friendly interface to interact with the API endpoints and understand their functionality.
- Spring Boot
- Spring Security
- JWT Authentication
- Spring Data JPA
- Swagger (API Documentation)
- MySQL (Database)
- Java Cryptography for password encryption
Contributions are welcome! If you find any issues or would like to add new features, please feel free to submit a pull request.
For any inquiries or feedback, please contact - satyanand807@gmail.com