https://github.com/dimits-ts/messagingapp
A Distributed System following the Publisher - Subscriber pattern. Also includes an Android Application that acts as a client, sending and receiving messages, and a local file system for persistence.
https://github.com/dimits-ts/messagingapp
android backend-service distributed-systems filesystem messaging-app publisher-subscriber
Last synced: 8 months ago
JSON representation
A Distributed System following the Publisher - Subscriber pattern. Also includes an Android Application that acts as a client, sending and receiving messages, and a local file system for persistence.
- Host: GitHub
- URL: https://github.com/dimits-ts/messagingapp
- Owner: dimits-ts
- Created: 2022-04-09T12:30:01.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2022-09-18T13:07:15.000Z (about 3 years ago)
- Last Synced: 2024-12-27T16:40:12.292Z (10 months ago)
- Topics: android, backend-service, distributed-systems, filesystem, messaging-app, publisher-subscriber
- Language: Java
- Homepage:
- Size: 601 KB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Yammi Messaging App
## Description
A Distributed System following the Publisher - Subscriber pattern. The project also includes an Application that acts as a client, sending and receiving messages, and a local file system for persistence.

The System is initialized with N servers (possibly in different machines) which can be connected to K clients. The clients can then send text, images and videos to various Topics (conversations). The servers automatically distribute the process load among themselves.
## Project Setup
### Building the project
Execute `build.bat` or compile every `.java` file in the `src` directory
#### Run the main Server:
Execute `run_server.bat` with no arguments or run `java --class-path bin app.Server`.#### Run a secondary Server:
Secondary servers connect to the main server and are dynamically allocated Topics which they are responsible for managing.Run `run_server.bat ` or run `java --class-path bin app.Server `, where:
- `ip` and `broker_port` of the main server. These will be printed to the main server's console when it's initialized.#### Run an Android Client:
Open the project in Android Studio and execute it. There's no limit to how many clients