๐Ÿ“– LibraryApp

April 22, 2025 ยท View on GitHub

LibraryApp is a modern web application designed to streamline library operations, making it ideal for small community libraries in offices, schools, or residential complexes. It enables users to browse, borrow, and return books effortlessly while providing administrators with powerful tools to manage inventory, handle book requests, and keep users informed through Slack notifications. Built with a Mobile First design approach, LibraryApp ensures an intuitive and seamless user experience across all devices.

Regular users can:

  • Borrow books by scanning barcodes.
  • Request new books to be added to the library.
  • Reserve books that are currently unavailable.
  • Extend their loans if the book is not reserved.
  • Receive Slack notifications for due date reminders or when requested books are added to the library.

Administrators can:

  • Add new books by scanning their barcodes.
  • Track and manage book inventory.
  • Promote other users to administrators.
  • Process book requests and notify requesters via Slack.

ย 

๐Ÿ‘๏ธ System Overview

Codacy Badge

Tools, technologies and libraries used:

  • Programming Languages: JavaScript, TypeScript
  • Frameworks: React, Node.js, Express, MUI
  • Database: PostgreSQL, Sequelize
  • Version Control: Git, GitHub
  • Testing: Jest, Playwright
  • CI/CD: GitHub Actions, Heroku, Codacy
  • Project Management: GitHub Projects
  • Communication: Slack
  • Accessibility: Lighthouse
  • Other Tools: Docker, ESLint, Prettier

User guides:

ย 

๐Ÿ› ๏ธ Developer Resources

Setup

Supportive documentation

Services for local development

Commands (in repostitory root)

  • make up: Creates & starts the services
  • make down: Removes the services
  • make rebuild: Rebuilds the images (e.g. adding new dependencies)
  • make fixmodules: Fixes vscode "Cannot find module ..."
  • make resetdb: Resets the database (must be done after changing schema)
  • make testback: Runs unit tests for backend
  • make testfront: Runt unit tests for frontend
  • make lint: Lints both frontend & backend
  • make prettier: Runs prettier for both frontend & backend
  • make e2e: Run e2e tests

ย 

๐Ÿš€ Project

This project was created as part of the Software Engineering Project course at the University of Helsinki. The project lasted from January 2025 to May 2025 and followed the Scrum methodology as instructed by the University of Helsinki Software Engineering course (course page, Finnish only).

Scrum backlogs

Definition of Done

Definition of Done can be found here.