TECHNICAL TASK
Project Title
Web application for tracking read books (similar to Goodreads).
⸻
1. Project Goal
To develop a web application that allows users to browse a catalog of books, search for books, create their own library, change reading status, and rate read books.
⸻
2. System Purpose
The system is designed for maintaining a personal electronic library for the user.
Main features:
browsing the book catalog;
getting information about a book;
maintaining a personal book list;
rating read books;
administering the catalog.
⸻
3. User Types
Guest
Can:
browse the book catalog;
view information about a book;
search for books.
Registered User
Has all the capabilities of a guest, and can also:
create a personal account;
log in;
add books to their personal library;
change the status of a book;
rate books;
view the "My Books" page.
Administrator
Has full access to the book catalog:
adding a book;
editing information;
deleting a book.
⸻
4. Functional Requirements
4.1 Registration
The system must allow the creation of a new account.
The registration form includes:
username;
email;
password;
password confirmation.
Email must be unique.
⸻
4.2 Authorization
The user must be able to log in using email and password.
After successful authorization, the user's personal account opens.
⸻
4.3 Book Catalog
The catalog must display a list of books.
For each book, the following must be displayed:
cover;
title;
author;
genre;
average rating.
⸻
4.4 Search
The system must support searching for books by title.
If no books are found, a corresponding message is displayed.
⸻
4.5 Book Page
Each book must have a separate page.
The page displays:
title;
author;
genre;
description;
cover;
average rating;
current user's rating (if it has been given).
⸻
4.6 Personal Library
A logged-in user can add a book to their library.
For each book, one of the following statuses is set:
Want to read;
Reading;
Read.
At any time, a book can have only one status.
The user can change the status or remove the book from their library.
⸻
4.7 Rating Books
The user can rate a book from 1 to 5.
One book can be rated by one user only once.
The rating can be changed.
The overall rating of the book is automatically formed as the average of all user ratings.
⸻
4.8 User Profile
The profile displays:
username;
email;
number of books in the library;
list of added books.
⸻
4.9 Admin Panel
The administrator has the ability to:
add new books;
edit book information;
delete books;
upload book cover.
⸻
5. Data Structure
Book
title;
author;
genre;
description;
cover;
rating.
User
name;
email;
password.
User Library
user;
book;
status;
rating.
⸻
6. Non-Functional Requirements
The project must be implemented using:
ASP.NET Core MVC;
C#;
Entity Framework Core;
SQL Server;
HTML;
CSS;
JavaScript.
The interface must work correctly in modern browsers and have a responsive design.
⸻
7. Acceptance Criteria
The project is considered complete if the following are implemented:
registration and authorization of users;
browsing the book catalog;
searching for books;
book page;
personal library;
changing the status of a book;
rating books;
profile page;
admin panel for managing the book catalog.