Movies and Series Management Software

Overview

A desktop application for managing a personal movie and TV series collection, built as the final project for my course at the ATARI city campus. Although assigned as a group project, I developed the entire application independently as a challenge to test my own skills. The project assignment subject for our group changed later, and this version was never formally presented.

The application was written entirely in Java using JavaFX with JFoenix Material Design components for a polished dark-themed UI. MySQL serves as the backend database, with poster images stored directly as BLOBs. The UI layouts were designed visually using Scene Builder (FXML), and the project was managed with NetBeans IDE and built via Apache Ant.

Features

Movie Management

Full CRUD operations for movies and TV series with auto-generated IDs. Each entry stores a name, category, description, and an IMDB rating validated between 0 and 10. Relational selectors let you assign a franchise, producer, and studio to each title.

Poster images can be loaded via a FileChooser dialog or by pasting a URL directly. Images are stored as binary BLOBs in the MySQL database, keeping the collection self-contained without external file dependencies.

Material Design UI

The interface is built with JFoenix components that bring Google's Material Design language to JavaFX. Custom confirmation and error dialogs use JFXDialog with a blurred background overlay and color-coded headers for clear visual feedback.

A fully custom dark CSS theme with a #2A2E37 background and green accent colors creates a modern, comfortable viewing experience. Interactive elements feature animated icon transitions and ripple effects throughout the application.

Search & Browse

Movies and TV series are displayed in an alphabetical sidebar list. Selecting a title reveals its poster image (scrollable and zoomable), along with metadata including IMDB rating, category, franchise, producer, and studio in a dedicated detail panel.

A dedicated Search tab provides real-time keyword filtering using JFXTreeTableView, displaying results in a sortable table with columns for ID, Name, IMDB Rating, Category, Franchise, Producer, and Studio.

Architecture

UI Design

All UI layouts were created visually using JavaFX Scene Builder, producing FXML files that cleanly separate layout from logic. The main window uses a nested TabPane architecture with dedicated tabs for movie browsing, TV series browsing, search, and management operations.

Project Structure

The codebase follows a clean separation of concerns with distinct layers: model classes (Movie, Franchise, Producer, Studio, Actor), UI controllers bound to FXML views, database helpers for MySQL queries, and coding utilities including a singleton DB connection manager and RecursiveTreeItem pattern for hierarchical table views.

Database

MySQL Schema

The application uses a MySQL relational database with a normalized schema. The core movies table stores ID, name, description, IMDB rating, category, and poster image as a binary BLOB, along with foreign keys to supporting tables: franchises, producers, and studios — each with their own ID, name, and description fields. The studios table additionally tracks a founding date. Model classes for actors, characters, and fans also exist in the codebase for future expansion.

A first-run setup wizard guides the user through MySQL connection configuration — host, port, username, and password — and persists the credentials as JSON in a local config.txt file. The singleton connection manager (MyConn) reads this configuration on startup, establishing a single shared database connection for all operations throughout the application lifecycle.

Technology Stack

JavaJavaFXJFoenixMySQLScene BuilderNetBeans IDEApache AntCSS

Nuwantha Kumara

Mechanical Engineering student passionate about software development, simulations, and creating impactful solutions.

Connect

© 2026 Nuwantha Kumara. All rights reserved.

Built withNext.js