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