{"id":20271793,"url":"https://github.com/alyvswag/library-project","last_synced_at":"2026-04-12T00:02:55.955Z","repository":{"id":253981321,"uuid":"845127723","full_name":"alyvswag/library-project","owner":"alyvswag","description":"Online Library Management System","archived":false,"fork":false,"pushed_at":"2024-10-22T10:04:00.000Z","size":8113,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-14T05:50:08.858Z","etag":null,"topics":["api-rest","css","docker-compose","hibernate-jpa","html","java","javamailsender","junit-test","maven","mocikto","postgresql","rabbitmq","redis","redisson","spring-aop","spring-boot","spring-security","spring-security-jwt"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alyvswag.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-20T16:26:50.000Z","updated_at":"2024-10-29T21:33:15.000Z","dependencies_parsed_at":"2024-09-16T00:30:51.004Z","dependency_job_id":null,"html_url":"https://github.com/alyvswag/library-project","commit_stats":null,"previous_names":["alyvswag/library-project"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alyvswag%2Flibrary-project","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alyvswag%2Flibrary-project/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alyvswag%2Flibrary-project/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alyvswag%2Flibrary-project/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alyvswag","download_url":"https://codeload.github.com/alyvswag/library-project/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241758964,"owners_count":20015251,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-rest","css","docker-compose","hibernate-jpa","html","java","javamailsender","junit-test","maven","mocikto","postgresql","rabbitmq","redis","redisson","spring-aop","spring-boot","spring-security","spring-security-jwt"],"created_at":"2024-11-14T12:39:24.248Z","updated_at":"2026-04-12T00:02:55.905Z","avatar_url":"https://github.com/alyvswag.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"-----\nProject name: Online Library Management System\n------\nThe purpose of the project: To create a complex system for the provision of library resources, users and management.\n-----\nFunctions:\n\n○ Books:\n■ Searching and filtering books (category, author, year of publication, etc. on).\n■ Adding, updating, deleting and viewing books.\n■ Inventory management of books (tracking the number of books).\n\n○ Authors:\n■ Searching and filtering authors\n■ Adding, updating, deleting and viewing authors.\n■ Management of authors ' books.\n\n○ Rating and reviews:\n■ Users writing ratings and reviews for books.\n■ Viewing Ratings and reviews.\n\n○ Book Reservation:\n■ For users to reserve books online.\n■ For users to reserve books online.\n■ Tracking and managing reservation dates.\n\n○ Book Rental:\n■ Renting and returning books.\n■ Tracking rental dates and return reminders.\n\n○ Notifications and reminders:\n■ Book return reminders notifications about new books and events\n\n○ Administration:\n■ System input-output and management.\n■ User management (except superadmin).\n\n○ User Module:\n■ User Add, Update, Delete and view (except superadmin)..\n\n○ Accountability:\n■ Generating and viewing reports (rent statistics, most read books, etc.).\n\n-----------------------------------------------------------------------------------------------------------------------------\n\n\nTechnical Task\nThe operations that must be performed on the modules are explained below:\n------\n\n❖ Book Management-APIs\n \n1.\taddBook: adds new books.\n2.\tupdateBook: updates the information of the current book.\n3.\tdeleteBook: deletes the book.\n4.\tgetBookById: retrieves information about a particular book.\n5.\tgetAllBooks: gets all the books.\n   \n❖  Book Search and filtering \n1.\tsearchBooks: searches books according to search criteria.\n2.\tfilterBooks: filters books according to certain criteria.\nInventory Management\n1.\tgetBookInventory: tracks and displays the current number of books.\n\n❖ User Management-APIs\n\n1.\taddUser: adds new user.\n2.\tupdateUser: updates the data of the current user.\n3.\tdeleteUser: deletes the user.\n4.\tgetUserById: retrieves information about a particular user.\n5.\tgetAllUsers: gets all users.\n6.\tgetUserByUsername: retrieves user information based on userName.\n7.\tgetUsersByRole: acquires users with a certain role.\n8.\tdeactivateUser: deactivates the user account.\n\n❖ Registration and authorization-APIs\n\n1.\tregisterUser: performs user registration.\n2.\tlogin: confirms user login.\n3.\tlogout: performs user's exit.\n\n❖ Author Management – APIs\nThe functions of adding, updating, deleting and viewing authors will be provided. The following methods will provide this functionality:\n1.\taddAuthor: adds a new author.\n2.\tupdateAuthor: updates the current author's data.\n3.\tdeleteAuthor: deletes the author.\n4.\tgetAuthorById: obtains information about a particular author.\n5.\tgetAllAuthors: acquires all authors.\n6.\tgetAuthorByName: retrieves data based on the author's name.\n   \n❖ Management Of Books By Authors\n1.\tremoveBookFromAuthor: removes the author's book.\n2.\tgetBooksByAuthor: acquires books belonging to the author.\n\n❖\tRatings and Reviews – APIs\n1. addRatingAndReview(): Adds new rating and feedback.\n2. getRatingsAndReviewsByBook(): Brings all ratings and reviews for a book.\n3. getRatingsAndReviewsByUser(): It brings all ratings and reviews given by a user.\n4. updateRatingAndReview(): Updates the current rating and review.\n5. deleteRatingAndReview(): Removes the current rating and review.\n\n❖ Reservations-APIs\n\n1.\taddReservation: adds new reservation for book by user.\n2.\tupdateReservation: updates an existing reservation (for example, changes dates).\n3.\tcancelReservation: cancels an existing reservation.\n4.\tgetUserReservations: gets all the active reservations of the user.\n5.\tgetBookReservations: gets all active reservations for the book.\n6.\tgetReservationDetails: gets detailed information about certain reservations.\n7.\tcheckAvailability: checks whether the book is available on certain dates.\n\n\n❖ Report generation-APIs \n\n1.\tgenerateRentalStatistics: generates rental statistics.\n2.\tgetMostReadBooks: gets the most read books.\n3.\tgenerateUserActivityReport: generates user activity report.\n4.\tgetBookRentalHistory: gets the rental history of the book.\n5.\tgetUserLoginHistory: retrieves the user's login history.\n\n\n❖ APIs for notifications and reminders\n\n1.\taddReminder\n○ Work to do: adds a reminder to the user to return the book.\n○ Input parameters: userId, bookId, reminderDate\n2.\tremoveReminder\n○ Work to do: deletes the reminder.\n○ Input parameters: reminderId\n3.\tgetRemindersByUser\n○ Work to do: gets all reminders for a specific user.\n○ Input parameters: userId\n4.\tgetUpcomingReminders\n○ Work to do: gets reminders of the future (for example, after a certain date).\n○ Input parameters: date\n5.\tsendReminderNotification\n○ Work to do: sends a reminder to the user via email, SMS, or in-app notification.\n○ Input parameters: userId, message\n6.\taddNewBookNotification\n○ Work to do: adds notifications to users about new books.\n○ Input parameters: userId, bookId, notificationMessage\n7.\taddEventNotification\n○ Work to do: adds notification to users about actions.\n○ Input parameters: userId, eventId, notificationMessage\n8.\tgetNotificationsByUser\n○ Work to do: gets all notifications for a specific user.\n○ Input parameters: userId\n9.\tremoveNotification\n○ Work to do: deletes the notification.\n○ Input parameters: notificationId\n\n❖ Automatic check and refund-APIs\nThe functions of automatic checking and returning books will be provided. The following methods will provide this functionality:\n\n1.\tcheckOverdueBooks\n○ Work to do: checks books with a refund date past.\n○ Input Settings: currentDate (today's date)\n2.\tsendOverdueNotices\n○ Work to do: sends notifications to users for non-refundable books.\n○ Access Settings: overdueBooks (list of non-refundable books)\n3.\tupdateBookStatus\n○ Work to do: updates the status of the book (for example, “returned”).\n○ Input parameters: bookId, newStatus\n4.\tlogReturnEvent\n○ Work to do: records the event that occurred during the return of the book.\n○ Input parameters: bookId, userId, returnDate\n\n-----------------------------------------------------------------------------------------------------------------------------\n\nRoles and permission\n---\n1.\tAdmin (SuperAdmin)\n○ User management: ability to add, delete, update users and view all user data.\n○ Book management: the ability to add, update, delete books and view the list of books.\n○ Author Management: the ability to add, update, delete authors and view the list of authors.\n○ Reservation management: ability to confirm or cancel book reservations.\n○ Rating and Feedback Management: the ability to track, approve and delete ratings and reviews that users give for books.\n○ Notifications and reminders: adding, removing and updating notifications and reminders.\n○ Reports: viewing rental statistics, most read books and other reports.\n○ System settings: change and manage System Settings.\n○ Roles and permissions: assignment and management of roles and permissions.\n\n2.\tLibrary Worker (Admin)\n○ Book management: the ability to add, update, delete books and view their list.\n○ Reservation management: accepting and managing book reservations.\n○ Reminders and notifications: sending reminders to users and tracking notifications.\n○ Return of books: to carry out the return and automatic verification of books.\n○ Authors management: updating and viewing authors ' information.\n○ Viewing reports: viewing rental statistics and other reports.\n\n3.\tUSER (User)\n○ Book Search: searching and filtering books.\n○ Booking:book books.\n○ Rating and feedback: giving ratings and writing reviews for books.\n○ Reminders: keep track of reminders.\n○ Notifications: viewing notifications about new books and events.\n○ User data: updating your own user data.\n\n-----------------------------------------------------------------------------------------------------------------------------\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falyvswag%2Flibrary-project","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falyvswag%2Flibrary-project","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falyvswag%2Flibrary-project/lists"}