MyTube is a straightforward Java project designed to simulate a video processing system.
Below is an organized overview of the project, including its structure and key classes.
MyTube/
├── .gitignore
├── .idea/
├── MyTube.iml
├── README.md
└── src/
└── com/
└── mytube/
├── EmailService.java
├── Main.java
├── NotificationService.java
├── SqlVideoDatabase.java
├── User.java
├── Video.java
├── VideoDatabase.java
├── VideoEncoder.java
├── VideoProcessor.java
└── XVideoEncoder.java
- Responsible for sending email notifications.
- Implements the
NotificationService
interface.
- Entry point of the application.
- Creates a
Video
object, sets its properties, and processes it using aVideoProcessor
.
- Interface for services that send notifications.
- Manages the storage of video metadata.
- Implements the
VideoDatabase
interface.
- Represents a user in the system.
- Represents a video in the system.
- Properties include the file name, title, and user.
- Interface for databases that store video metadata.
- Interface for services that encode videos.
- Processes videos using a
VideoEncoder
,VideoDatabase
, andNotificationService
. - Responsible for encoding the video, storing its metadata, and notifying the user.
- Encodes videos and implements the
VideoEncoder
interface.
To run the project, execute the Main
class.