Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/anuj-er/library-management-system-cpp

A console-based Library Management System designed for efficient management of books and student records, allowing librarians to easily add, view, and track books.
https://github.com/anuj-er/library-management-system-cpp

books cpp11 cpp17 library-management-system makefile student-managed

Last synced: about 2 months ago
JSON representation

A console-based Library Management System designed for efficient management of books and student records, allowing librarians to easily add, view, and track books.

Awesome Lists containing this project

README

        

# πŸ“š Library Management System

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**.

## πŸš€ Features

- **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.

## πŸ“Έ Screenshots

Here’s a glimpse of the system in action:

- **Main Interface**:
![Main Interface](Project-Report/images/interface.png)

- **Student Interface**:
![Student Interface](Project-Report/images/student.png)

- **Librarian Interface**:
![Librarian Interface](Project-Report/images/librarian.png)

## πŸ› οΈ Installation

### 1. Clone the Repository:

```bash
git clone https://github.com/Anuj-er/Library-Management-System-Cpp.git
```

### 2. Navigate to the Project Directory:

```bash
cd Library-Management-System-Cpp
```

### 3. Compile and Run:

Ensure you have a C++ compiler installed. Then compile and run the program:

```bash
make clean
make
./library_app
```

## πŸ“‚ Project Structure

```bash
.
β”œβ”€β”€ 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
```

## πŸ“ Usage

### Adding a New Book:

1. Run the program and choose the **Add Book** option.
2. Enter the book details:
- Title
- Author
- Publisher
- Price
- Year of Publication
- Availability status (Y/N)
3. The system will save the new book entry to `BooksDatasetCleanAnuj.csv`.

### Viewing Available Books:

1. Select the **View Books** option from the main menu.
2. The system will read from the `BooksDatasetCleanAnuj.csv` file and display a list of available books, including their details and availability status.

### Managing Student Records:

1. Use the **Manage Students** option to add or view student information.
2. Record details such as student name and roll number for easy tracking of issued books.

## πŸ“œ Documentation

For further technical details, refer to:

- [C++ Documentation](https://cplusplus.com/)
- CSV File Handling for managing book and student data.

## πŸ”— Links

- **GitHub Repository**: [Library Management System](https://github.com/Anuj-er/Library-Management-System-Cpp)
- **C++ Documentation**: [cplusplus.com](https://cplusplus.com/)
- **CSV File Handling Guide**: [CSV Reading and Writing](https://www.geeksforgeeks.org/csv-file-handling-c/)

## πŸ’» Contributing

Contributions are welcome! To contribute:

1. Fork this repository.
2. Create a new branch: `git checkout -b feature-branch`.
3. Make your changes.
4. Commit your changes: `git commit -m 'Add some feature'`.
5. Push to the branch: `git push origin feature-branch`.
6. Open a pull request.

### Guidelines for Contributions:

- 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.

## πŸ“§ Contact

For any questions, suggestions, or feedback, please reach out to: **[email protected]**.
```