{"id":20833753,"url":"https://github.com/coderwahaj/library-management-system","last_synced_at":"2025-10-24T22:12:30.165Z","repository":{"id":249661765,"uuid":"832156658","full_name":"coderwahaj/Library-Management-System","owner":"coderwahaj","description":"Associated with National University of Computer and Emerging Sciences Developed a comprehensive Library Management System using C++. This project involved designing a user-friendly interface for managing book inventory, tracking borrowed and returned books, and maintaining user records. Implemented efficiently the Programming Fundamentals concepts.","archived":false,"fork":false,"pushed_at":"2024-07-23T11:44:29.000Z","size":149,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-18T21:18:02.604Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","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/coderwahaj.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-07-22T13:05:25.000Z","updated_at":"2024-07-23T11:44:32.000Z","dependencies_parsed_at":"2024-11-18T01:30:25.741Z","dependency_job_id":null,"html_url":"https://github.com/coderwahaj/Library-Management-System","commit_stats":null,"previous_names":["coderwahaj/library-management-system"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coderwahaj%2FLibrary-Management-System","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coderwahaj%2FLibrary-Management-System/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coderwahaj%2FLibrary-Management-System/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coderwahaj%2FLibrary-Management-System/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/coderwahaj","download_url":"https://codeload.github.com/coderwahaj/Library-Management-System/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243188203,"owners_count":20250453,"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","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":[],"created_at":"2024-11-18T00:16:37.141Z","updated_at":"2025-10-24T22:12:25.128Z","avatar_url":"https://github.com/coderwahaj.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Library-Management-System\n## Overview\nThe Library Management System is a console-based application developed as a term project for the Programming Fundamentals course. This system is designed to manage the various functions of a library, including book storage, retrieval, lending, and return. It ensures efficient management of library resources and user interactions.\n\n## Features\n1. **User Authentication**:\n   - Login and Sign-Up functionality.\n   - Registered users can access the system's features.\n   - Proper messages displayed for unregistered users with prompts to sign up.\n\n2. **Main Menu**:\n   - Provides access to various system features.\n   - System remains active until explicitly terminated by the user.\n   - Option to return to the menu or re-execute functions after each operation.\n\n3. **Book Storage**:\n   - Books have attributes: title, ISBN number, author, date of publishing, quantity available, and total quantity.\n   - Stored in text files on local storage.\n\n4. **Book Retrieval**:\n   - Search for books by title or ISBN number.\n\n5. **Book Management**:\n   - Add new books to the library database.\n   - Delete books from the database.\n\n6. **Book Lending and Returning**:\n   - Lend books to users.\n   - Return issued books.\n   - Track late returns and calculate fines.\n\n## Requirements\n- **Data Structures**:\n  - Use structs for Book and Lending.\n  - Book struct: title, ISBN number, author, date of publishing, quantity available, and total quantity.\n  - Lending struct: issued Book, issuing date, date of return, borrower's name, and applicable fine.\n\n- **File Storage**:\n  - Store lending and book structs in respective directories (Lending and Books).\n  - Use `readdir()` function for file access.\n\n- **Capacity Management**:\n  - Library capacity: 10,000 books.\n  - Maintain arrays of structs for Books and Lendings in memory.\n  - Data should be synchronized with text files upon program start, book addition, and deletion.\n\n- **Data Integrity**:\n  - Ensure changes in memory are reflected in files.\n  - Maintain data integrity between memory and disk storage.\n\n- **Quantity Management**:\n  - Decrease available quantity when a book is issued.\n  - Prevent issuing if book quantity is zero.\n  - Decrease total quantity when a book is deleted.\n\n- **Fine Collection**:\n  - Track fines for late returns.\n  - Add fines to library's treasury upon late return.\n\n- **Persistent Storage**:\n  - Ensure data is not lost upon system closure.\n  - Load/reload data automatically on system start or database changes.\n\n- **Efficient Searching**:\n  - Implement efficient book search (sorting \u0026 binary search).\n\n## Bonus Marks\n- Implement a Graphical User Interface (GUI) for additional credit.\n\n## Development Environment\n- **IDE**: Visual Studio Community Edition.\n- **Language**: C++ (without using STL libraries, OOP concepts, or dynamic memory allocation).\n\n## Installation\n1. **Clone the Repository**\n   ```bash\n   git clone https://github.com/your-repo/library-management-system.git\n   ```\n2. **Open in Visual Studio**\n   - Open Visual Studio Community Edition.\n   - Select `Open a project or solution`.\n   - Navigate to the cloned repository and open the project file.\n\n3. **Build and Run**\n   - Build the project.\n   - Run the application.\n\n## Usage\n1. **Authentication**\n   - Login or sign up to access the system.\n   - Follow prompts for new user registration.\n\n2. **Main Menu**\n   - Navigate through the main menu to access different features.\n   - Follow on-screen instructions for each operation.\n\n3. **Book Management**\n   - Add or delete books through the menu options.\n   - Ensure to provide all required book details.\n\n4. **Book Retrieval**\n   - Search for books by title or ISBN number.\n\n5. **Lending and Returning Books**\n   - Issue books to users and return them as per the system prompts.\n   - Record late returns and apply fines if applicable.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoderwahaj%2Flibrary-management-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcoderwahaj%2Flibrary-management-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoderwahaj%2Flibrary-management-system/lists"}