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

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (7.7%) to scientific vocabulary

Keywords

docker flyway java postgresql spring-boot spring-security thymeleaf
Last synced: 5 months ago · JSON representation

Repository

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. 📚👥

Basic Info
  • Host: GitHub
  • Owner: anamarijapapic
  • Language: HTML
  • Default Branch: main
  • Homepage:
  • Size: 3.41 MB
Statistics
  • Stars: 3
  • Watchers: 1
  • Forks: 1
  • Open Issues: 0
  • Releases: 0
Topics
docker flyway java postgresql spring-boot spring-security thymeleaf
Created almost 3 years ago · Last pushed almost 3 years ago
Metadata Files
Readme

README.md

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:

Owner

  • Name: Anamarija Papić
  • Login: anamarijapapic
  • Kind: user
  • Location: Split, Croatia
  • Company: @Agilo

GitHub Events

Total
  • Issues event: 2
  • Watch event: 2
  • Issue comment event: 2
Last Year
  • Issues event: 2
  • Watch event: 2
  • Issue comment event: 2

Committers

Last synced: 8 months ago

All Time
  • Total Commits: 64
  • Total Committers: 3
  • Avg Commits per committer: 21.333
  • Development Distribution Score (DDS): 0.453
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Anamarija Papić a****0@o****r 35
Petar1107 p****0@o****r 19
imihanovic i****4@g****m 10
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 8 months ago

All Time
  • Total issues: 1
  • Total pull requests: 0
  • Average time to close issues: about 1 hour
  • Average time to close pull requests: N/A
  • Total issue authors: 1
  • Total pull request authors: 0
  • Average comments per issue: 2.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 1
  • Pull requests: 0
  • Average time to close issues: about 1 hour
  • Average time to close pull requests: N/A
  • Issue authors: 1
  • Pull request authors: 0
  • Average comments per issue: 2.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • CyberScopeToday (1)
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels