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