Skip to content

Latest commit

 

History

History
76 lines (65 loc) · 2.47 KB

File metadata and controls

76 lines (65 loc) · 2.47 KB

Project Assumptions

Production management application.

Technology Stack

Back-end:

  • Spring Boot
  • Java
  • Gradle Kotlin DSL
  • JDBC
  • JPA
  • Hibernate
  • PostgreSQL
  • JUnit
  • Mockito
  • Lombok
  • Spring Security
  • Spring Data
  • Spring Web
  • Spring Mail
  • Flyway
  • OpenAPI (Swagger)

Front-end:

  • Vaadn (Java-only(Flow))
  • Spring Boot
  • Java
  • Gradle Kotlin DSL
  • JUnit
  • Mockito
  • Lombok
  • Spring Web

Authentication:

  • JWT-based authentication – the application uses JWT tokens for user authentication and includes token refresh mechanism (http only secure cookie)
  • the application allows login on multiple devices simultaneously

Core back-end:

  • Gradle multi module build system
  • the application has an exception handling mechanism
  • the application has a logging mechanism
  • the application has an email sending mechanism
  • the application has a scheduled task handling mechanism (cron)
  • the application has separate environments for dev and prod
  • the application has a dedicated configuration file
  • the application has RBAC (Role Based Access Control)
  • the application has an audit mechanism (who and when modified data)
  • the application has Flyway database migration mechanism
  • and many other features that can be found in the application code

Core front-end:

  • Gradle build system
  • Vaadin
  • the application has separate environments for dev and prod
  • the application has a dedicated configuration file
  • and many other features that can be found in the application code

Other:

  • Docker for development environment
  • PMD for static code analysis
  • SpotBugs for static code analysis
  • JSpecify for null-safety annotations
  • NullAway for null-safety checks
  • Error Prone for static code analysis
  • Spotless for code formatting

Note: During application development, SOLID principles, DRY, composition over inheritance, dependency injection, design patterns, architectural patterns were applied, tests were written, and other good programming practices were adopted.

Preview Screenshots

Project View Project View Project View Project View