https://github.com/thetoriqul/library-management-system
A modern, efficient C++ library management system with file-based storage and an intuitive command-line interface.
https://github.com/thetoriqul/library-management-system
cpp
Last synced: about 1 year ago
JSON representation
A modern, efficient C++ library management system with file-based storage and an intuitive command-line interface.
- Host: GitHub
- URL: https://github.com/thetoriqul/library-management-system
- Owner: TheToriqul
- Created: 2025-01-09T14:52:11.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-18T14:57:24.000Z (over 1 year ago)
- Last Synced: 2025-02-18T15:47:53.451Z (over 1 year ago)
- Topics: cpp
- Language: C++
- Homepage: https://thetoriqul.com
- Size: 347 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 📚 Library Management System
[](https://github.com/TheToriqul/library-management-system)
[](https://github.com/TheToriqul/library-management-system/blob/main/LICENSE)
[](https://isocpp.org/)
[](https://github.com/TheToriqul/library-management-system/pulls)
A modern, efficient C++ library management system with file-based storage and an intuitive command-line interface.
[Explore Demo](#usage) • [View Documentation](./docs/) • [Report Bug](https://github.com/TheToriqul/library-management-system/issues) • [Request Feature](https://github.com/TheToriqul/library-management-system/issues)
## ✨ Features
🔹 **Book Management**
- 📝 Add new books with automatic ID generation
- 🔍 Search books by ID with detailed display
- 🔄 Update existing book information
- 🗑️ Delete books with safe record removal
- 📋 Display all books with pagination
🔹 **Data Validation**
- ✅ Title length validation (3-49 characters)
- ✅ Author name verification (letters and spaces only)
- ✅ Price range checks (0.01-9999.99)
- ✅ Quantity limits (0-999)
- ✅ Automatic status updates based on quantity
🔹 **File Operations**
- 💾 Binary file storage for efficiency
- 🛡️ Safe file handling with error checking
- 🔄 Automatic database creation
- ✅ Data consistency maintenance
## 🏗️ Project Architecture
Figure: Library Management System Project Architecture
## 🔧 System Requirements
- C++ Compiler (GCC 4.9 or later)
- CMake 3.5.0 or later
- 512MB RAM minimum
- 50MB free disk space
- Operating System: Windows, Linux, or macOS
## 📁 Project Structure
```
LibrarySystem/
├── src/
│ ├── main.cpp # Main program entry
│ ├── library.cpp # Implementation file
│ ├── library.h # Header file
│ ├── Makefile # Build configuration
│ ├── CMakeLists.txt # Build configuration for CMakeLists
│ └── books.dat # Book records
├── docs/
│ ├── user_manual.txt # User guide
│ ├── sample_output.md # Sample output screenshots lookalike
│ └── screenshots/ # Program screenshots
│ ├── AddBooks.png # Screenshots
│ ├── SearchBooks.png # Screenshots
├── report/
│ └── project_report.docx
└── README.md # This file
```
## 🚀 Quick Start
1. Clone the repository:
```bash
git clone https://github.com/TheToriqul/library-management-system.git
cd library-management-system
```
Follow the [user manual](./docs/user_manual.txt)
## 📖 Documentation
### Usage
1. Navigate to the src directory:
```bash
cd LibrarySystem/src
```
2. Compile the program using make:
```bash
make
```
This will compile the source files and create the 'library' executable.
3. Run the program:
```bash
./library
```
4. Navigate through the intuitive menu system:
```
=======================================
LIBRARY MANAGEMENT SYSTEM
=======================================
1. Add New Book
2. Search Book
3. Update Book
4. Delete Book
5. Display All Books
6. Exit
=======================================
```
### 💡 Input Guidelines
| Field | Requirements |
| -------- | ----------------------------- |
| Title | 3-49 characters |
| Author | 2-29 characters, letters only |
| Price | 0.01 - 9999.99 |
| Quantity | 0 - 999 |
## 🤝 Contributing
We welcome contributions! Here's how you can help:
1. Fork the repository
2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request
## 📝 License
This project is licensed under the MIT License - see the [LICENSE](https://github.com/TheToriqul/library-management-system/blob/main/LICENSE) file for details.
## 👤 Author
**Toriqul Islam**
- GitHub: [@TheToriqul](https://github.com/TheToriqul)
- Website: [thetoriqul.com](https://thetoriqul.com)
- LinkedIn: [Toriqul Islam](https://www.linkedin.com/in/thetoriqul/)
## 🌟 Acknowledgments
- Project structure inspired by modern C++ best practices
- File handling approach based on standard library implementations
- Input validation techniques from industry standards
## 📬 Contact
Have questions? Feel free to reach out:
- Email: toriqul.int@gmail.com
- Phone: +65 8936 7705, +8801765 939006
---
⭐ Star us on GitHub — it helps!
[Report Bug](https://github.com/TheToriqul/library-management-system/issues) • [Request Feature](https://github.com/TheToriqul/library-management-system/issues)