В данном репозитории собраны небольшие задачи, которые были мной реализованы.
HTML редактор с графическим интерфейсом. В качестве библиотеки для создания графического интерфейса используется Swing. А в качестве архитектурного каркаса нашего приложения будем использовать MVC модель
LogParser - парсер логов
Парсер логов принимает на вход файл и парсит логи по следующим параметрам - "ip username date event status". Далее он переносит инфомрацию в объект Java, тем самым реализуя кастомную ORM.
Помимо парсера, был реализовал свой собственный язык запросов. Он нужен для того, что бы минимизировать количество методов при парсе логов. При увеличении количества входящих параметров необходимо будет только немного расширить "язык запросов", так как добавление параметров увеличивает количество методов в геометрической прогресии.
Archiver - архиватор
Самописный архиватор, который умеет архивировать/разархивировать/добавлять файл к архиву/удалять файл из архива.
Cash Machine - Симулятор банкомата
Симулятор банкомата, способный валидировать пользователя, принимать/выдавать выбранную валюту с конвертацией, общаться с пользователем на выбранном языке. При выдаче валюты был реализован жадный алгоритм подсчета купюр при выдаче, структура построена на паттерне Command.
Chat - Чат
Чат для общения по сети. Была реализована бэкэнд и фронт часть приложения. Также был добавлен бот, которому можно прикрутить фильтрацию сообщений.
Restaraunt - симулятор ресторана
Симулятор ресторана для практики мультипоточного программирования. Симуляция заказов, передача заказов на кухню, выдачу заказов. Была реализована блокирующая очередь при передаче заказов на кухню и выдаче соответственно. Был также реализован жадный алгоритм для максимизации прибыли показа рекламы на "планшетах-меню"
Shortener - сокращатель ссылок
Это некий аналог укорачивателя ссылок Google URL Shortener (https://goo.gl), но я расширил его функциональность и сделал консольным. Он сокращает не только ссылки, но и любые строки. Shortener - это класс, который может для любой строки вернуть некий уникальный идентификатор, а также вернуть строку/ссылку по ранее переданому идентификатору. Был использован паттер Стратегия.
Sokoban - Игра Сокобан
Была реализована всем известная игра Сокобан. Уровни парсятся из файла, далее игра отрисовывается с помощью Swing.
Vacancies_aggregator - агреатор вакансий
Реализован агрегатор вакансий по сайту hh.ru и HabrCareer. Вакансии выбираются через распарсивание веб-страницы по тегам с помощью библиотеки JSoup.