Всем привет! Хочу поделиться своим небольшим проектом! Я взял одну из «больших задач» JavaRush («Чат», квест Multithreading, 6 уровень), изменил её, модифицировал и вот что из этого вышло:
Что изменено/добавлено по сравнению с оригинальной задачей:

- конфигурацию читает из файла properties при помощи класса ResourceManager;
- добавлены чат-румы и возможность создавать собственные чаты;
- добавлены приватные сообщения;
- полностью новый swing-интерфейс клиента;
- добавлены горячие клавиши для отправления сообщений и команд клиента;
- добавлено окно настроек;
- добавлены смайлики;
- сделаны вкладки для отображения сообщений из разных чат-румов и приватных чатов;
- добавлен счетчик непрочитанных сообщений;
- сделано дерево пользователей для отображения пользователей в чатах и вызова приватных сообщений;
- бот научился отвечать смайликом на смайлик;
- добавил логгер log4j;
- добавил добавил тесты jUnit;
- завернул все это в Maven и разбил на модули.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ