Skip to content

DawydowGerman/java-filmorate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

233 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

java-filmorate

A Spring Boot service for managing films rates, user reviews, and recommendations.

Java Spring Boot Maven PostgreSQL H2

Features

Core Functionality

  • Film Management
    • CRUD operations, and validation
    • Metadata handling (MPA ratings, genres, directors), and cross-validation
    • Multi-criteria search
    • Filtering based on popularity and common interests
  • User Interactions
    • User registration and profile management
    • Friendship system (add/remove friends, view mutual friends)
    • Like/dislike films and reviews
    • Personalized film recommendations
  • Review System
    • Post and manage film reviews
    • Like/dislike reviews to affect usefulness score
    • View reviews for specific films and all reviews

Storage Options

  • Database Support
    • PostgreSQL for production
    • H2 in-memory database for testing
  • Flexible Data Access
    • JdbcTemplate for database operations
    • In-memory storage classes for testing

REST API

  • Comprehensive endpoints for all entities
  • JSON request/response format
  • Proper HTTP status codes, error handling, and validation

Additional Features

  • Event feed tracking user activities
  • Director management system, and common films between friends
  • Film recommendations based on user preferences

Getting Started

Prerequisites

  • Java 21 or later
  • Maven 3.6 or later
  • PostgreSQL 17.4 or later (optional, for production)
  • Docker 27.4.0 or later (optional, for containerized deployment)

Clone the Repository

git clone git@github.com:DawydowGerman/java-filmorate.git
cd java-filmorate

Build with Maven

mvn clean package

Run the Application

  • Option 1: With H2 (default)

    mvn spring-boot:run
  • Option 2: With PostgreSQL Update application-prod.properties with your PostgreSQL credentials

    mvn spring-boot:run -Dspring.profiles.active=prod
  • Option 3: With Docker

    docker-compose up --build

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages