diff --git a/README.md b/README.md index 1bcbc65..520f6c8 100644 --- a/README.md +++ b/README.md @@ -1,45 +1,52 @@ # Envoy ---- - -**Envoy** is a messenger written in Java.
-It is split into three separate components: Envoy Client, Envoy Common and Envoy Server. -




---- -### Envoy Client: -This is the only part users are interested in. It contains everything to make this messenger work: the UI. -### Envoy Server: -Envoy offers the option to download and host your own server over which Envoy can run.
-This part will be especially appealing to institutions/organizations who want to self-host Envoy. -### Envoy Common: -This part contains elements that both the client and the server need. It will be automatically part of either one (Thanks, Maven!). + -## Features +Envoy is a messenger written in Java. +On this page, the project is explained for different user groups. -Envoy features a lot of things and many more are yet to come. -Currently existing features are: +## Regular User -#### 'Client' contains: +To use Envoy to join an existing server, download the client from the [release page](https://git.kske.dev/zdm/envoy/releases). -* typical Messenger features (sending and receiving of messages, groups, sending images and voice messages) -* typical Messenger feeling (displaying unread messages) -* Appealing user interface (UI) +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. -* Programming - * API to change default configuration - * Advanced logging possibilities - * Tons of Events to interact with - * Detailed Javadoc to improve readability of code +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. -#### 'Common' contains: -* the event system -* the logger -* Envoy-specific Exceptions -* some util classes -* the most basic datatypes +On the settings page some convenience features can be configured, as well as the color theme. -#### 'Server' contains: -* the database implementation of the data classes -* the connectivity classes -* processors to handle incoming events -* Utility classes to check client version compatability and Password validity +## 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