Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/riturajnagar/blogging_application

Client wants blogging application where he/she can write blogs and articles. User can comment on the blogs/articles.
https://github.com/riturajnagar/blogging_application

date hibernate java lombok maven modelmapper mysql orm spring-boot springdata-jpa springsecurity-jwt sts-code-platform swagger-ui

Last synced: 5 days ago
JSON representation

Client wants blogging application where he/she can write blogs and articles. User can comment on the blogs/articles.

Awesome Lists containing this project

README

        

# Blog Application

This project is developed by individual with the help of the Spring-Boot framework.It is Back-End project build in 4 working days.
It contained all the basic CRUD operation related to different entity.

## Contributors (Individual Project)
- [@Rituraj](https://github.com/riturajnagar)

## Tech Stack and Tools
- Java
- Spring Boot Framework
- Spring Data JPA
- Hibernate
- MySQL
- Swagger
- Lombok
- Postman Rest Client (API Testing)
- Maven ORM
- Apache Tomcat Server (Embedded server in SpringBoot App)
- STS
- Git & Github

## Modules
- User Module
- Post Module
- Category Module
- Comment Module

## ER Diagram
![img](https://github.com/riturajnagar/Blogging_Application/blob/main/blog_application/src/main/resources/templates/blogapperdiagram.png)

## User Module :
- user should create, update, delete and list posts
- new user should able to register on our application

![img](https://github.com/riturajnagar/Blogging_Application/blob/main/blog_application/src/main/resources/templates/UserController.png)

## Categories Module :
- categories the posts according to categories
- user can fetch one specific category or list of categories.
- user can delete and update the category.

![img](https://github.com/riturajnagar/Blogging_Application/blob/main/blog_application/src/main/resources/templates/CategoryController.png)

## Post Module :
- user can fetch posts using user Id or category Id or post Id
- user can fetch all posts
- user can delete and update the post
- posts API includes pagination and sorting
- you can search posts using keyword.
- posts include one image too.
- user can get the specific image also.

![img](https://github.com/riturajnagar/Blogging_Application/blob/main/blog_application/src/main/resources/templates/PostController.png)

## Comment Module :
- user shoud add, update, delete comments on posts.

![img](https://github.com/riturajnagar/Blogging_Application/blob/main/blog_application/src/main/resources/templates/CommentController.png)

## Architecture

Layered Architecture
- Structure (Controller -> API Layere -> Service -> Business Logic -> Repositories -> DAO Layer (Data Access))
![img](https://github.com/riturajnagar/Blogging_Application/blob/main/blog_application/src/main/resources/templates/layered%20Architecture.png)

User interaction layer:
- This is the layer that interacts with users through screens, forms, menus, reports, etc.
- It defines how the application looks.

Functionality layer:
- This is the layer that presents the functions, methods, and procedures of the system based on the business rules layer

Business rules layer:
- This layer contains rules that determine the behavior of the whole application, such as, “If an invoice is printed, then send an email to the customer, select all items sold, and decrease their stock in the stock management module.”

Application core layer:
- This server contains the main programs, code definitions, and basic functions of the application.
- Programmers work in this layer most of the time.

Database layer:
- This layer contains the tables, indexes, and data managed by the application.
- Searches and insert/delete/update operations are executed here.

### 👉 [Click here](http://localhost:7898/swagger-ui/index.html#/) to go through documentation after running application in your system


## Installation & Run
- To run this API server, you should update the database configuration inside the application.properties file which is present in the src/main/resources folder.
- Update the port number, username and password as per your local database configuration.
server.port=7898
spring.datasource.url=jdbc:mysql://localhost:3306/blog_app;
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=enter_username
spring.datasource.password=enter_password
```
## API Root Endpoint
```
https://localhost:7898/
```

##