ТЕХНІЧНЕ ЗАВДАННЯ
Назва проєкту
Вебзастосунок для обліку прочитаних книг (аналог 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. Критерії приймання
Проєкт вважається завершеним, якщо реалізовано:
реєстрацію та авторизацію користувачів;
перегляд каталогу книг;
пошук книг;
сторінку книги;
особисту бібліотеку;
зміну статусу книги;
оцінювання книг;
сторінку профілю;
адміністративну панель для керування каталогом книг.