Skip to content

diegoasmello/library-manager

Repository files navigation

📚 library-manager

Efficient management for physical and digital repository collections.

About the project

Library Manager is a web-based system designed to manage items in a physical repository that stores books, magazine volumes and articles, theses, dissertations, and other media types (newspaper clippings, bulletins, etc.). The system supports registration of both physical items (physically located in the repository) and digital items (stored in the application's storage).

Stack

  • Backend: NestJS, Prisma ORM, PostgreSQL, Better Auth
  • Frontend: React, Vite, ShadCN

Features

  • Collection Management: Register and organize books, magazines, theses, and media in general
  • Dual Format Support: Handle both physical items and digital items
  • Loan Requests: Track and manage item loan requests with applicant contact information
  • Content Control: Full CRUD operations for repository items
  • Content Management System (CMS): Control and update the repository's website content
  • Newsletter Management: Access and manage subscribed email lists
  • User Authentication: Secure login and logout system
  • Role-Based Access: Different permission levels (regular users and moderators)

Prerequisites

  • Node.js >= 22
  • Docker and Docker Compose
  • npm

Setup

1. Clone the repository

git clone https://github.com/diegoasmello/library-manager.git
cd library-manager

2. Start the database

docker-compose up -d

3. Install dependencies

npm install

4. Configure environment variables

# API
cp apps/api/.env.example apps/api/.env

# Frontend
cp apps/web/.env.example apps/web/.env

5. Run database migrations

npm run db:migrate

6. (Optional) Seed the database

npm run db:seed

7. Start the application

npm run dev

The API will be available at http://localhost:3000
The frontend at http://localhost:5173

About

Efficient management for physical and digital collections

Resources

Stars

Watchers

Forks

Contributors

Languages