Всем привет! Хочу поделиться своим небольшим проектом! Я взял одну из «больших задач» JavaRush («Чат», квест Multithreading, 6 уровень), изменил её, модифицировал и вот что из этого вышло:
Мой чат  - 1
Что изменено/добавлено по сравнению с оригинальной задачей:
  • конфигурацию читает из файла properties при помощи класса ResourceManager;
  • добавлены чат-румы и возможность создавать собственные чаты;
  • добавлены приватные сообщения;
  • полностью новый swing-интерфейс клиента;
  • добавлены горячие клавиши для отправления сообщений и команд клиента;
  • добавлено окно настроек;
  • добавлены смайлики;
  • сделаны вкладки для отображения сообщений из разных чат-румов и приватных чатов;
  • добавлен счетчик непрочитанных сообщений;
  • сделано дерево пользователей для отображения пользователей в чатах и вызова приватных сообщений;
  • бот научился отвечать смайликом на смайлик;
  • добавил логгер log4j;
  • добавил добавил тесты jUnit;
  • завернул все это в Maven и разбил на модули.
Ссылка на GitHub: https://github.com/DevCorvette/chat Кому интересно, заходите, смотрите, комментируйте, буду рад :) Конструктивной критике тоже буду рад. P.S.: Тот кто еще не решал задачу, не ищите у меня готового решения. Там практически все переписано ;)
Что еще почитать:

Лучшие книги для подготовки к экзамену OCAJP8 (1Z0-808) по Java 8

Топ 5 библиотек машинного обучения для Java

Что такое Deadlock?