{"id":23424482,"url":"https://github.com/anamarijapapic/library-management-system","last_synced_at":"2025-07-05T04:06:11.156Z","repository":{"id":152721218,"uuid":"605233817","full_name":"anamarijapapic/Library-Management-System","owner":"anamarijapapic","description":"Final project for college subject Java Programming. Web application that manages the library. It enables viewing the library catalog and taking actions on library materials and users. 📚👥","archived":false,"fork":false,"pushed_at":"2023-02-22T18:24:20.000Z","size":3577,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-15T13:56:28.737Z","etag":null,"topics":["docker","flyway","java","postgresql","spring-boot","spring-security","thymeleaf"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/anamarijapapic.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null}},"created_at":"2023-02-22T18:23:04.000Z","updated_at":"2024-12-09T01:08:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"f1860c45-a060-4c23-9146-b4eeb628c879","html_url":"https://github.com/anamarijapapic/Library-Management-System","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/anamarijapapic/Library-Management-System","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anamarijapapic%2FLibrary-Management-System","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anamarijapapic%2FLibrary-Management-System/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anamarijapapic%2FLibrary-Management-System/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anamarijapapic%2FLibrary-Management-System/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anamarijapapic","download_url":"https://codeload.github.com/anamarijapapic/Library-Management-System/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anamarijapapic%2FLibrary-Management-System/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263679238,"owners_count":23495014,"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":["docker","flyway","java","postgresql","spring-boot","spring-security","thymeleaf"],"created_at":"2024-12-23T04:18:07.242Z","updated_at":"2025-07-05T04:06:11.150Z","avatar_url":"https://github.com/anamarijapapic.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Library Management System\n\n## Table of Contents\n\n* [General Info](#general-info)\n* [Features](#features)\n* [Technologies](#technologies)\n* [Database Model](#database-model)\n* [Getting Started](#getting-started)\n* [Credits](#credits)\n\n## General Info\n\nLibrary Management System is a web application that manages the library. It enables viewing the library catalog and taking actions on library materials and users. 📚👥\n\n\u003e Project created as a college seminar:  \n\u003e *SRC125 - Programming in Java*  \n\u003e *University of Split - University Department of Professional Studies*\n\n![Library Management System - Home](https://user-images.githubusercontent.com/92815435/218094062-352f46a9-68e5-4524-a2a6-4dd2f96ceb25.png \"Library Management System - Home\")\n\n## Features\n\n### User Management\n\n- Roles (base for authorization):\n    - Admin\n    - Librarian\n    - Member\n- Available operations:\n    - User creation (adding new user)\n    - Edit and update user data\n    - Delete user\n- Authentication (login/logout)\n- Show all users (with search, filtering, sorting and pagination)\n- Show user details for specific user\n- Show current user details (My Details)\n\n### Library Materials/Resources \u0026 Catalog Management\n\n#### Authors\n\n- Available operations:\n    - Add new author\n    - Edit and update author\n    - Delete author\n- View all authors (with search, sorting and pagination)\n\n#### Categories\n\n- Available operations:\n    - Add new category\n    - Edit and update category\n    - Delete category\n- View all categories (with search, sorting and pagination)\n\n#### Works\n\n- Available operations:\n    - Add new work\n    - Edit and update work\n    - Delete work\n- View all works (with search, filtering, sorting and pagination)\n- View all book copies of specific work (with search, filtering and pagination)\n\n#### Books\n\n- Available operations:\n    - Add new book\n    - Edit and update book\n    - Delete book\n- View all books (with search, filtering and pagination)\n\n#### Resource Borrowing - Loans\n\n- Issuance and return of library resources\n    - Start loan\n        - Limitation: max `5` books per member borrowed at the same time\n    - End loan\n- View all loans (with sorting and pagination)\n- View all loans of specific book (with sorting and pagination)\n- View loans by member - current loans and previous loans (with sorting and pagination)\n\n### Mail Notification Sending\n\n- Send \"Welcome\" mail to user when his account is created\n- Send \"Loan Started\" mail to member when he borrows a book\n- Send \"Loan Ended\" mail to member when he returns a book \n\n## Technologies\n\n![Java](https://img.shields.io/badge/java-%23ED8B00.svg?style=for-the-badge\u0026logo=java\u0026logoColor=white)\n![Spring Boot](https://img.shields.io/badge/Spring%20Boot-6DB33F.svg?style=for-the-badge\u0026logo=Spring-Boot\u0026logoColor=white)\n![Spring Security](https://img.shields.io/badge/Spring%20Security-6DB33F.svg?style=for-the-badge\u0026logo=Spring-Security\u0026logoColor=white)  \n![Thymeleaf](https://img.shields.io/badge/Thymeleaf-%23005C0F.svg?style=for-the-badge\u0026logo=Thymeleaf\u0026logoColor=white)\n![Bootstrap](https://img.shields.io/badge/bootstrap-%23563D7C.svg?style=for-the-badge\u0026logo=bootstrap\u0026logoColor=white)\n![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge\u0026logo=html5\u0026logoColor=white)\n![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge\u0026logo=css3\u0026logoColor=white)  \n![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge\u0026logo=javascript\u0026logoColor=%23F7DF1E)\n![jQuery](https://img.shields.io/badge/jquery-%230769AD.svg?style=for-the-badge\u0026logo=jquery\u0026logoColor=white)  \n![Flyway](https://img.shields.io/badge/Flyway-CC0200.svg?style=for-the-badge\u0026logo=Flyway\u0026logoColor=white)  \n![Postgres](https://img.shields.io/badge/postgres-%23316192.svg?style=for-the-badge\u0026logo=postgresql\u0026logoColor=white)  \n![Docker](https://img.shields.io/badge/docker-%230db7ed.svg?style=for-the-badge\u0026logo=docker\u0026logoColor=white)  \n\n![IntelliJ IDEA](https://img.shields.io/badge/IntelliJIDEA-000000.svg?style=for-the-badge\u0026logo=intellij-idea\u0026logoColor=white)\n\n## Database Model\n\n![IntelliJ IDEA - Database Diagram](https://user-images.githubusercontent.com/92815435/218085760-eda35b13-4193-4f88-a39c-9d8345a842e0.png \"IntelliJ IDEA - Database Diagram\")  \n\n## Getting Started\n\n### Requirements\n\nYou should have the following installed:\n\n- [Docker](https://www.docker.com/community-edition) bundled with docker-compose\n\n### Running the Application\n\nRun the following commands in terminal:  \n\n1. Position in the project folder (run from repo root directory):  \n`cd library-management-system/`\n\n2. Build project .jar file in target folder:  \n`./mvnw clean package -DskipTests`\n\n3. Build and start the docker environment and local web server:  \n`docker-compose up` (you can stop it with a single `cmd/ctrl+c`)\n\n4. Open http://localhost:8080/ in your browser.\n\nIf for any reason you need to modify the code and apply changes, you should:\n\n1. Stop and remove Docker containers and their volumes:  \n`docker-compose down`\n\n2. Remove `library-management-system.jar` Docker image:  \n`docker rmi library-management-system.jar`\n\n3. Repeat previous steps 2.-4.\n\n#### Managing the Database\n\nYou can see the PostgreSQL database inside IntelliJ IDEA Database window, just do the following:  \n\n`View` -\u003e `Tool Windows` -\u003e `Database` -\u003e `+` -\u003e `Data Source from URL` and enter  \n\n- URL: `jdbc:postgresql:///postgres`\n- Driver: `PostgreSQL`\n\nThen configure properties:  \n\n- Username: `postgres`\n- Password: `postgres`\n- Database: `postgres`\n- Host: `localhost`\n- Port: `5432`\n\n#### Testing Mail Sending\n\n[MailHog](https://github.com/mailhog/MailHog) Web UI, an email testing tool for developers, is available at http://localhost:8025/.\n\n## Credits\n\n ✍️ **api-team** members: \n\n* [Ivana Mihanović](https://github.com/imihanovic)\n* [Anamarija Papić](https://github.com/anamarijapapic)\n* [Petar Vidović](https://github.com/Petar1107)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanamarijapapic%2Flibrary-management-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanamarijapapic%2Flibrary-management-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanamarijapapic%2Flibrary-management-system/lists"}