Уважаемые форумчане, добрый день!
Нужна ваша помощь.
Заканчиваю очные курсы и до 21.12 необходимо сделать итоговый проект, который заодно и является тестовым заданием на собеседование.
Проект – поисковая система с веб-интерфейсом, со следующими функциями:
1. Загрузка файлов формата *.txt
2. Поиск по этим файлам через веб-интерфейс
Как работает:
В систему загружаются текстовые файлы,
Пользователь вводит поисковый запрос – в систему ставится задача на исполнение: осуществляется поиск по всем загруженным файлам, выбирается каждая строчка из каждого документа, в котором встречается искомая фраза и формируется итоговый документ, в котором: все найденные строки с указанием документа, в котором они найдены.
Формат результата:
[rfc1945.txt]: The Hypertext Transfer Protocol (HTTP) is an
application-level...
... (другие строки для краткости не указаны)
Поисковая фраза: HTTP
Документ, по которому осуществлялся поиск:
https://tools.ietf.org/rfc/rfc1945.txt
Обязательные требования:
• Оно должно работать (не важно, быстро или медленно, но работать)
• Код в GitHub
• Сервлеты и Tomcat для организации приложения
• Задачи и их статус должен храниться в СУБД, загружаемые файлы и файлы с результатами поиска – в файловой системе
Крайне желательно:
• Разворачивание в Heroku через Travis
• Мультимодульное приложение (используйте JDBC Template и DI – самописное или Google Guice)
На курсах до БД все было просто и понятно, а потом, по-моему, галопом по Европам: IO Streams, Networking, HTTP, Static Web Server, Servlets, Reflection, Exceptions, Многопоточность и все, по-сути, без практики. Как итог я даже не знаю, как взяться, а выполнить надо.
Как бы мне это сделать, пожалуйста, подскажите
Никита Рябинский
8 уровень
Нужна помощь! Проект: поисковая система с веб-интерфейсом
Комментарии (12)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Alina
17 декабря 2019, 01:00
Слона кушать тяжело.
Предлагаю попробовать разбить его на части. Более опытные, может поправят.
1. Создать простое веб-приложение, задеплоть на томкат.
2. Создать поле для поиска и кнопку
3. Написать сервлет, который будет искать строку поиска в файлах в файловой системе, и сохранять данные для вывода
4. Формирование ответа, сохранение этого ответа в файл
5. Добавить поле и кнопку для загрузки файлов
6. Реализовать загрузку файлов в файловую систему
7. Добавить Статус задач (Загрузка файла (идет, загружен, ошибка загрузки) , Поиск (идет, найдено, не найдено)
8. Прикрутить БД
9. Реализовать запись статуса в БД
На "желательно" я бы забила, хватило бы времени на реализацию основы.
0
Alina
17 декабря 2019, 01:08
Я бы предложила помощь, например, реализовать какой-то пункт.
Главное, не опускай руки, все получится.
0
Никита Рябинский
17 декабря 2019, 05:35
Создать простое веб-приложение, задеплоить на томкат — смогу.
Сейчас разбираюсь с сервлетами.
Все еще не знаю, как получить от клиента файлы, сохранить в файловой системе и выполнить по ним поиск.
Если есть возможность помочь, я с величайшим удовольствием
0
Alina
17 декабря 2019, 20:16
выложи на github свое приложение. и дай ссылку мне в телеграмм @alivaV
Загрузка файлов через веб-приложение http://www.cyberforum.ru/java-j2ee/thread2417652.html
Поиск строки в файле https://qna.habr.com/q/228760
Проход по всем файлам в папке https://ru.stackoverflow.com/questions/465935/%D0%9A%D0%B0%D0%BA-%D0%BE%D0%B1%D0%BE%D0%B9%D1%82%D0%B8-%D0%B2%D1%81%D0%B5-%D1%84%D0%B0%D0%B9%D0%BB%D1%8B-%D0%B2-%D0%BF%D0%B0%D0%BF%D0%BA%D0%B5-%D0%B8-%D0%BF%D0%BE%D0%B4%D0%BF%D0%B0%D0%BF%D0%BA%D0%B0%D1%85-%D0%B8-%D0%BF%D1%80%D0%BE%D1%87%D0%B8%D1%82%D0%B0%D1%82%D1%8C-%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%BE%D0%B2%D1%8B%D0%B5-%D1%84%D0%B0%D0%B9%D0%BB%D1%8B-%D0%B2-%D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2
Но не получится просто скопировать-вставить, это скорее направление движения мысли
0
tonybkk
15 декабря 2019, 18:08
Извини конечно. Ничего личного, но зачем ты проходил курсы? Кого ты пытаешься обмануть? Если ты не можешь осилить элементарщину которая гуглится за пару минут задай себе вопрос - точно ли это твое
+2
VladimirMaster
15 декабря 2019, 18:57
Не сказал бы я, что это задание - элементарщина, как ты выразился.
+2
VladimirMaster
15 декабря 2019, 12:34
Такую тему нужно решать с куратором курса. На Spring Boot можно всю эту приложуху нафигачить. Копай Spring Boot.
+2
Никита Рябинский
15 декабря 2019, 14:22
Spring в рамках курса не изучался, поэтому стоит делать без него.
Как мне кажется, в чем проблема: я не знаю, как загрузить файлы в файловую систему и выполнить по ним поиск. Я очень плохо представляю, как все это завернуть в сервлет и уж тем более почти не представляю, как использовать многопоточность
0
VladimirMaster
15 декабря 2019, 16:51
По этой причине я тебе и советую использовать Spring Boot. Ну и что, что не изучался, возьми и сделай не как все. Не сложно разобраться будет.
+1
Никита Рябинский
16 декабря 2019, 08:02
Боюсь, что на Spring нет времени. Мне в субботу кровь из носу надо сдавать. Мне нужен какой-то курс "веб-сервис за 24 часа" или "работа с файлами в java 8 для чайников", какой-то туториал, конкертный код, как это сделать
0
Александр Руднев Team Lead
16 декабря 2019, 16:11
Базовые сервлеты, в аргументах реквеста принимаешь MultiPartFile - дальше, пишешь его согласно тз.
ссылки в гугле
Со спрингом это делается намного быстрее...Тупо копируется пет - проект с baeldung...
проекты
0
Сергеев ВикторMaster
16 декабря 2019, 19:34
Начни что-то делать. Потому, что сейчас твой вопрос слишком общий.
Если например твой вопрос будет " я получил массив байт, как мне его теперь сохранить в файл на диск", ответят намного быстрее и понятнее.
Начни с простого Класса, у которого будет метод сохранения файла, который будет получать массив байт и схоранять его на диске в виде файла.
Второй метод, который получая поисковую фразу будет итерироваться по каталогу с файлами и в них искать фразу. Если нашел, класть имя файла + найденную строку в hashMap
Дальше останется накрутить сверху сервлеты и по сути все
0