Welcome to the Library Management System! This console-based application is designed to streamline the management of books in a library. It offers a user-friendly interface for librarians and students, enabling efficient handling of a large collection of books with functionalities such as adding new books, viewing available books, tracking their availability, and managing student records. The system uses a CSV file to store data, allowing it to handle a database of up to 100,000 books.
-
Add New Books:
- Librarians can add details for new books, including title, author, publisher, price, year, and availability.
- The system automatically updates the CSV file to reflect the newly added books.
-
View Books:
- Fetch and display the list of all available books in a structured format.
- Easily filter or search for specific books based on various attributes.
-
Track Availability:
- Mark books as available or unavailable for issue.
- Keep track of books that are currently issued to students.
-
Manage Student Records:
- Add and view student information, allowing for easy tracking of which student has issued which book.
-
User-Friendly Command-Line Interface:
- Simple and intuitive CLI that guides users through various operations.
- Error handling and validation to ensure data integrity.
Here’s a glimpse of the system in action:
git clone https://github.com/Anuj-er/Library-Management-System-Cpp.git
cd Library-Management-System-Cpp
Ensure you have a C++ compiler installed. Then compile and run the program:
make clean
make
./library_app
.
├── README.md # Project documentation
├── all_headers.h # Contains struct and class definitions
├── books.cpp # Book management functionality
├── Librarian.cpp # Librarian functionalities
├── student.cpp # Student functionalities
├── main.cpp # Main entry point for the application
├── ./DATA/BooksDatasetCleanAnuj.csv # Dataset of books (100K records)
├── ./DATA/G19-students-list.csv # Student list for authentication
├── ./project-report/images # Screenshots directory
- Run the program and choose the Add Book option.
- Enter the book details:
- Title
- Author
- Publisher
- Price
- Year of Publication
- Availability status (Y/N)
- The system will save the new book entry to
BooksDatasetCleanAnuj.csv
.
- Select the View Books option from the main menu.
- The system will read from the
BooksDatasetCleanAnuj.csv
file and display a list of available books, including their details and availability status.
- Use the Manage Students option to add or view student information.
- Record details such as student name and roll number for easy tracking of issued books.
For further technical details, refer to:
- C++ Documentation
- CSV File Handling for managing book and student data.
- GitHub Repository: Library Management System
- C++ Documentation: cplusplus.com
- CSV File Handling Guide: CSV Reading and Writing
Contributions are welcome! To contribute:
- Fork this repository.
- Create a new branch:
git checkout -b feature-branch
. - Make your changes.
- Commit your changes:
git commit -m 'Add some feature'
. - Push to the branch:
git push origin feature-branch
. - Open a pull request.
- Ensure code is well-documented and follows the existing style.
- Add unit tests for any new features or functionalities.
- Update the README.md file if necessary.
For any questions, suggestions, or feedback, please reach out to: Anujsiwachjaat@icloud.com.