Skip to content

Java Entertainment is a simple object-oriented Java application that provides basic management and information services for entertainment content (movies, mini-series, and series) and their contributors (actors, directors).

License

Notifications You must be signed in to change notification settings

AthosExarchou/Java-Entertainment

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JavaEntertainment

Developed as a project for the object-oriented programming course at Harokopio University of Athens – Dept. of Informatics and Telematics, JavaEntertainment is a simple object-oriented Java application that models a small-scale entertainment management system. It allows the storage, retrieval, and evaluation of shows (movies, series, and mini-series) along with their contributors (actors and directors).
The project was designed to practice and demonstrate core OOP principles, including:

  • Encapsulation – grouping related data and methods inside classes such as Movie, Series, Actor, Director, and User.
  • Inheritance & Polymorphism – modeling relationships between shows (Series and MiniSeries extending Movie) and enabling flexible code reuse.
  • Collections & Data Structures – managing lists of genres, actors, episodes, and user ratings efficiently.
  • Object Interaction – linking entities together (e.g., users rating movies, directors associated with shows, favorite actors).
  • User Interaction & Validation – simulating administrative operations (insert/update shows) and viewer operations (search, rate, manage favorites).

Features

  • Actors & Directors
    • Store full name, date of birth, country of birth, and website
  • Movies
    • Title, year of first screening, genres (drama, comedy, thriller, romance, horror, crime, etc.), country of production, director, and associated actors
  • Series & Mini-Series
    • Inherits from Movie
    • Adds seasons, episodes per season, and last aired year (or - if still ongoing)
  • User Management
    • Register with name, email, password
    • Login (sign in) functionality
    • Rate movies and series (1–10)
    • View all personal ratings
    • Favorite actors and directors list
  • Admin Functions
    • Insert new shows, actors, and directors
    • Update shows (add actors, change seasons, episodes, etc.)
  • Search Functions
    • Search shows by title or year
    • Search actors/directors by name
    • See ratings, average scores, and favorite contributors

How to Run

  1. Clone the repository:
    git clone https://github.com/AthosExarchou/Java-Entertainment.git
    cd Java-Entertainment
  2. Open the project in your preferred IDE (e.g., IntelliJ, Eclipse, NetBeans).
  3. Compile the source files (most IDEs do this automatically).
  4. Run the Main class (usually by pressing the Run button).
  5. Follow the console prompts to interact with the application.

Example of Use

ArrayList<String> genres = new ArrayList<>();
genres.add("Drama");
genres.add("Crime");

ArrayList<Actor> actors = new ArrayList<>();
actors.add(new Actor("John Doe", "1985-06-15", "USA", "http://johndoe.com", 1));

Movie movie = new Movie(
    "The Great Mystery",
    2023,
    genres,
    "USA",
    "Jane Smith",
    actors,
    101
);

System.out.println(movie);

Output:

Id: 101
Title: The Great Mystery
Genre: [Drama, Crime]
Type: Movie
Director name: Jane Smith

Areas for Improvement

  • Database integration (JDBC, JPA, or Hibernate)
  • REST API with Spring Boot
  • Unit tests with JUnit
  • Console or GUI application
  • Improved authentication (password hashing, sessions)

Author

License

This project is licensed under the MIT License.

About

Java Entertainment is a simple object-oriented Java application that provides basic management and information services for entertainment content (movies, mini-series, and series) and their contributors (actors, directors).

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages