An open API service indexing awesome lists of open source software.

https://github.com/dmamakas2000/tiktok-java-app

This project implements a multimedia content sharing system in Java 8, allowing users to upload and stream videos to their subscribers. Inspired by platforms like TikTok, it manages user channels, subscriptions, and real-time video streaming, developing the event delivery system for efficient content promotion.
https://github.com/dmamakas2000/tiktok-java-app

broker client-server distributed-systems java java-8 multimedia tika video-streaming

Last synced: 7 months ago
JSON representation

This project implements a multimedia content sharing system in Java 8, allowing users to upload and stream videos to their subscribers. Inspired by platforms like TikTok, it manages user channels, subscriptions, and real-time video streaming, developing the event delivery system for efficient content promotion.

Awesome Lists containing this project

README

          

# TikTok Video Streaming Platform: A Distributed Broker-Client Java Application :iphone: :video_camera: :family:


## πŸ“’NoteπŸ“’
🎯Please, clone this repository before reading the description. Don't forget to likeπŸ‘and share your thoughts😊.


## About
This project demonstrates a multimedia content-sharing system developed as part of a course assignment, inspired by popular video-sharing platforms like TikTok and Instagram. Built using [#Java 8](https://www.java.com/en/), the system allows users to upload and share videos with their subscribers via a streaming mechanism. The core functionality includes managing user channels, and subscriptions, and streaming video content efficiently to multiple recipients. The system intelligently delivers content to interested subscribers in real time, ensuring seamless video viewing as soon as it becomes available. This project also serves as an introduction to video streaming concepts and Android development. The implementation is divided into two phases, with the first phase (current project) focusing on building the event delivery framework for video streaming. This version of the system supports the operation of three Brokers (servers), and two or more AppNodes (users).

## Execution
Detailed instructions follow that guide the user step-by-step.

1. Run the ```compile.bat``` file by double-clicking on the projects directory.Β 
1. Double-click the ```runBroker.bat``` file. Repeat the step two more times to create three Brokers in total.
1. Double-click the ```runAppNode.bat``` file. Repeat the step one more time to create two AppNodes in total.

You can now use the application by choosing between 6 different functions for AppNodes, and experiment with operations like uploading videos, adding, removing hashtags, etc.

## Execution Tips
We provide essential tips to ensure a correct and comfortable execution of our application.

### Brokers
When using the application, to avoid possible complications, we suggest the Broker IDs along with their ports be given in increments, like the example shown below.

```
Broker1
id: 1
ip: localhost
port: 3030

Broker2
id: 2
ip: localhost
port: 4040

Broker3
id: 3
ip: localhost
port: 5050
```

### AppNodes
We suggest using the project's parent directory to save the videos you want to experiment with. An example follows.

```
-tiktok-java-app
|_ jars
|_ src
|_ info
|_ .claspath
|_ .project
|_ README.md
|_ video.mp4
|_ anotherVideo.mp4

```
## Directory Structure
```
tiktok-java-app/
β”‚
β”œβ”€β”€ jars/ # JAR files for dependencies and compiled code
β”‚
β”œβ”€β”€ src/ # Source code for the application
β”‚ β”œβ”€β”€ main/ # Core application logic
β”‚ β”œβ”€β”€ test/ # Unit tests
β”‚ └── resources/ # Configuration and additional resources
```

## License
This project is licensed under the **MIT License** - see the **[LICENSE](LICENSE)** file for details.