Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added .DS_Store
Binary file not shown.
32 changes: 32 additions & 0 deletions Code/LibCoreInventoryManagement.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
import java.util.*;

public class LibCoreInventoryManagement {
private List<Resource> resourceList = new ArrayList<Resource>();

public void addResource(String title, String author, String category) {
for (int i = 0; i < resourceList.size(); i++) {
Resource addedResource = new Resource(title, author, category);
resourceList.add(addedResource);
}
}

public void editResource(String resourceTitle, String ) {
for (int i = 0; i < resourceList.size(); i++) {
Resource inlist = resourceList.getTitle(resourceTitle);
if (inlist.equalsIgnoreCase(resource)) {
resourceList.set
}
}
}

public void removeResource(Resource resource) {
String stringAsResource = String.valueOf(resource);
boolean removed = resourceList.remove(resource);
if (removed == true) {
return;
}
else {
System.out.println("Not Removed");
}
}
}
Binary file added Documentation/Finalized Class Diagram.pdf
Binary file not shown.
Binary file added Documentation/Finalized Sequence Diagram.pdf
Binary file not shown.
Binary file added Documentation/Finalized Use Case Diagram.pdf
Binary file not shown.
Binary file added Documentation/LibCore Design Document (3).docx
Binary file not shown.
Binary file added Documentation/SRS (1).docx
Binary file not shown.
Binary file not shown.
Binary file added Gantt chart.pdf
Binary file not shown.
Binary file added Phase 2 Presentation/CS401 Project [Phase 2].pdf
Binary file not shown.
135 changes: 125 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,133 @@
![Logo](https://i.postimg.cc/FK9Vj4sc/Screenshot-2025-01-22-at-7-37-34-PM.png)

## Libcore - Library Management
write the purpose of the library management and what makes this more beneficial for libraries to use.
## Features
# LIBcore Library Management System

- Book search
- List of books checked out or still in stock
- Late check on books not returned by a certain date
-
## 📚 Purpose
The LIBcore Library Management System is designed to streamline the way libraries manage book lending, user activity, and inventory. It replaces manual systems and spreadsheets with an interactive, multi-user networked application that makes library management easy, efficient, and scalable.

This system is particularly beneficial to libraries because:
- It supports **multi-user concurrent access** via a client-server architecture.
- Users (members) and staff have **separate interfaces** tailored to their roles.
- It maintains organized **digital records** of users, books, and loan history using structured text files.
- It includes logic to track late returns and automatically update resource availability.

## Usage
---

```java
usage explanation here
## ✨ Features

### ✅ Book Search
Users can view all available books in a clean tabular format with columns for ID, Title, Author, Category, and Availability.

### ✅ Check Book Status
Staff can see which books are currently checked out and which are in stock.

### ✅ Late Check
Automatically identifies books not returned by the due date and flags them as overdue.

### ✅ GUI Dashboard
- Built using `Swing`, the GUI is interactive and intuitive.
- Members can browse, borrow, and return books easily.
- Staff can manage resources, view user data, export transactions, and perform admin actions.

---

## 🚀 Usage & Setup

### 1. Clone the repository
```bash
git clone https://github.com/ttran569/libcore.git
cd libcore
git checkout ttran569-patch-1
```

### 2. Project Structure
```
libcore/
├── src/
│ ├── client/
│ │ ├── member/ # Member GUI and client logic
│ │ │ └── MemberGUI.java, MemberClient.java
│ │ └── staff/ # Staff GUI and client logic
│ │ └── StaffGUI.java, StaffClient.java
│ ├── server/ # Server code and networking
│ │ ├── Server.java, ClientHandler.java
│ └── server/services/ # Business logic
│ └── ResourceManager.java, TransactionManager.java, UserManager.java
├── data/
│ ├── users.txt
│ ├── resources.txt
│ └── transactions.txt
```

### 3. How to Run
1. Start the server:
```bash
Run Server.java (Eclipse or CLI)
```

2. Run Staff or Member client on separate machines or windows:
```bash
Run StaffClient.java or MemberClient.java
```
> Clients communicate with the server via sockets.

### 4. Text Files Used
- `users.txt`: contains all user information
- `resources.txt`: contains all book records
- `transactions.txt`: contains borrow/return history

---

## 🧠 Code Explanation

### `ClientHandler.java`
- Core server-side logic
- Handles login, logout, view resources, borrow, return, export transactions

### `ResourceManager.java`
- Adds, edits, deletes, and checks availability of resources
- Updates `resources.txt`

### `TransactionManager.java`
- Logs all transactions
- Exports and filters overdue books

### `UserManager.java`
- Displays user data from `users.txt`

### `StaffGUI.java`
- GUI for staff
- Options to view/add books, view users, return/borrow, export logs

### `MemberGUI.java`
- GUI for members
- Simplified to borrow, return, and view available books

### `SessionManager.java`
- Handles user sessions and session expiry (future-ready)

### `AuthenticationService.java`
- Validates user login credentials from `users.txt`

---

## 👥 User Roles
- `STAFF`: Full access to resources and logs
- `MEMBER`: Can only borrow/return/view books

---

## 📌 Notes
- Uses plain `.txt` files instead of a DB for simplicity
- Easily expandable to JDBC / MySQL / SQLite in the future
- Fully object-oriented, modular design using Java and Swing

---

## 📬 Contributions
This project was developed by Kartik Tripathi and contributors. Contributions, forks, and feedback are welcome.

---

## 📄 License
This project is for academic and educational use.
Binary file added Work Schedule.pdf
Binary file not shown.