ТЕХНИЧЕ ЗАДАНИЕ
Название проекта
Веб-приложение для учета прочитанных книг (аналог Goodreads).
⸻
1. Цель проекта
Разработать веб-приложение, которое позволяет пользователям просматривать каталог книг, осуществлять поиск книг, формировать собственную библиотеку, изменять статус чтения и оценивать прочитанные книги.
⸻
2. Назначение системы
Система предназначена для ведения персональной электронной библиотеки пользователя.
Основные возможности:
просмотр каталога книг;
получение информации о книге;
ведение собственного списка книг;
оценивание прочитанных книг;
администрирование каталога.
⸻
3. Типы пользователей
Гость
Может:
просматривать каталог книг;
просматривать информацию о книге;
выполнять поиск книг.
Зарегистрированный пользователь
Имеет все возможности гостя, а также может:
создать собственный аккаунт;
авторизоваться;
добавлять книги в личную библиотеку;
изменять статус книги;
оценивать книги;
просматривать страницу «Мои книги».
Администратор
Имеет полный доступ к каталогу книг:
добавление книги;
редактирование информации;
удаление книги.
⸻
4. Функциональные требования
4.1 Регистрация
Система должна позволять создание нового учетной записи.
Форма регистрации содержит:
имя пользователя;
email;
пароль;
подтверждение пароля.
Email должен быть уникальным.
⸻
4.2 Авторизация
Пользователь должен иметь возможность выполнить вход по email и паролю.
После успешной авторизации открывается личный кабинет пользователя.
⸻
4.3 Каталог книг
Каталог должен отображать список книг.
Для каждой книги необходимо отображать:
обложку;
название;
автора;
жанр;
средний рейтинг.
⸻
4.4 Поиск
Система должна поддерживать поиск книг по названию.
Если книги не найдены, отображается соответствующее сообщение.
⸻
4.5 Страница книги
Для каждой книги должна быть отдельная страница.
На странице отображаются:
название;
автор;
жанр;
описание;
обложка;
средний рейтинг;
оценка текущего пользователя (если она была поставлена).
⸻
4.6 Личная библиотека
Авторизованный пользователь может добавить книгу в собственную библиотеку.
Для каждой книги устанавливается один из статусов:
Хочу прочитать;
Читаю;
Прочитано.
Одновременно книга может иметь лишь один статус.
Пользователь может изменить статус или удалить книгу из своей библиотеки.
⸻
4.7 Оценивание книг
Пользователь может поставить книге оценку от 1 до 5.
Одна книга может быть оценена одним пользователем лишь один раз.
Оценку можно изменить.
Общий рейтинг книги формируется автоматически как среднее значение всех оценок пользователей.
⸻
4.8 Профиль пользователя
В профиле отображаются:
имя пользователя;
email;
количество книг в библиотеке;
список добавленных книг.
⸻
4.9 Административная панель
Администратор имеет возможность:
добавлять новые книги;
редактировать информацию о книгах;
удалять книги;
загружать обложку книги.
⸻
5. Структура данных
Книга
название;
автор;
жанр;
описание;
обложка;
рейтинг.
Пользователь
имя;
email;
пароль.
Библиотека пользователя
пользователь;
книга;
статус;
оценка.
⸻
6. Нефункциональные требования
Проект должен быть реализован с использованием:
ASP.NET Core MVC;
C#;
Entity Framework Core;
SQL Server;
HTML;
CSS;
JavaScript.
Интерфейс должен корректно работать в современных браузерах и иметь адаптивный дизайн.
⸻
7. Критерии приемки
Проект считается завершенным, если реализовано:
регистрация и авторизация пользователей;
просмотр каталога книг;
поиск книг;
страница книги;
личная библиотека;
изменение статуса книги;
оценивание книг;
страница профиля;
административная панель для управления каталогом книг.