Требуется переделать сайт на ВП с защитой личных страниц пользователей. Доступ к учетным записям только по логину и паролю. Необходима админ-панель для управления пользователями, возможность создания уникальных страниц для каждого пользователя с вкладками, содержащими iframe-отчеты. Дизайн должен быть простым и функциональным, с единой стилистикой. Важно обеспечить безопасность — пользователи без авторизации должны быть перенаправлены на главную страницу.
Семестровая работа сайт, написанный с использованием Spring MVC Frame
Сдача работы и баллы
Работу необходимо будет сдать лично. На своей паре или в доп.время. Не тяните, распределяйте время, чтобы не было столпотворений!
При проверке будет оцениваться соответствие всем нижеперечисленным требованиям, реализация правильной архитектуры, умение применять используемые технологии, удобство пользования системой, защищенность системы.
Сайт должен быть задеплоен на общедоступный сервер и/или помещён в Docker (сервер приложений и сервер СУБД в отдельных контейнерах). Код необходимо выложить на Github Classroom в специально подготовленное преподавателем задание.
Работа без выполнения списка обязательных требований ниже не принимается. Невыполнение каждого дополнительного требования к наполнению/реализации уменьшает максимальные баллы на 20%.
Обязательные требования
Семестровая работа – сайт, написанный с использованием Spring MVC Framework.
У сайта должна быть идея, обладающая новизной и актуальностью. Если сомневаетесь в сложности и новизне проекта, лучше подойдите-уточните. Либо же можно воспользоваться своей предыдущей семестровой и развить её.
Сайт должен иметь удобный интерфейс.
Необходимо использовать HTML5, CSS3. CSS-препроцессоры не запрещаются, но нужно знать их основные принципы. Если используете CSS-фреймворки (Bootstrap и проч.), должны уметь пояснить, что за классы используете, особенно классы сетки.
Необходимо корректно работать с формами: проверка данных, защита от повторной отправки там, где это нужно.
Нужно использовать любой шаблонизатор, можно JSP. В коде видов нельзя напрямую вызывать Java-код. Должна быть развитая система шаблонов (свои теги или наследование шаблонов, разделение видов на несколько частей).
Сайт должен иметь аутентификацию, авторизацию, регистрацию (Spring Security).
Сайт должен быть защищён от атак, которые обсуждались в течение всего курса предмета (XSS, CSRF, SI, CORS).
Сайт должен хранить данные в реляционной СУБД: MySQL, MSSQL, MariaDB или PostgreSQL. Можно ли использовать другие СУБД нужно уточнить лично. Использование In-Memory DB (H2 и проч) не допускается.
Для работы с СУБД необходимо использовать и Spring Data JPA, и JPA. То есть должны быть как и репозитории от Spring, так и самостоятельно написанные запросы с помощью JPQL/CriteriaBuilder.
Система должна работать, как минимум с пятью JPA сущностями. Должны быть связи M2M, O2M, O2O.
Как минимум, для одной из сущностей должен быть реализован полностью CRUD: не обязательно в виде админки, но должны быть некие экшены контроллеров, которые вызывают эти методы.
Система должна быть построена по модели MVC, и следует придерживаться логики Controller->Service->Repository и тд. Необходимо придерживаться принципов SOLID. Весь код должен быть корректно поделен на пакеты. Рекомендуется использовать DTO-, Request-, Forms-классы, где это уменьшает связность, абстрагирует архитектуру.
Проект должен быть основан на Spring Boot: нужно использовать стартеры, настройки и запускающий класс.
Все реализации требований должны вписываться в бизнес-логику и выполнение соответствующего кода должно быть возможно из-за действий пользователя.
Требования к наполнению, наличию реализаций
Необходимо применить Javascript. Нужно использовать AJAX.
Все исключения, проблемы должны корректно обрабатываться: обычные экшены – приводить к отдачи самостоятельно оформленной веб-страницы, а AJAX-запросы получить JSON-ответ с информацией о проблеме. Не должно быть дефолтных страниц с ошибками от сервера приложений или Spring Boot.
Использование стороннего API, не используя специальную библиотеку для этого API, а самостоятельное описание запросов на уровне HTTP (например, библиотека okhttp, restTemplate). Примеры: вход или восстановление пароля через отправку смс, использование курсов валют для пересчёта стоимости корзины. Наличие простого информера для сайта типа вывода погоды не подходит!
Использование Spring Security. То есть полноценная работа с пользователем: закрытая часть сайта, аутентификация, регистрация.
Организация REST API хотя бы для одной сущности. Подключение генерации Swagger. А также написание тестов через http-файлы Idea или через Postman.
Использование конвертеров, в том числе и своих.
Логирование возникающих исключений.
Наличие 2 нестандартных методов для репозиториев Spring: самостоятельно написанных методов с использованием @Query, CriteriaBuiler, но не повторяющих функционал методов, описываемых в Spring Data JPA.
Один запрос с подзапросом.
Сроки
Дедлайн досрочной сдачи: 24 мая. Можно получить +4 балла баллов сверх баллов семестровой работы при строгом выполнении всех требований.
Дедлайн сдачи: 14 июня.
Разбалловка
При несоответствии каждому дополнительному требованию максимальные баллы уменьшаются на 20%.
Если обнаружено, что какой-то участок кода списан, то баллы списавшего и давшего списать аннулируются полностью.
Все уменьшения баллов целочисленные, с округлением в меньшую сторону.
Фронтэнд (вёрстка, дизайн, шаблоны, JS) – 3
Работа с базой (репозитории, 5 сущностей, M2M, O2M, O2O свои запросы) – 4
Архитектура (слои абстракций, взаимодействие модулей, шаблоны проектирования) – 4
Общие правила построения сайтов (упоминание контекста, защита от повторной отправки, проверки ввода, корректный вывод, обработка запроса и проч) – 6
Использование продвинутых техник/технологий, в т.ч. Spring (логгирование, правильное описание конфигураций, настройка окружения, конвертеров, централизованная обработка исключений и т.д.) – 7
Корректное использование API – 1
Итого: 25 баллов
Пример: студент сдал работу без 2 дополнительных требований и у него было очень много проблем с фронтэндом. 60% максимальных баллов и вычет всех баллов за фронтэнд: (1-0.2*2)*(25-3) балла = 15 - 1.8 = 13.2 ≃ 13 баллов.
Доп.задание:
Подключить oAuth-сервис без использование библиотеки, которая непосредственно решает эту задачу. Максимум: библиотека для отправки HTTP-запросов, генерации секретных кодов. Нужно реализовать функционал “войти через”.
+4 балла (но не более 25 суммарно)
Заявки фрилансеров
Похожие заказы
- Сайты «под ключ»10 заявокОткрытдень назад
- $100
Требуется разработка сайта-каталога для продажи онлайн курсов. Движок не имеет значения, возможен WordPress. Список курсов будет предоставлен. Шаблон можно использовать любой, сайт нужен для демонстрации.
Сайты «под ключ»15 заявокОткрыт2 дня назад Ищем опытного веб-разработчика или команду для создания современного сайта агентства премиум-услуг. Задачи включают разработку дизайна, создание фронтенда и бэкенда с учетом SEO, интеграцию формы бронирования и защиту данных. Требуется опыт в создании сайтов для нишевых проектов и знание технологий HTML, CSS, JS, PHP.
Сайты «под ключ»16 заявокОткрыт3 дня назад- $60
Требуется разработать сайт по аналогии с AniList на Node.js и React. Необходимы страницы каталога аниме, отдельные страницы тайтлов, персонажей и участников производства. Пользователи смогут оставлять отзывы, ставить оценки и вести свои списки аниме. Также нужен форум для обсуждения тайтлов с возможностью создания топиков и комментариев. Проект является дипломным и должен быть выполнен в кратчайшие сроки.
Сайты «под ключ»4 заявкиОткрыт6 дней назад Требуется разработать сайт на Python, посвященный генерации цитат. Необходимо реализовать функционал, позволяющий пользователям получать случайные цитаты, а также создать привлекательный и удобный дизайн интерфейса. Ожидается качественная проработка всех аспектов сайта.
Сайты «под ключ»12 заявокОткрыт7 дней назад- $50
Требуется разработка простого сайта на платформе Tilda. Дизайн должен быть минималистичным, симпатичным и читабельным, без сложных элементов. Пример желаемого уровня представлен в указанной ссылке.
Сайты «под ключ»17 заявокОткрыт9 дней назад Требуется разработка сайта для продажи уникального спортивного инвентаря с возможностью покупки, блогом и платежной системой. Необходимо обеспечить удобное управление из админки. Потребуется интеграция функций доставки. Сроки и цена обсуждаются.
Сайты «под ключ»1 исполнительЗавершен8 дней назад- $700
Необходима разработка простого сайта на WordPress с начальным объемом около 10 страниц, включая разделы 'О нас', 'Блог', 'Примеры работ' и 'Контакты'. Имеется детальное ТЗ, готовая структура, прототипы страниц и рекомендации SEO специалистов. Также предоставлен дизайн в фигме и SEO тексты. Ожидается реализация на основе имеющихся материалов.
Сайты «под ключ»32 заявкиОткрыт9 дней назад Необходимо создать клоны трех сайтов с учетом вырезки сложных элементов по предоставленным техническим заданиям. Работа включает установку готовых сайтов на платформу Битрикс. Подробности по упрощению и изменению функционала указаны в ТЗ.
Сайты «под ключ»5 заявокОткрыт10 дней назадТребуется разработка сайта-лендинга для компании в сфере IT. Сайт должен включать 4-5 раскрывающихся блоков. Необходимо предоставить портфолио, указать используемую CMS, сроки выполнения и стоимость проекта.
Сайты «под ключ»28 заявокОткрыт10 дней назад