Skip to content

This is a modern library management system built with Nuxt.js, featuring book catalog management, user authentication, borrowing functionality, and ISBN search. It includes comprehensive documentation and is licensed under GPL-3.0 for open-source non-commercial use.

License

Notifications You must be signed in to change notification settings

sihuangtech/sk-library-community

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SK Library Community Edition - Library Management System

A modern library management system built with Nuxt.js that helps you manage book collections and track borrowing activities. The system uses modern web technology stack to provide an intuitive interface and powerful features.

✨ Features

  • 📚 Book Management: Add, edit, delete books with ISBN auto-fetching
  • 🔍 Smart Search: Search by title, author, ISBN, and multiple criteria
  • 📖 Borrowing Management: Track lending and returns with overdue reminders
  • 📊 Data Statistics: Book counts, categories, and borrowing statistics
  • 🎨 Responsive Design: Adapts to various device screens
  • 🗄️ Local Storage: Uses SQLite local database for secure data control
  • 🔐 Security Authentication: Admin login protection with session management
  • 🔄 One-Click Updates: Automatic system updates with database backup

☁️ Cloud Hosting Option

Deploying this system requires a server environment. If you don't have server deployment experience or don't have access to a server, we recommend trying our cloud-hosted version: SK Library (library.skstudio.cn) - a fully managed library management service that is ready to use immediately and requires no technical setup.

🚀 Quick Start

Prerequisites

  • Node.js 18.0+
  • NPM 8.0+
  • Git (for update functionality)

One-Click Startup

Automated startup scripts are provided for easy setup:

Windows System

start.bat

Mac/Linux System

chmod +x start.sh
./start.sh

The startup script automatically:

  • Checks environment dependencies
  • Guides system configuration (API keys, admin accounts, etc.)
  • Installs project dependencies
  • Initializes database
  • Starts development server

Manual Installation

# 1. Install dependencies
npm install

# 2. Configure system (copy and edit config file)
cp config.yaml.example config.yaml

# 3. Initialize database
npx prisma migrate dev --name init

# 4. Start application
npm run dev

The application will start at http://localhost:3008.

📖 Documentation

Detailed usage and deployment documentation is available in the docs/ directory:

  • Deployment Guide - Detailed deployment steps, configuration instructions, and production deployment
  • User Guide - Complete feature usage instructions and best practices
  • Update Guide - One-click update and rollback functionality explained
  • API Documentation - Complete API interface documentation with usage examples

🔄 System Updates

The project provides one-click update functionality to safely pull the latest code from the repository:

Windows System

update.bat

Mac/Linux System

./update.sh

Update functionality includes:

  • Automatic database and configuration backup
  • Smart new version detection
  • Safe code updates
  • Dependency package synchronization
  • Database migrations

If issues occur during updates, use the rollback script to quickly restore:

rollback.bat    # Windows
./rollback.sh   # Mac/Linux

🛠️ Technology Stack

This is a full-stack application built with modern web technologies, using Nuxt.js as the main framework, integrated with Prisma ORM for database management, Tailwind CSS and Nuxt UI for modern interface design, SQLite for lightweight local data storage, and third-party ISBN API integration for automatic book information retrieval.

📁 Project Structure

├── components/          # Vue components
├── layouts/            # Page layouts
├── pages/              # Page routing
├── server/api/         # API endpoints
├── prisma/             # Database configuration
├── middleware/         # Middleware
├── plugins/            # Plugins
├── docs/               # Project documentation
├── start.bat/sh        # Startup scripts
├── update.bat/sh       # Update scripts
├── rollback.bat/sh     # Rollback scripts
└── config.yaml         # System configuration

🔧 Development

# Development mode
npm run dev

# Build production version
npm run build

# Preview production version
npm run preview

# Database management
npx prisma studio

🗄️ Database

The system uses SQLite as the local database, with the data file being library.db.

Web Interface Initialization (Recommended):

  1. Log in to the system and access the "System Settings" page
  2. Click the "One-Click Database Initialization" button

Command Line Initialization:

npx prisma migrate dev --name init

🔐 Authentication & Security

  • Cookie-based session authentication
  • Admin account protection
  • All management functions require login
  • Admin credentials set in configuration file

📝 ISBN API

This project uses ISBN Market API to retrieve book information. API key needs to be set in the configuration file.

🤝 Contributing

  1. Fork the repository
  2. Create feature branch (git checkout -b feature/amazing-feature)
  3. Commit changes (git commit -m 'Add some amazing feature')
  4. Push to branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📄 License

This project is licensed under GNU General Public License v3.0 (GPL-3.0), an open-source license that prohibits commercial use. See LICENSE file for more information.

Important Restrictions:

  • Commercial use is prohibited
  • Any derivative works based on this software must also be open-source
  • Full source code must be provided when distributing

🆘 Support

⭐️ Star History

Star History Chart

About

This is a modern library management system built with Nuxt.js, featuring book catalog management, user authentication, borrowing functionality, and ISBN search. It includes comprehensive documentation and is licensed under GPL-3.0 for open-source non-commercial use.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published