Skip to content

A sample application addressing various Spring Boot features

Notifications You must be signed in to change notification settings

mbizhani/OnFood

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OnFood

A (sample) Online Food by Spring Boot!

This application addresses some technical issues and the solution in Spring Boot:

  • REST API test -> Artemis
  • Database Migration -> Liquibase
  • Security with JWT or Cookie -> SecurityTokenFilter, SecurityService, and custom SecurityAuthenticationToken
  • Handle POJO conversion (DTO to entity and vice versa) -> MapStruct & IBeanMapper
  • Store auditable information for entities -> Auditable & AuditedUser
  • Centralize exception handling for controllers (presentation) -> @ControllerAdvice
  • Document REST endpoints -> Swagger at http://localhost:8080/swagger-ui
  • Using one exception class and multiple enumeration for error emission -> OnFoodException, FoodErrorCode, and RestaurateurErrorCode
  • Advanced Search, passing an expression from front, such as following JSON -> SearchSpecification
{
  "startIndex": 1,
  "count": 4,
  "filter": {
    "operator": "And",
    "operands": [
      {
        "operator": "GreaterThan",
        "property": "price",
        "value": "50"
      },
      {
        "operator": "GreaterThanEqual",
        "property": "restaurant.rate",
        "value": "3"
      }
    ]
  },
  "sorts": [
    {
      "property": "name"
    }
  ]
}

Quick Run

Run project using test-jwt profile for using JWT as security token.

mvn clean compile spring-boot:start -Dspring-boot.run.profiles=test-jwt
mvn artemis:run
mvn spring-boot:stop

Now, run project using test-cookie profile for using cookie as security token.

mvn clean compile spring-boot:start -Dspring-boot.run.profiles=test-cookie
mvn artemis:run -DxmlName=artemis-cookie -DgroovyName=artemis
mvn spring-boot:stop

About

A sample application addressing various Spring Boot features

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published