All Projects → raeperd → realworld-springboot-java

raeperd / realworld-springboot-java

Licence: MIT License
ReadWorld.io project using spring boot

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to realworld-springboot-java

action-deploy-aws-static-site
Batteries-included Github action that deploys a static site to AWS Cloudfront, taking care of DNS, SSL certs and S3 buckets
Stars: ✭ 70 (-5.41%)
Mutual labels:  github-action
spring-boot-mongodb-example
Spring Boot Using Spring Data MongoDB Example
Stars: ✭ 36 (-51.35%)
Mutual labels:  spring-data-jpa
intellij-platform-plugin-verifier-action
GitHub Action for executing the intellij-plugin-verifier
Stars: ✭ 20 (-72.97%)
Mutual labels:  github-action
Setup-Nuget
Set up your GitHub Actions workflow with the latest version of Nuget.exe CLI tool
Stars: ✭ 27 (-63.51%)
Mutual labels:  github-action
qodana-action
⚙️ Scan your Java, Kotlin, PHP, Python, JavaScript, TypeScript projects at GitHub with Qodana
Stars: ✭ 112 (+51.35%)
Mutual labels:  github-action
action-sync-node-meta
GitHub Action that syncs package.json with the repository metadata.
Stars: ✭ 25 (-66.22%)
Mutual labels:  github-action
loterias-api
API de Resultados das Loterias CAIXA
Stars: ✭ 52 (-29.73%)
Mutual labels:  spring-data-jpa
Android-CICD
This repo demonstrates how to work on CI/CD for Mobile Apps 📱 using Github Actions 💊 + Firebase Distribution 🎉
Stars: ✭ 37 (-50%)
Mutual labels:  sonarcloud
latex-action
GitHub Action to compile LaTeX documents
Stars: ✭ 123 (+66.22%)
Mutual labels:  github-action
chattery
A GitHub action that creates chatrooms for pull requests
Stars: ✭ 30 (-59.46%)
Mutual labels:  github-action
autoupdate
A GitHub Action that auto-updates pull requests branches, whenever changes are pushed to their destination branch.
Stars: ✭ 70 (-5.41%)
Mutual labels:  github-action
gha-setup-scancentral-client
GitHub Action to set up Fortify ScanCentral Client
Stars: ✭ 15 (-79.73%)
Mutual labels:  github-action
BingPicApi
Bing 每日图片 API
Stars: ✭ 58 (-21.62%)
Mutual labels:  github-action
kodlama.io-javareactcamp
Java - React Camp Works | Kodlama.io
Stars: ✭ 33 (-55.41%)
Mutual labels:  spring-data-jpa
build-godot-action
GitHub action that builds a Godot project for multiple platforms
Stars: ✭ 62 (-16.22%)
Mutual labels:  github-action
action-update-file
Update (i.e. commit and push) files on GitHub
Stars: ✭ 24 (-67.57%)
Mutual labels:  github-action
easy-java
整理java技术要点,让java更简单,更容易上手。
Stars: ✭ 23 (-68.92%)
Mutual labels:  spring-data-jpa
letterbot
Github Action 으로 만든 디스코드, 슬랙에 매일 아침 8시에 브리핑을 해주는 봇입니다
Stars: ✭ 37 (-50%)
Mutual labels:  github-action
quiplash
Quiplash replacement
Stars: ✭ 25 (-66.22%)
Mutual labels:  spring-data-jpa
spring-jpa-hibernate-mysql-example
Spring Data JPA with Hibernate using MySql Example
Stars: ✭ 24 (-67.57%)
Mutual labels:  spring-data-jpa

RealWorld example apps cover Build Lines of Code Coverage Reliability Rating License: MIT

ReadWorld.io backend project using spring boot java using spring-security, spring-data-jpa

Insprired by

Getting started

Build from scratch

$ ./gradlew build bootRun

Using docker

$ docker run --rm -p 8080:8080 ghcr.io/raeperd/realworld-spring-boot-java:master
  • Dockerhub registry is here
  • Container tags are simply branch name of this repository following git-flow strategy

How to test

After run application, you can try one of followings

using shell script

$ ./doc/run-api-tests.sh

using postman

Import ./doc/Conduit.postman_collection.json in your postman application

And also, pure gradle test covers almost every line of code.

More details can be found in ./doc/README.md and original source

Overview

Design Principal

  • Always final whenever possible
  • Always package private class whenever possible
  • Always test every package, class, method, instruction in codes
  • Try to avoid including additional dependencies as much as possible
    • Implements JWT generation / validation logic without 3rd party library #3
  • Try to maintain codes in domain package remain POJO
    • Except for special spring annotations like @Service, @Repository, @Transactional
    • Prohibit use of lombok in domain package
  • Try to follow all modern best practices for spring-boot project

Diagrams

User

realworld-User

  • Separate password encoding logic out of User.
  • User must be created with password encoder.

Article

realworld-Article

  • Article contains other elements with @Embedded classes
  • Try to reduce number of repositories.
  • Prefer @JoinTable to @JoinColumn

JWT

realworld-Jwt

  • Try not to use 3rd party library
  • Serialization and Deserialization are seperated with interfaces
  • Domain package contains interface, infrastructure code provide implementation
  • Application package do stuff with spring-security logic

Performance

performance

What can be done more

  • User class doing so many things now. It can be improved someway.
  • Service classes can be divided into smaller services
  • Test cases order can be improved

Contact

You can contact me with email or issue in this project

License

MIT License

Referenced

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].