← Back to Projects

Cinema Scala

Academic Project

Built as part of my studies in software development

Vue.jsSpring BootOAuth2MySQLTMDB APIGoogle Authentication

About the Project

Cinema Scala is a full-stack cinema booking system that demonstrates modern web application architecture with separate frontend and backend services.

The frontend is built with Vue.js, providing a responsive and intuitive user interface for browsing movies and managing bookings. The backend is powered by Spring Boot, handling business logic, authentication, and database operations.

The application integrates with Google OAuth2 for secure user authentication and TMDB (The Movie Database) API for rich movie data and metadata.

Key Features

User Features

  • Create account and login with Google OAuth2
  • Browse available movies from TMDB
  • View movie details and showtimes
  • Book cinema tickets
  • Manage personal bookings

Admin Features

  • Access dedicated admin panel
  • Schedule movie viewings
  • Manage cinema showings
  • Configure screening times and theaters

Technical Architecture

Frontend

  • Vue.js 3 with Composition API
  • Vue Router for navigation
  • Responsive design
  • RESTful API integration

Backend

  • Spring Boot framework
  • Spring Security with OAuth2
  • MySQL database
  • RESTful API endpoints
  • JPA/Hibernate for data persistence

Authentication & APIs

  • Google OAuth2 authentication (requires Client ID & Client Secret)
  • TMDB API integration (requires Access Token)
  • Secure session management

Configuration Requirements

Note: To run this application, you need to configure:

  • Google OAuth2 Client ID and Client Secret
  • TMDB API Access Token
  • MySQL database connection

Technologies Used

Frontend

  • Vue.js 3
  • Vue Router
  • Axios
  • HTML5/CSS3

Backend

  • Java
  • Spring Boot
  • Spring Security
  • Spring Data JPA
  • MySQL

Authentication

  • OAuth2
  • Google Identity Platform
  • JWT (optional)

External APIs

  • TMDB (The Movie Database)
  • Google OAuth2 API

What I Learned

  • Implementing OAuth2 authentication flow
  • Building full-stack applications with separate frontend/backend
  • Working with external APIs (TMDB)
  • Role-based access control (user vs admin)
  • Managing application secrets and configuration
  • RESTful API design and implementation
  • Database schema design for booking systems