← Back to Projects

Cinema Scala

Academic Project

Built as part of my studies in software development

Vue.jsSpring BootOAuth2MySQLTMDB API

About the Project

Cinema Scala is a full-stack cinema booking system built to demonstrate a modern web application split into separate frontend and backend services. Vue.js drives the booking interface, Spring Boot handles business logic and authentication, and the movie catalogue comes from the TMDB API with Google OAuth2 for sign-in.

Key Features

User Features

  • Create an account and sign in with Google OAuth2
  • Browse movies and showtimes from TMDB
  • Book cinema tickets and manage personal bookings

Admin Features

  • Dedicated admin panel
  • Schedule movie viewings
  • Configure screening times and theaters

Technical Architecture

Frontend

  • Vue.js with the Composition API
  • Vue Router for navigation
  • RESTful API integration

Backend

  • Spring Boot REST endpoints
  • Spring Security with OAuth2
  • JPA/Hibernate on MySQL

Authentication & APIs

  • Google OAuth2 identity
  • TMDB movie metadata
  • Secure session management
Configuration: Running the application locally requires Google OAuth2 client credentials, a TMDB access token and a MySQL connection.

What I Learned

  • Implementing the OAuth2 authorisation flow
  • Splitting a full-stack app into separate frontend and backend services
  • Integrating a third-party API (TMDB)
  • Role-based access control for user versus admin
  • Designing a database schema for a booking system