Short video sharing application.
- Spring Boot.
- Java.
- Maven.
- MySQL.
- Redis.
- Flyway.
- JUnit.
- Testcontainers.
- Lombok.
- Spring Security.
- Spring Data JPA.
- Spring Web.
- Spring Session (Redis).
- Spring Mail.
- Nuxt.
- Vue.js.
- TypeScript.
- Tailwind CSS.
- 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.
- 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.
- The front-end proxies
/api,/mediaand 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.
- 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.




