https://github.com/anamarijapapic/library-management-system
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. 📚👥
https://github.com/anamarijapapic/library-management-system
docker flyway java postgresql spring-boot spring-security thymeleaf
Last synced: 12 months ago
JSON representation
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. 📚👥
- Host: GitHub
- URL: https://github.com/anamarijapapic/library-management-system
- Owner: anamarijapapic
- Created: 2023-02-22T18:23:04.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-02-22T18:24:20.000Z (over 3 years ago)
- Last Synced: 2025-06-15T13:56:28.737Z (about 1 year ago)
- Topics: docker, flyway, java, postgresql, spring-boot, spring-security, thymeleaf
- Language: HTML
- Homepage:
- Size: 3.41 MB
- Stars: 3
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Library Management System
## Table of Contents
* [General Info](#general-info)
* [Features](#features)
* [Technologies](#technologies)
* [Database Model](#database-model)
* [Getting Started](#getting-started)
* [Credits](#credits)
## General Info
Library Management System is a web application that manages the library. It enables viewing the library catalog and taking actions on library materials and users. 📚👥
> Project created as a college seminar:
> *SRC125 - Programming in Java*
> *University of Split - University Department of Professional Studies*

## Features
### User Management
- Roles (base for authorization):
- Admin
- Librarian
- Member
- Available operations:
- User creation (adding new user)
- Edit and update user data
- Delete user
- Authentication (login/logout)
- Show all users (with search, filtering, sorting and pagination)
- Show user details for specific user
- Show current user details (My Details)
### Library Materials/Resources & Catalog Management
#### Authors
- Available operations:
- Add new author
- Edit and update author
- Delete author
- View all authors (with search, sorting and pagination)
#### Categories
- Available operations:
- Add new category
- Edit and update category
- Delete category
- View all categories (with search, sorting and pagination)
#### Works
- Available operations:
- Add new work
- Edit and update work
- Delete work
- View all works (with search, filtering, sorting and pagination)
- View all book copies of specific work (with search, filtering and pagination)
#### Books
- Available operations:
- Add new book
- Edit and update book
- Delete book
- View all books (with search, filtering and pagination)
#### Resource Borrowing - Loans
- Issuance and return of library resources
- Start loan
- Limitation: max `5` books per member borrowed at the same time
- End loan
- View all loans (with sorting and pagination)
- View all loans of specific book (with sorting and pagination)
- View loans by member - current loans and previous loans (with sorting and pagination)
### Mail Notification Sending
- Send "Welcome" mail to user when his account is created
- Send "Loan Started" mail to member when he borrows a book
- Send "Loan Ended" mail to member when he returns a book
## Technologies













## Database Model

## Getting Started
### Requirements
You should have the following installed:
- [Docker](https://www.docker.com/community-edition) bundled with docker-compose
### Running the Application
Run the following commands in terminal:
1. Position in the project folder (run from repo root directory):
`cd library-management-system/`
2. Build project .jar file in target folder:
`./mvnw clean package -DskipTests`
3. Build and start the docker environment and local web server:
`docker-compose up` (you can stop it with a single `cmd/ctrl+c`)
4. Open http://localhost:8080/ in your browser.
If for any reason you need to modify the code and apply changes, you should:
1. Stop and remove Docker containers and their volumes:
`docker-compose down`
2. Remove `library-management-system.jar` Docker image:
`docker rmi library-management-system.jar`
3. Repeat previous steps 2.-4.
#### Managing the Database
You can see the PostgreSQL database inside IntelliJ IDEA Database window, just do the following:
`View` -> `Tool Windows` -> `Database` -> `+` -> `Data Source from URL` and enter
- URL: `jdbc:postgresql:///postgres`
- Driver: `PostgreSQL`
Then configure properties:
- Username: `postgres`
- Password: `postgres`
- Database: `postgres`
- Host: `localhost`
- Port: `5432`
#### Testing Mail Sending
[MailHog](https://github.com/mailhog/MailHog) Web UI, an email testing tool for developers, is available at http://localhost:8025/.
## Credits
✍️ **api-team** members:
* [Ivana Mihanović](https://github.com/imihanovic)
* [Anamarija Papić](https://github.com/anamarijapapic)
* [Petar Vidović](https://github.com/Petar1107)