Giter Site home page Giter Site logo

vonhumbolt / blogproject Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 1.0 15.69 MB

Blog Site with Java Spring Boot

Home Page: https://blog-app-react-project.herokuapp.com

License: MIT License

Java 99.70% HTML 0.30%
java jwt postgresql spring-boot spring-data-jpa spring-security layered-architecture lombok solid-principles

blogproject's Introduction

Blog App Project

Backend codes of Blog App. This project is written by Java Spring Boot. Frontend Code of This Project is Blog-App Frontend.

Live Code is Here. Try it now! -> Blog-App

Brief

Blog app project is a website project for people who want to share knowledge with other people. In blog app, users can read and like other people's blog posts, can search and filter posts. They can also write and edit their own posts. However, users must create an account to write and update posts.If users create an account, they can view their profile page and see the posts they like. Users can filter posts by their published date and number of likes. Also, posts can be paginated by users.

Users are not required to register to view posts. Every post has a post detail page. In post detail page, users can see the whole post and the person can like the post if they want. In profile page, users can delete and edit their own posts.

Technologies

In this project's architecture, N-Layered architecture is used. There are 5 main layers in the project. This project created with Spring Boot. The project was tried to be written in accordance with SOLID principles. Dependency Injection, AOP techniques were applied. For database access, Spring Data Jpa is used. In entity classes, Lombok and Spring Validation is used. Also, For authentication and authorization, Spring Security and JWT are used.

Database of the project is PostgreSql. For sending mail processing, Spring Java Mail sender is preferred. Google Guava library preferred to easily perform list, set and map operations.

UML Diagram of Project's Entities

Layers

There are 5 main layers in the project. These are api, business, core, data access and entity.

1- Api Layer

This layer contains the controller classes of the project's entities. Controller classes makes the project accessible over the internet.

2- Business Layer

This package has 2 folders: Abstracts and Concretes. Abstracts folder contains interfaces for manager classes and dependency injection. Concretes folder contains service classes. Business codes was written in here.

3- Data Access Layer

All necessary codes for accesing database in this package. This package contains interfaces which are extends JpaRepository interface.

4- Core Layer

This package is independent of the other packages of the project. In here, there are commonly used classes and interfaces. Mail sender and security configurations were done in here. Also, generating and verifying Jwt token operations are in these package.

5- Entity Layer

Each project entity is represented in a database table. These entities and dtos classes are here.

Contact

Email: [email protected]

blogproject's People

Contributors

vonhumbolt avatar

Stargazers

Mostafa Sobhy avatar  avatar

Watchers

 avatar

Forkers

ezgigulnar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.