BPC Cinema

It is a simple website for searching for movies and adding them to your watchlist(collection).

Main goal of this project is to enhance my knowledge of main Spring Framework modules.

Technologies

Java

PostgresBootstrap

  • Spring MVC
  • Spring Security(component-based security configuration)
  • Spring WebFlux
  • Lombok
  • Spring Data JPA
  • PostgreSQL
  • Themeleaf
  • Bootstrap

Important features

  • Two authentication methods:
  • Basic username password
  • OAuth2 simple sign-on with GitHub as a provider (user data is being saved to database)
  • They work in parallel so user can get authenticated for reaching every secured endpoint (except admin dashboard) with one or another method. This was achieved by configuring two different security filter chains and placing them in right order.
  • Movie data loading using WebFlux webСlient
  • web client is a modern alternative to RestTemplate with async request support
  • API used: filmApi.baseUrl=http://www.omdbapi.com/
  • Users can add movies they liked to their collection (Many to many relationship)
  • Admin dashboard with ability to delete users and movies from database
  • cascade was configured in a way that when user is deleted movies related to them stay in a database