JavaRush_tasks

В данном репозитории собраны небольшие задачи, которые были мной реализованы.

Технологии: Java, MVC, Swing

HTML редактор с графическим интерфейсом. В качестве библиотеки для создания графического интерфейса используется Swing. А в качестве архитектурного каркаса нашего приложения будем использовать MVC модель

LogParser - парсер логов

Технологии: Java Core

Парсер логов принимает на вход файл и парсит логи по следующим параметрам - "ip username date event status". Далее он переносит инфомрацию в объект Java, тем самым реализуя кастомную ORM.

Помимо парсера, был реализовал свой собственный язык запросов. Он нужен для того, что бы минимизировать количество методов при парсе логов. При увеличении количества входящих параметров необходимо будет только немного расширить "язык запросов", так как добавление параметров увеличивает количество методов в геометрической прогресии.

Archiver - архиватор

Технологии: Java Core, IO

Самописный архиватор, который умеет архивировать/разархивировать/добавлять файл к архиву/удалять файл из архива.

Cash Machine - Симулятор банкомата

Технологии: Java Core, MVC

Симулятор банкомата, способный валидировать пользователя, принимать/выдавать выбранную валюту с конвертацией, общаться с пользователем на выбранном языке. При выдаче валюты был реализован жадный алгоритм подсчета купюр при выдаче, структура построена на паттерне Command.

Chat - Чат

Технологии: Java Core, MVC, Multithreading, Swing

Чат для общения по сети. Была реализована бэкэнд и фронт часть приложения. Также был добавлен бот, которому можно прикрутить фильтрацию сообщений.

Restaraunt - симулятор ресторана

Технологии: Java Core, MVC, Multithreading

Симулятор ресторана для практики мультипоточного программирования. Симуляция заказов, передача заказов на кухню, выдачу заказов. Была реализована блокирующая очередь при передаче заказов на кухню и выдаче соответственно. Был также реализован жадный алгоритм для максимизации прибыли показа рекламы на "планшетах-меню"

Shortener - сокращатель ссылок

Технологии: Java Core, Guava, Apache Commons Collections, JUnit

Это некий аналог укорачивателя ссылок Google URL Shortener (https://goo.gl), но я расширил его функциональность и сделал консольным. Он сокращает не только ссылки, но и любые строки. Shortener - это класс, который может для любой строки вернуть некий уникальный идентификатор, а также вернуть строку/ссылку по ранее переданому идентификатору. Был использован паттер Стратегия.

Sokoban - Игра Сокобан

Технологии: Java Core, MVC, Swing

Была реализована всем известная игра Сокобан. Уровни парсятся из файла, далее игра отрисовывается с помощью Swing.

Vacancies_aggregator - агреатор вакансий

Технологии: Java Core, MVC, JSoup

Реализован агрегатор вакансий по сайту hh.ru и HabrCareer. Вакансии выбираются через распарсивание веб-страницы по тегам с помощью библиотеки JSoup.