Code Architecture - najat-mansour/task-go GitHub Wiki

The project follows the standard Spring-Boot REST APIs architecture as the following:

Production Code

  • Entities
  • DTOs (Data Transfer Objects)
  • Mappers using MapStruct dependency.
  • Constants
    • Enums
    • Other Application Constants such as URLs.
  • Exceptions
  • Utilities
    • RandomsGeneratorUtil
  • Repositories
  • Services
  • Controllers
    • Standard Controllers
    • REST Controller Advice for handling the exceptions.
  • configs
    • GlobalApiPrefixConfig
    • WebSecurityConfig
    • SwaggerConfig
    • CahceConfig
  • security
    • JwtUtil
    • AuthEntryPointJwt
    • AuthTokenFilter
  • aspects
    • LoggingAspect
  • events
    • Different Types of Events to be Published.
  • listeners
    • CacheEvictionListener

Test Code

  • Testing Repositories using DataJpaTest.
  • Testing Services using MockitoExtension.
  • Testing Controllers using MockMvc.