Home Projects Blog Contact

Movie Streaming App with Spring Boot & Thymeleaf

🎬 Movie Streaming App with Spring Boot & Thymeleaf

Quick Preview: A comprehensive movie streaming platform that combines movie information management with video streaming capabilities, built using Spring Boot backend and Thymeleaf templating engine.

🎯 Project Overview

This full-stack movie streaming application demonstrates modern Java web development practices using Spring Boot. The application features a robust backend API for movie information management and streaming services, coupled with a dynamic frontend built with Thymeleaf templates for an engaging user experience.

Movie Streaming App

⚡ Key Features


🔍 Click to see detailed technical implementation

🛠️ Technical Architecture

Backend Stack

Frontend Stack

Key Components

// Example Movie Entity
@Entity
@Table(name = "movies")
public class Movie {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    
    @Column(nullable = false)
    private String title;
    
    @Column(length = 1000)
    private String description;
    
    private String genre;
    private Integer releaseYear;
    private Double rating;
    private String posterUrl;
    private String videoUrl;
    
    // Constructors, getters, and setters
}
// Movie Controller for API endpoints
@RestController
@RequestMapping("/api/movies")
public class MovieApiController {
    
    @Autowired
    private MovieService movieService;
    
    @GetMapping
    public ResponseEntity<List<Movie>> getAllMovies() {
        List<Movie> movies = movieService.findAll();
        return ResponseEntity.ok(movies);
    }
    
    @GetMapping("/{id}")
    public ResponseEntity<Movie> getMovieById(@PathVariable Long id) {
        Movie movie = movieService.findById(id);
        return ResponseEntity.ok(movie);
    }
    
    @GetMapping("/search")
    public ResponseEntity<List<Movie>> searchMovies(@RequestParam String query) {
        List<Movie> movies = movieService.searchByTitle(query);
        return ResponseEntity.ok(movies);
    }
}

🎨 Frontend Features

Thymeleaf Templates

User Interface Components

  1. Movie Catalog

    • Grid layout with movie posters
    • Hover effects and movie details
    • Pagination for large movie collections
    • Category-based filtering
  2. Movie Details Page

    • Comprehensive movie information display
    • Embedded video player
    • User ratings and reviews
    • Related movies suggestions
  3. Search Functionality

    • Real-time search suggestions
    • Advanced filtering options
    • Search result highlighting
    • Search history tracking
  4. Video Streaming

    • HTML5 video player integration
    • Multiple video quality options
    • Playback controls and progress tracking
    • Fullscreen and theater mode

🔧 API Endpoints

Movie Information API

Streaming API

🚀 Performance Features

🛡️ Security Implementation


🚀 Getting Started

Prerequisites

Installation Steps

  1. Clone the Repository:

    git clone https://github.com/amrelharti/movapp.git
    cd movapp
  2. Build the Application:

    mvn clean install
  3. Run the Application:

    mvn spring-boot:run
  4. Access the Application:

    • Open your browser and navigate to http://localhost:8080
    • The H2 database console is available at http://localhost:8080/h2-console

🎯 Technical Skills Demonstrated

Spring Boot Framework - Modern Java web development
RESTful API Design - Clean and scalable API architecture
Thymeleaf Templating - Server-side rendering and dynamic content
Database Integration - JPA/Hibernate for data persistence
Security Implementation - Authentication and authorization
Full Stack Development - End-to-end application development

🔮 Future Enhancements


Interested in Spring Boot development or building streaming applications? Let’s discuss how modern Java frameworks can power your next web application!