2020-07-18 15:58:39 +02:00
|
|
|
# Envoy
|
2020-09-16 22:28:56 +02:00
|
|
|
|
|
|
|
<img src="https://git.kske.dev/repo-avatars/33-31e14133097b01b748ab361e3c3adb47" style="display: block" width="150" height="150">
|
|
|
|
|
|
|
|
Envoy is a messenger written in Java.
|
|
|
|
On this page, the project is explained for different user groups.
|
|
|
|
|
|
|
|
## Regular User
|
|
|
|
|
|
|
|
To use Envoy to join an existing server, download the client from the [release page](https://git.kske.dev/zdm/envoy/releases).
|
|
|
|
|
|
|
|
When starting it for the first time, you can register yourself at a server of your choice.
|
|
|
|
After connecting to the server, you can add other users to your contact list and send them messages.
|
|
|
|
|
|
|
|
To chat with multiple users at once, you can create a group.
|
|
|
|
If you want to transfer a file to another user, you can attach it to a message.
|
|
|
|
|
|
|
|
On the settings page some convenience features can be configured, as well as the color theme.
|
|
|
|
|
2020-09-30 18:41:53 +02:00
|
|
|
### System requirements
|
|
|
|
|
|
|
|
To run Envoy, you have to install a Java Runtime Environment (JRE) of at least version 11.
|
|
|
|
You can download an open source implementation from [here](https://jdk.java.net/15/).
|
|
|
|
|
|
|
|
If you are running a Linux distribution, make sure that an emoji font like [Noto emoji](https://github.com/googlefonts/noto-emoji) is installed.
|
|
|
|
Most major Linux distributions like Debian, Arch and Gentoo have a Noto emoji package available inside their package repositories.
|
|
|
|
|
2020-09-16 22:28:56 +02:00
|
|
|
## Server Administrator
|
|
|
|
|
|
|
|
To set up an Envoy server, download the package from the release page.
|
|
|
|
|
|
|
|
Because the project lacks external documentation for the moment, please refer to the Javadoc inside the source code to configure your Envoy instance.
|
|
|
|
|
2020-09-30 18:41:53 +02:00
|
|
|
### System requirements
|
|
|
|
|
|
|
|
To run Envoy server, you have to install a JRE as mentioned above, as well as a database.
|
|
|
|
In development, PostgreSQL is used, which you can download from [here](https://www.postgresql.org/download/).
|
|
|
|
|
|
|
|
Look at the file `META-INF/persistence.xml` inside `envoy-server.jar` for the database configuration.
|
|
|
|
|
|
|
|
After creating a database and configuring the credentials, the server will initialize the necessary tables automatically.
|
|
|
|
|
2020-09-16 22:28:56 +02:00
|
|
|
## Programmer
|
|
|
|
|
|
|
|
Envoy is organized as a Maven project that is split into three modules.
|
|
|
|
|
|
|
|
### Client
|
|
|
|
|
|
|
|
* Sending and receiving of messages, groups, sending images and voice messages
|
|
|
|
* User interface (UI)
|
|
|
|
* Client configuration
|
|
|
|
* Advanced logging possibilities
|
|
|
|
* Tons of Events to interact with
|
|
|
|
* Detailed Javadoc to improve readability of code
|
|
|
|
|
|
|
|
### Common
|
|
|
|
* Basic datatypes
|
|
|
|
* Events sent between client and server
|
|
|
|
* Configuration API
|
|
|
|
* Logging API based on `java.util.logging`
|
|
|
|
* Envoy-specific Exception
|
|
|
|
* Useful utility classes
|
|
|
|
|
|
|
|
### Server
|
|
|
|
* Non-blocking connectivity infrastructure based on `java.nio`
|
|
|
|
* Processors to handle incoming events
|
|
|
|
* Database connectivity
|
|
|
|
* Databse entities
|
|
|
|
* Utility classes to check client version compatability and password validity
|