An instant messaging application with a self-hostable server.
This repository has been archived on 2021-12-05. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
delvh 844a256af0
Merge remote-tracking branch 'origin/develop' into
b/sanitized-issue-proposals

Conflicts:
	client/src/main/java/envoy/client/ui/settings/BugReportPane.java
	client/src/main/java/envoy/client/util/IssueUtil.java
2020-09-27 13:56:48 +02:00
client Merge remote-tracking branch 'origin/develop' into 2020-09-27 13:56:48 +02:00
common Fix Javadoc errors spotted by @delvh 2020-09-27 12:06:01 +02:00
server Fix Javadoc errors spotted by @delvh 2020-09-27 12:06:01 +02:00
.gitignore Add top level .settings folder to .gitignore 2020-09-06 11:15:20 +02:00
.project Refactor Maven Project Structure 2020-07-13 15:16:22 +02:00
LICENSE Refactor Maven Project Structure 2020-07-13 15:16:22 +02:00
pom.xml Speed up build, move compiler configuration to parent POM 2020-07-18 13:32:49 +02:00
README.md Update README 2020-09-16 22:28:56 +02:00

Envoy

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.

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.

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.

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