/CinemaSpringBoot

Web development with spring stack (extension of FWA and Cinema)

Primary LanguageJava

Status

Wait for my teammate to finish front. I will add screenshots later

CinemaSpringBoot

This is a site for movie theater, union of my two previous projects (FWA and Cinema).

  • Now users has roles
  • remember-me functionality which can be enabled on signIn page
  • site has two languages (Russian and English)
  • backend validation for signUp page with errors for each field
  • email verification for new users

In this project we use:

  • Spring Controllers
  • Spring security
  • Hibernate with Spring Data Jpa (with custom repos. to solve n+1 problem)
  • Ajax-requests for live search on films page
  • Spring Websockets for chats
  • JavaMailSender
  • FreeMarker as template engine.

Launch

Manual

You need to create an empty database in postgres.

Go to ex02 folder and write your credentials in application.properties file and change path to folder where images will be stored.

Then you can just use the following command to run the application

./mvnw clean spring-boot:run

Docker

Just go to docker folder and run it with the following command

docker compose up --build

Voilà

Now website available at localhost:8080. You can access it through ADMIN account (email - admin@admin.com pass - 123QWEasd) Or you can create new account, it will send an email on address that you provide, but not really, actually email will be available on this website. You need to put following credentials to get it

marlee22@ethereal.email
8cfTXwDVZGDP62mVZq

Then just click on the link in the email

Available mappings:

  • /, /signIn, /signUp
  • /profile
  • /admin/panel/films (ADMIN only, create film)
  • /admin/panel/halls (ADMIN only, create hall)
  • /admin/panel/sessions (ADMIN only, create session with available hall and film)
  • /sessions (search available sessions with live search by name of the film)
  • /sessions/{id} (info about particular session)
  • /films (list of all films)
  • /films/{id} (info about particular film)
  • /films/{id}/chat (multiuser chat about particular film)