/library-management-system

Final project of SOLVD laba

Primary LanguageTypeScript

Library Management System

Final project of SOLVD laba

Task:

Develop a simple library management system that allows users to manage books, borrowers, and borrowing transactions. The system should provide functionalities such as adding books to the library, registering borrowers, borrowing books, returning books, and generating reports.

Requirements:

  • Book Management: Add new books to the library with details like title, author, publication year, and ISBN. Update book information and availability status. Remove books from the library.

  • Borrower Management: Register borrowers with details like name, contact information, and membership ID. Update borrower information. Remove borrowers from the system. Borrowing Transactions:

    Allow borrowers to borrow books from the library. Handle book availability and checkouts. Track borrowing history and due dates. Allow borrowers to return books.

  • Reports: Generate reports, such as a list of all books in the library, borrowed books, overdue books, and borrower records.

Models

Models

To update models upload file models.draw.io to https://app.diagrams.net/. Don't forget to commit updated file with models and new screenshot.

Installation

Install dependencies with command

npm install

Running the app

To run application you should have installed docker on your machine

Rename .env.example to .env and update variables as needed

  • run
docker compose up
  • run in detached mode
docker compose up -d
  • run and rebuild
docker compose up --build

Application will run on http://localhost:4000/api/v1

Swagger documentation

While application running you can find swagger documentation at http://localhost:4000/docs

MIGRATIONS & PRISMA

To generate Prisma types before first run or after update prisma.schema file run

npx prisma generate

To generate and run migration

  npm run migrate

Nest Logo

A progressive Node.js framework for building efficient and scalable server-side applications.

NPM Version Package License NPM Downloads CircleCI Coverage Discord Backers on Open Collective Sponsors on Open Collective Support us

Description

Nest framework TypeScript starter repository.

Support

Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please read more here.

Stay in touch

License

Nest is MIT licensed.