Skip to content
vertyllPublic

Repository files navigation

Snaptale

Project Assumptions

Short video sharing application.

Technology Stack

Back-end

  • Spring Boot.
  • Java.
  • Maven.
  • MySQL.
  • Redis.
  • Flyway.
  • JUnit.
  • Testcontainers.
  • Lombok.
  • Spring Security.
  • Spring Data JPA.
  • Spring Web.
  • Spring Session (Redis).
  • Spring Mail.

Front-end

  • Nuxt.
  • Vue.js.
  • TypeScript.
  • Tailwind CSS.

Authentication

  • Identity provider: Keycloak (realm snaptale); the application never sees a password.
  • Pattern: BFF with Spring Security's OAuth2 client; the browser holds only a session cookie.
  • Session store: Redis (Spring Session).
  • JWT: verified on every request; a client without a browser calls the API with a Bearer token.
  • Details: Authentication.

Core back-end

  • Maven build system.
  • The application has an exception handling mechanism (RFC 9457 problem details with message codes).
  • The application has a logging mechanism.
  • The application has separate environments for local and prod.
  • The application has a dedicated configuration file.
  • The application has Flyway database migration mechanism.
  • The application has ICU messages in Polish and English.
  • And many other features that can be found in the application code.

Core front-end

  • The front-end proxies /api, /media and the sign-in endpoints to the back-end.
  • The application has separate environments for local and prod.
  • Polish and English.
  • 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.
  • ESLint and Prettier for the front-end.

Documentation

  • Contents – every document in the repository, the module it belongs to, and what it covers.
  • Glossary – every term the docs use, and where it is explained.
  • Standards – the RFCs and specifications the code implements or depends on.

Preview Screenshots

Project View Project View Project View Project View Project View

Releases

Packages

Used by

Contributors

Languages