The purpose of the project: To create a complex system for the provision of library resources, users and management.
Functions:
○ Books: ■ Searching and filtering books (category, author, year of publication, etc. on). ■ Adding, updating, deleting and viewing books. ■ Inventory management of books (tracking the number of books).
○ Authors: ■ Searching and filtering authors ■ Adding, updating, deleting and viewing authors. ■ Management of authors ' books.
○ Rating and reviews: ■ Users writing ratings and reviews for books. ■ Viewing Ratings and reviews.
○ Book Reservation: ■ For users to reserve books online. ■ For users to reserve books online. ■ Tracking and managing reservation dates.
○ Book Rental: ■ Renting and returning books. ■ Tracking rental dates and return reminders.
○ Notifications and reminders: ■ Book return reminders notifications about new books and events
○ Administration: ■ System input-output and management. ■ User management (except superadmin).
○ User Module: ■ User Add, Update, Delete and view (except superadmin)..
○ Accountability: ■ Generating and viewing reports (rent statistics, most read books, etc.).
❖ Book Management-APIs
- addBook: adds new books.
- updateBook: updates the information of the current book.
- deleteBook: deletes the book.
- getBookById: retrieves information about a particular book.
- getAllBooks: gets all the books.
❖ Book Search and filtering
- searchBooks: searches books according to search criteria.
- filterBooks: filters books according to certain criteria. Inventory Management
- getBookInventory: tracks and displays the current number of books.
❖ User Management-APIs
- addUser: adds new user.
- updateUser: updates the data of the current user.
- deleteUser: deletes the user.
- getUserById: retrieves information about a particular user.
- getAllUsers: gets all users.
- getUserByUsername: retrieves user information based on userName.
- getUsersByRole: acquires users with a certain role.
- deactivateUser: deactivates the user account.
❖ Registration and authorization-APIs
- registerUser: performs user registration.
- login: confirms user login.
- logout: performs user's exit.
❖ Author Management – APIs The functions of adding, updating, deleting and viewing authors will be provided. The following methods will provide this functionality:
- addAuthor: adds a new author.
- updateAuthor: updates the current author's data.
- deleteAuthor: deletes the author.
- getAuthorById: obtains information about a particular author.
- getAllAuthors: acquires all authors.
- getAuthorByName: retrieves data based on the author's name.
❖ Management Of Books By Authors
- removeBookFromAuthor: removes the author's book.
- getBooksByAuthor: acquires books belonging to the author.
❖ Ratings and Reviews – APIs
- addRatingAndReview(): Adds new rating and feedback.
- getRatingsAndReviewsByBook(): Brings all ratings and reviews for a book.
- getRatingsAndReviewsByUser(): It brings all ratings and reviews given by a user.
- updateRatingAndReview(): Updates the current rating and review.
- deleteRatingAndReview(): Removes the current rating and review.
❖ Reservations-APIs
- addReservation: adds new reservation for book by user.
- updateReservation: updates an existing reservation (for example, changes dates).
- cancelReservation: cancels an existing reservation.
- getUserReservations: gets all the active reservations of the user.
- getBookReservations: gets all active reservations for the book.
- getReservationDetails: gets detailed information about certain reservations.
- checkAvailability: checks whether the book is available on certain dates.
❖ Report generation-APIs
- generateRentalStatistics: generates rental statistics.
- getMostReadBooks: gets the most read books.
- generateUserActivityReport: generates user activity report.
- getBookRentalHistory: gets the rental history of the book.
- getUserLoginHistory: retrieves the user's login history.
❖ APIs for notifications and reminders
- addReminder ○ Work to do: adds a reminder to the user to return the book. ○ Input parameters: userId, bookId, reminderDate
- removeReminder ○ Work to do: deletes the reminder. ○ Input parameters: reminderId
- getRemindersByUser ○ Work to do: gets all reminders for a specific user. ○ Input parameters: userId
- getUpcomingReminders ○ Work to do: gets reminders of the future (for example, after a certain date). ○ Input parameters: date
- sendReminderNotification ○ Work to do: sends a reminder to the user via email, SMS, or in-app notification. ○ Input parameters: userId, message
- addNewBookNotification ○ Work to do: adds notifications to users about new books. ○ Input parameters: userId, bookId, notificationMessage
- addEventNotification ○ Work to do: adds notification to users about actions. ○ Input parameters: userId, eventId, notificationMessage
- getNotificationsByUser ○ Work to do: gets all notifications for a specific user. ○ Input parameters: userId
- removeNotification ○ Work to do: deletes the notification. ○ Input parameters: notificationId
❖ Automatic check and refund-APIs The functions of automatic checking and returning books will be provided. The following methods will provide this functionality:
- checkOverdueBooks ○ Work to do: checks books with a refund date past. ○ Input Settings: currentDate (today's date)
- sendOverdueNotices ○ Work to do: sends notifications to users for non-refundable books. ○ Access Settings: overdueBooks (list of non-refundable books)
- updateBookStatus ○ Work to do: updates the status of the book (for example, “returned”). ○ Input parameters: bookId, newStatus
- logReturnEvent ○ Work to do: records the event that occurred during the return of the book. ○ Input parameters: bookId, userId, returnDate
-
Admin (SuperAdmin) ○ User management: ability to add, delete, update users and view all user data. ○ Book management: the ability to add, update, delete books and view the list of books. ○ Author Management: the ability to add, update, delete authors and view the list of authors. ○ Reservation management: ability to confirm or cancel book reservations. ○ Rating and Feedback Management: the ability to track, approve and delete ratings and reviews that users give for books. ○ Notifications and reminders: adding, removing and updating notifications and reminders. ○ Reports: viewing rental statistics, most read books and other reports. ○ System settings: change and manage System Settings. ○ Roles and permissions: assignment and management of roles and permissions.
-
Library Worker (Admin) ○ Book management: the ability to add, update, delete books and view their list. ○ Reservation management: accepting and managing book reservations. ○ Reminders and notifications: sending reminders to users and tracking notifications. ○ Return of books: to carry out the return and automatic verification of books. ○ Authors management: updating and viewing authors ' information. ○ Viewing reports: viewing rental statistics and other reports.
-
USER (User) ○ Book Search: searching and filtering books. ○ Booking:book books. ○ Rating and feedback: giving ratings and writing reviews for books. ○ Reminders: keep track of reminders. ○ Notifications: viewing notifications about new books and events. ○ User data: updating your own user data.