A RESTful API for creating, reading, and managing blog posts specifically designed for the CCSE Tutoring Center at Kennesaw State University, where I work as a tutor. Developed using Spring Boot, this REST API provides fast and secure access to all the functionalities needed to manage the tutoring center's blog.
The Blog Application Backend allows users to create, read, update, and delete posts. Each post can be tagged with a category or topic. The application supports user signup and login with password hashing for security. Additional features include pagination and sorting of posts, data validation, role-based authentication, and more. The blog is intended to post announcements concerning the tutoring center and also to post solutions and explanations to the most popular student concerns about data structures, programming concepts, and algorithm analysis.
- Spring Boot - Framework for building production-ready applications
- Maven - Dependency management and build automation
- JPA - Java Persistence API for data access
- Hibernate - ORM for data persistence
- MySQL - Relational database management
- Posts CRUD: Create, read, update, and delete blog posts.
- Users CRUD: User management including signup, login, and profile updates.
- Category CRUD: Manage categories or topics for posts.
- Comments CRUD: Add, read, update, and delete comments on posts.
- Pagination & Sorting: Efficiently paginate and sort posts.
- Role-based Authentication: Secure endpoints with role-specific access.
- Custom Exception Handling: Graceful error handling with custom exceptions.
- JWT Authentication: Secure API endpoints with JSON Web Tokens.
- DTO Pattern: Use Data Transfer Objects for better API design.
- Image Upload: Upload images to associate with posts.
- Post Searching: Search for posts by keywords.
- Data Validation: Validate data using Hibernate Validator.
- API Documentation: Comprehensive documentation with Swagger.
To get a local copy of the project up and running, follow these steps.
- Java 8 or higher
- Maven 3.6.0 or higher
- MySQL
- Clone the repository:
git clone https://github.com/atakoutene/Blog-App-REST-APIs.git
- Navigate to the project directory:
cd https://github.com/atakoutene/Blog-App-REST-APIs/edit - Update the MySQL configuration in
application.properties:spring.datasource.url=jdbc:mysql://localhost:3306/blogging_app_apis spring.datasource.username=root spring.datasource.password=superadmin123
- Build the project:
mvn clean install
- Run the application:
mvn spring-boot:run
The API documentation is available at /swagger-ui.html once the application is running. You can use tools like Postman to test the endpoints.
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
Aurelien Takou - https://www.linkedin.com/in/aurelien-takou
Project Link: https://github.com/atakoutene/Blog-App-REST-APIs