Maksim Dzyuba
Winning proposal- Projects 36
- Rating 5.0
- Rating 1 316
Budget: 1500 UAH Deadline: 2 days
Good day, I have great experience working with Java and Spring Boot. I will perform at the highest quality level, and I can explain the solution. Looking forward to collaborating!
Budget: 1500 UAH Deadline: 3 days
Hello! I will complete your task! Does the java, spring boot, postgresql version matter?
Proposals are currently absent
-
Andrii Kolomoiets 29 April 2024Ви вставили посилання на свій локальний диск. Бажано завантажити файл на ресурс і дати на нього посилання або написати в приватні і прикріпити там.
-
Vlad Pivnev
29 April 2024
Вибачте що так не охайно але не вдається прикріпити pdf файл
Java CoreКонтекст
Оберіть предметну область з двома сутностями, одна з яких основна, відноситься до другорядної як багато-до-одного.
Наприклад, Студенти-Група, Книги-Автор, Замовлення-Клієнт, і т.і.
Основна сутність має кілька атрибутів. Наприклад, якщо це Книга, то у неї є назва, рік публікації, перелік жанрів і т.і.
Всі подальші завдання будуть на базі цих сутностей і повинні в кінці скластися в єдиний проект.
Завдання
Розробити консольну програму-скрипт, яка парсить перелік JSON-файлів основної сутності і формує статистику (загальну кількість) в розрізі одного з її атрибутів.
В якості параметрів запуску вона отримує шлях до папки, де зберігаються JSON-файли (їх там може бути декілька) і назву атрибута, по якому формувати статистику.
Програма має підтримувати роботу з кількома атрибутами, а користувач буде вказувати один з них.
Один з атрибутів має бути текстовим і мати кілька значень (категорії через кому, хеш-теги і т.і.).
В якості результату роботи, програма формує XML-файл зі статистикою, відсортованою по кількості від більшого до меншого. Назва файлу з результатами повинна бути statistics_by_{attribute}.xml.
Приклад
Наприклад, якщо наша предметна область про Книги, то формат може бути таким.
[
{
"title": "1984",
"author": "George Orwell",
"year_published": 1949,
"genre": "Dystopian, Political Fiction"
},
{
"title": "Pride and Prejudice",
"author": "Jane Austen",
"year_published": 1813,
"genre": "Romance, Satire"
},
{
"title": "Romeo and Juliet",
"author": "William Shakespeare",
"year_published": 1597,
"genre": "Romance, Tragedy"
}
]
Для такого файлу, скрипт міг би формувати статистику по атрибутах author, year_published, genre.
Якщо користувач запросить формування статистики по genre, то файл з результатами statistics_by_genre.xml міг би мати такий контент.
<statistics>
<item>
<value>Romance</value>
<count>2</count>
</item>
<item>
<value>Dystopian</value>
<count>1</count>
</item>
...
</statistics>
Вимоги до реалізації і оформлення коду
Структурувати код. Виокремити сутності, логіку парсингу, інтерфейс (консольний), логіку калькуляції статистики, і т.і. в окремі класи, методи.
В цьому завданні не використовувати СКБД і Spring: працюємо з колекціями в оперативній пам'яті.
Додати unit-тести для логіки парсингу файлів і формування статистики
Зважати, що файлів в папці може бути багато, і розміри файлів можуть бути великими. Уникати завантаження цілих файлів в оперативну пам’ять Java.
Використовувати пул потоків для парсингу файлів (кожен файл в окремому потоку). Порівняти швидкодію, коли це один поток, 2, 4, 8.
В Readme проекту дати опис основних сутностей, привести приклади вхідних і вихідних файлів, а також описати результати експериментів з кількістю потоків.
-
Andrii Kolomoiets 29 April 2024Але можна звісно і тут. Чи може ви надати опис сутностей 1 і 2 або вихідний код першої частини завдання в якому вже описана предметна область.