Небольшой учебный проект на JavaFX в тематике видеохостинга.
Делал его как практическую работу: хотел, чтобы выглядел аккуратно, запускался без танцев с бубном и при этом оставался коротким по коду.
- Главное окно с логотипом и заголовком сервиса.
- Боковая панель навигации:
- Главная
- Мои видео
- Тренды
- Подписки
- Поисковая строка (UI-часть).
- Секция Популярные видео с карточками:
- название
- автор
- статистика просмотров
- Открытие окна плеера-заглушки по клику на карточку.
- Заглушки разделов Мои видео / Тренды / Подписки.
В проекте есть несколько типов анимации, чтобы интерфейс не был статичным:
- Плавное появление карточек на главной (fade + slide).
- Подъем и легкое увеличение карточек при наведении.
- Анимация клика по карточке перед открытием плеера.
- Плавное появление/закрытие окна плеера.
- Анимированные переходы между разделами в боковой навигации.
- Небольшая анимация выбора кнопки в меню.
- Staggered-появление элементов в разделах-заглушках.
- Язык: Java
- UI: JavaFX (controls)
- Сборка: модульный проект
- Версия целевой компиляции: Java 17
В корне проекта есть скрипт run.ps1, который:
- очищает target/classes,
- компилирует проект с
--release 17, - копирует ресурсы из src/main/resources,
- запускает приложение.
Команда запуска:
powershell -ExecutionPolicy Bypass -File .\run.ps1В процессе разработки всплывали типичные проблемы JavaFX/модулей (например, несовместимость байткода и нюансы запуска). Поэтому добавил отдельный скрипт, чтобы запуск был воспроизводимым и понятным для проверки.
- src/main/java/ru/synergy/videohost/App.java — точка входа.
- src/main/java/ru/synergy/videohost/ui/MainView.java — главный интерфейс и навигация.
- src/main/java/ru/synergy/videohost/ui/PlayerDialog.java — окно плеера-заглушки.
- src/main/java/ru/synergy/videohost/model/VideoItem.java — модель карточки видео.
- src/main/resources/styles/styles.css — стили.
- run.ps1 — скрипт сборки и запуска.
- Реальный поиск по данным.
- Хранение видео и авторов в JSON/БД.
- Настоящее воспроизведение медиа.
- Авторизация пользователя.
- Фильтры и сортировка.
Если коротко: это аккуратный MVP под учебную задачу, где есть интерфейс, навигация, анимации и рабочий запуск.