Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/agalabov/chatserver

FMI "Modern Java Technologies" 2017 - Course Project
https://github.com/agalabov/chatserver

Last synced: about 1 month ago
JSON representation

FMI "Modern Java Technologies" 2017 - Course Project

Awesome Lists containing this project

README

        

# ChatServer
FMI "Modern Java Technologies" 2017 - Course Project

## Overview
Console chat server

## Functionality
* The server handles multiple user's requests simultaneously.
* Each user has unique username and password. User's data is stored as a plain text in a file.
* Users can disconnect at any time.
* Each user can send personal messages or files to another active user. A user is active when is registered and logged in the system at the moment.
* Users can communicate using chat-rooms(multiple users chat):
* A user can be part of many chat-rooms at a time.
* Create/Delete chat-room. Only the creator of the room can delete it.
* Join/Leave an existing chat-room.
* Show all existing chat-rooms.
* List all active users in an existing room.
* Send a message to all members in the room.
* Chat history of each room is stored as a plain text in a file. When a new user joins the room he receives the whole chat history of the room.

#### User commands:
- `connect ` - connects a user to the server
- `register ` - registers a user if the username is already taken, server sends appropriate message.
- `login ` - logs in a user if exists and is not already logged in.
- `disconnect` - disconnects a user.
- `list-users` - lists all active users.
- `send ` - sends `` to the user with username equal to `` if such exists.
- `send-file ` - sends `` to the user with username equal to `` if such exists.
- `accept` - accepts a sent file and prommpts question for directory to be saved.
- `decline` - rejects a sent file.
- `create/delete/join/leave-room ` - creates/deletes/joins/leaves chat-room if does not exists the server sends appropriate message.
- `send-group ` - sends `` to all users in group with name `` if such exists.
- `list-rooms` - lists all active chat-rooms. A chat-room is active if has at least one active user.
- `list-room-users ` - lists all active users in the chat-room.