Skip to content

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. ๐Ÿ“š๐Ÿ‘ฅ

anamarijapapic/Library-Management-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

80 Commits
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Library Management System

Table of Contents

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

Library Management System - Home

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

Java Spring Boot Spring Security
Thymeleaf Bootstrap HTML5 CSS3
JavaScript jQuery
Flyway
Postgres
Docker

IntelliJ IDEA

Database Model

IntelliJ IDEA - Database Diagram

Getting Started

Requirements

You should have the following installed:

  • Docker 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 Web UI, an email testing tool for developers, is available at http://localhost:8025/.

Credits

โœ๏ธ api-team members:

About

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. ๐Ÿ“š๐Ÿ‘ฅ

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published