๐ 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
Application links
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
- Backend http://localhost:3001
- Frontend http://localhost:5173
- Database manager http://localhost:8080
- System: PostgreSQL
- Username: libraryapp
- Password: salainen
- Database: libraryapp
Commands (in repostitory root)
make up: Creates & starts the servicesmake down: Removes the servicesmake 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 backendmake testfront: Runt unit tests for frontendmake lint: Lints both frontend & backendmake prettier: Runs prettier for both frontend & backendmake 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
- Product Backlog
- Sprint 0 Backlog
- Sprint 1 Backlog
- Sprint 2 Backlog
- Sprint 3 Backlog
- Sprint 4 Backlog
- Sprint 5 Backlog
- Sprint 6 Backlog
- Sprint 7 Backlog
- Sprint 8 Backlog
Definition of Done
Definition of Done can be found here.