-
Notifications
You must be signed in to change notification settings - Fork 0
/
task
38 lines (21 loc) · 3.73 KB
/
task
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Заказчик - известное печатное новостное издание, которое хочет расширить свою аудиторию за счет публикации новостей так же онлайн.
Задача:
Разработать новостой онлайн-портал, позволяющий журналистам загружать статьи в заранее подготовленном формате, после чего они автоматически будут добавлены на главную страницу приложения.
Тех. задание:
Приложение состоит из двух страниц:
Страница 1: Новостной портал.
На странице отображены все загруженные на портал статьи с заголовками, выделенными увеличенным жирным шрифтом. Статьи отображаются в порядке от новых к старым. Между статьями должен быть небольшой отступ чтобы визуально отделять их друг от друга.
Страница 2: Страница загрузки статей.
На странице присутствует диалог для выбора архива с жесткого диска и кнопка "Загрузить". Архив статьи представляет собой ZIP архив с единственным тесктовым файлом внутри - article.txt
Заголовком статьи считается первая строка из этого файла, остальное содержимое считается телом статьи.
Страница должна выдавать ошибку:
если загружаемый файл не является zip архивом
при наличии в архиве любых других файлов, кроме article.txt
если файл article.txt содержит менее 2х строк (отстутствует тело статьи)
Требования к системе:
При перезагрузке сервера приложения все статьи должны быть доступны в том же объеме, в каком были до выключения сервера.
Исходный код должен быть выложен в любой из публичных git репозиториев (github, bitbucket) и содержать пошаговую инструкцию по сборке и развертыванию приложения на чистом сервере (при это желательно максимально ее оптимизировать, в идеале - один приложенный скрипт).
В качестве базы данных (если вам таковая понадобится) - рекомендуется использовать H2 (https://www.h2database.com/html/main.html) + ее автоматическое заполнение некоторым количеством тестовых данных.
Стек предлагаемых технологий:
Spring Boot + Spring MVC для серверной части.
HTML + Bootstrap для клиентской части. Клиентский интерфейс может быть минималистичным, но функциональным. Например, оценка за "топорный" дизайн снижаться не будет, но если случится наслоение текста друг на друга в нечитаемую массу - это будет рацененно как ошибка.