Лабораторная работа №2
Тема «Веб сайт»
В ходе лабораторных работ по теме «Веб сайт», вами будет реализовано веб приложение на Laravel новостной сайт. Тематика контента на сайте может быть любой.
Требования к сайту
1. Общие требования
- Данные должны храниться в базе данных.
- Шапка и подвал сайта должны быть вынесены в отдельные компоненты и подключаться на каждой странице отдельно.
- Навигация должна позволять переходить между основными разделами сайта.
2. Реализация создания и сохранения статей
Необходимо реализовать создание и сохранение статей в разделе «Журналист». Вывод непосредственно на главной странице всех статей и вывод статей в категории.
3. Авторизация и регистрация
Необходимо реализовать регистрацию и вход пользователей.
Основные требования:
- Регистрация выполняется **только по логину и паролю**.
- Поля регистрации:
- логин;
- пароль;
- подтверждение пароля.
- Поля входа:
- логин;
- пароль.
- Пароль должен храниться в базе данных в хешированном виде.
- Логин должен быть уникальным.
- Необходимо реализовать выход из аккаунта.
3. Разделы сайта
На сайте необходимо реализовать 4 основных раздела.
3.1. Главная
- Выводятся все опубликованные статьи из базы данных.
- Сортировка статей — от новых к старым.
- Желательно добавить пагинацию.
- В карточке статьи выводится:
- заголовок;
- категория;
- автор; *(задача на подумать)
3.2. Категория / каталог
- Отображаются статьи только одной выбранной категории.
- На первом этапе достаточно вывести одну категорию из общей ленты.
- Например, если сайт посвящён научному прогрессу, можно вывести категорию «Технологии».
- Статьи берутся из базы данных.
- В дальнейшем раздел должен легко расширяться до списка всех категорий.
3.3. Журналист
- Необходимо создать удобный интерфейс для написания и редактирования статей.
- Форма создания статьи должна содержать:
- заголовок;
- категорию;
- полный текст статьи;
- После отправки формы статья должна сохраняться в базе данных.
- После сохранения опубликованная статья должна выводиться:
- на главной странице;
- в соответствующей категории / каталоге.