{"id":19453292,"url":"https://github.com/anuj-er/library-management-system-cpp","last_synced_at":"2025-07-25T22:08:54.328Z","repository":{"id":262061958,"uuid":"863937354","full_name":"Anuj-er/Library-Management-System-Cpp","owner":"Anuj-er","description":"A console-based Library Management System designed for efficient management of books and student records, allowing librarians to easily add, view, and track books.","archived":false,"fork":false,"pushed_at":"2024-11-10T08:39:51.000Z","size":5610,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-24T06:04:07.046Z","etag":null,"topics":["books","cpp11","cpp17","library-management-system","makefile","student-managed"],"latest_commit_sha":null,"homepage":"https://github.com/Anuj-er/Library-Management-System-Cpp","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Anuj-er.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-27T07:33:54.000Z","updated_at":"2024-11-10T08:39:54.000Z","dependencies_parsed_at":"2024-11-10T09:28:08.470Z","dependency_job_id":"eb344915-6d13-4a0a-ae73-25a50c85c3df","html_url":"https://github.com/Anuj-er/Library-Management-System-Cpp","commit_stats":null,"previous_names":["anuj-er/library-management-system-cpp"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Anuj-er/Library-Management-System-Cpp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Anuj-er%2FLibrary-Management-System-Cpp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Anuj-er%2FLibrary-Management-System-Cpp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Anuj-er%2FLibrary-Management-System-Cpp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Anuj-er%2FLibrary-Management-System-Cpp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Anuj-er","download_url":"https://codeload.github.com/Anuj-er/Library-Management-System-Cpp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Anuj-er%2FLibrary-Management-System-Cpp/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267070386,"owners_count":24030982,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-25T02:00:09.625Z","response_time":70,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["books","cpp11","cpp17","library-management-system","makefile","student-managed"],"created_at":"2024-11-10T17:03:24.583Z","updated_at":"2025-07-25T22:08:54.303Z","avatar_url":"https://github.com/Anuj-er.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# 📚 Library Management System\n\nWelcome 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**.\n\n## 🚀 Features\n\n- **Add New Books**: \n  - Librarians can add details for new books, including title, author, publisher, price, year, and availability.\n  - The system automatically updates the CSV file to reflect the newly added books.\n\n- **View Books**: \n  - Fetch and display the list of all available books in a structured format.\n  - Easily filter or search for specific books based on various attributes.\n\n- **Track Availability**: \n  - Mark books as available or unavailable for issue.\n  - Keep track of books that are currently issued to students.\n\n- **Manage Student Records**: \n  - Add and view student information, allowing for easy tracking of which student has issued which book.\n\n- **User-Friendly Command-Line Interface**: \n  - Simple and intuitive CLI that guides users through various operations.\n  - Error handling and validation to ensure data integrity.\n\n## 📸 Screenshots\n\nHere’s a glimpse of the system in action:\n\n- **Main Interface**:  \n  ![Main Interface](Project-Report/images/interface.png)\n\n- **Student Interface**:  \n  ![Student Interface](Project-Report/images/student.png)\n\n- **Librarian Interface**:  \n  ![Librarian Interface](Project-Report/images/librarian.png)\n\n## 🛠️ Installation\n\n### 1. Clone the Repository:\n\n```bash\ngit clone https://github.com/Anuj-er/Library-Management-System-Cpp.git\n```\n\n### 2. Navigate to the Project Directory:\n\n```bash\ncd Library-Management-System-Cpp\n```\n\n### 3. Compile and Run:\n\nEnsure you have a C++ compiler installed. Then compile and run the program:\n\n```bash\nmake clean\nmake\n./library_app\n```\n\n## 📂 Project Structure\n\n```bash\n.\n├── README.md                           # Project documentation\n├── all_headers.h                       # Contains struct and class definitions\n├── books.cpp                           # Book management functionality\n├── Librarian.cpp                       # Librarian functionalities\n├── student.cpp                         # Student functionalities\n├── main.cpp                            # Main entry point for the application\n├── ./DATA/BooksDatasetCleanAnuj.csv    # Dataset of books (100K records)\n├── ./DATA/G19-students-list.csv        # Student list for authentication\n├── ./project-report/images             # Screenshots directory\n```\n\n## 📝 Usage\n\n### Adding a New Book:\n\n1. Run the program and choose the **Add Book** option.\n2. Enter the book details:\n   - Title\n   - Author\n   - Publisher\n   - Price\n   - Year of Publication\n   - Availability status (Y/N)\n3. The system will save the new book entry to `BooksDatasetCleanAnuj.csv`.\n\n### Viewing Available Books:\n\n1. Select the **View Books** option from the main menu.\n2. The system will read from the `BooksDatasetCleanAnuj.csv` file and display a list of available books, including their details and availability status.\n\n### Managing Student Records:\n\n1. Use the **Manage Students** option to add or view student information.\n2. Record details such as student name and roll number for easy tracking of issued books.\n\n## 📜 Documentation\n\nFor further technical details, refer to:\n\n- [C++ Documentation](https://cplusplus.com/)\n- CSV File Handling for managing book and student data.\n\n## 🔗 Links\n\n- **GitHub Repository**: [Library Management System](https://github.com/Anuj-er/Library-Management-System-Cpp)\n- **C++ Documentation**: [cplusplus.com](https://cplusplus.com/)\n- **CSV File Handling Guide**: [CSV Reading and Writing](https://www.geeksforgeeks.org/csv-file-handling-c/)\n\n## 💻 Contributing\n\nContributions are welcome! To contribute:\n\n1. Fork this repository.\n2. Create a new branch: `git checkout -b feature-branch`.\n3. Make your changes.\n4. Commit your changes: `git commit -m 'Add some feature'`.\n5. Push to the branch: `git push origin feature-branch`.\n6. Open a pull request.\n\n### Guidelines for Contributions:\n\n- Ensure code is well-documented and follows the existing style.\n- Add unit tests for any new features or functionalities.\n- Update the README.md file if necessary.\n\n## 📧 Contact\n\nFor any questions, suggestions, or feedback, please reach out to: **Anujsiwachjaat@icloud.com**.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanuj-er%2Flibrary-management-system-cpp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanuj-er%2Flibrary-management-system-cpp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanuj-er%2Flibrary-management-system-cpp/lists"}