https://github.com/kei-k23/library-management-system-backend
Library management system Backend with Asp.Net 8 and C#
https://github.com/kei-k23/library-management-system-backend
api asp-net-core csharp dotnet-core
Last synced: 10 months ago
JSON representation
Library management system Backend with Asp.Net 8 and C#
- Host: GitHub
- URL: https://github.com/kei-k23/library-management-system-backend
- Owner: Kei-K23
- Created: 2024-09-01T09:44:34.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-09-07T03:29:54.000Z (almost 2 years ago)
- Last Synced: 2025-04-10T14:01:41.375Z (over 1 year ago)
- Topics: api, asp-net-core, csharp, dotnet-core
- Language: C#
- Homepage:
- Size: 38.1 KB
- Stars: 8
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Library Management System Design
## 1. Entities
### User
- **Id** (GUID)
- **Name** (string)
- **Email** (string)
- **Password** (string, hashed)
- **Role** (enum: Admin, Librarian, Member)
- **DateJoined** (DateTime)
### Book
- **Id** (GUID)
- **Title** (string)
- **Author** (string)
- **ISBN** (string)
- **Publisher** (string)
- **PublishedDate** (DateTime)
- **Category** (string)
- **Description** (string)
- **CopiesAvailable** (int)
- **TotalCopies** (int)
### Category
- **Id** (GUID)
- **Name** (string)
- **Description** (string)
### Loan
- **Id** (GUID)
- **BookId** (GUID)
- **UserId** (GUID)
- **LoanDate** (DateTime)
- **DueDate** (DateTime)
- **ReturnDate** (DateTime, nullable)
- **Status** (enum: Loaned, Returned, Overdue)
### Reservation
- **Id** (GUID)
- **BookId** (GUID)
- **UserId** (GUID)
- **ReservationDate** (DateTime)
- **Status** (enum: Reserved, Cancelled, Completed)
### Fine
- **Id** (GUID)
- **UserId** (GUID)
- **Amount** (decimal)
- **Reason** (string)
- **Status** (enum: Unpaid, Paid)
- **DateIssued** (DateTime)
### Review
- **Id** (GUID)
- **BookId** (GUID)
- **UserId** (GUID)
- **Rating** (int)
- **Comment** (string)
- **DateReviewed** (DateTime)
## 2. API Endpoints
### User Management
- **POST /api/users/register**
- Registers a new user.
- **Input:** `Name`, `Email`, `Password`, `Role`.
- **POST /api/users/login**
- Authenticates a user.
- **Input:** `Email`, `Password`.
- **GET /api/users/{id}**
- Retrieves user details by `Id`.
- **PUT /api/users/{id}**
- Updates user details.
- **Input:** `Name`, `Email`, `Password`.
- **DELETE /api/users/{id}**
- Deletes a user account.
### Book Management
- **POST /api/books**
- Adds a new book to the library.
- **Input:** `Title`, `Author`, `ISBN`, `Publisher`, `PublishedDate`, `Category`, `Description`, `TotalCopies`.
- **GET /api/books**
- Retrieves a list of all books.
- **GET /api/books/{id}**
- Retrieves details of a specific book.
- **PUT /api/books/{id}**
- Updates book details.
- **Input:** `Title`, `Author`, `ISBN`, `Publisher`, `PublishedDate`, `Category`, `Description`, `TotalCopies`, `CopiesAvailable`.
- **DELETE /api/books/{id}**
- Deletes a book from the library.
### Category Management
- **POST /api/categories**
- Adds a new category.
- **Input:** `Name`, `Description`.
- **GET /api/categories**
- Retrieves a list of all categories.
- **GET /api/categories/{id}**
- Retrieves details of a specific category.
- **PUT /api/categories/{id}**
- Updates category details.
- **Input:** `Name`, `Description`.
- **DELETE /api/categories/{id}**
- Deletes a category.
### Loan Management
- **POST /api/loans**
- Issues a loan for a book.
- **Input:** `BookId`, `UserId`.
- **GET /api/loans**
- Retrieves all loans.
- **GET /api/loans/{id}**
- Retrieves details of a specific loan.
- **PUT /api/loans/{id}**
- Updates loan status.
- **Input:** `ReturnDate`, `Status`.
- **DELETE /api/loans/{id}**
- Cancels a loan.
### Reservation Management
- **POST /api/reservations**
- Reserves a book.
- **Input:** `BookId`, `UserId`.
- **GET /api/reservations**
- Retrieves all reservations.
- **GET /api/reservations/{id}**
- Retrieves details of a specific reservation.
- **PUT /api/reservations/{id}**
- Updates reservation status.
- **Input:** `Status`.
- **DELETE /api/reservations/{id}**
- Cancels a reservation.
### Fine Management
- **POST /api/fines**
- Issues a fine to a user.
- **Input:** `UserId`, `Amount`, `Reason`.
- **GET /api/fines**
- Retrieves all fines.
- **GET /api/fines/{id}**
- Retrieves details of a specific fine.
- **PUT /api/fines/{id}**
- Updates fine status.
- **Input:** `Status`.
- **DELETE /api/fines/{id}**
- Cancels a fine.
### Review Management
- **POST /api/reviews**
- Adds a review for a book.
- **Input:** `BookId`, `UserId`, `Rating`, `Comment`.
- **GET /api/reviews**
- Retrieves all reviews.
- **GET /api/reviews/{id}**
- Retrieves details of a specific review.
- **PUT /api/reviews/{id}**
- Updates a review.
- **Input:** `Rating`, `Comment`.
- **DELETE /api/reviews/{id}**
- Deletes a review.
## 3. Additional Features
### Search API
- **GET /api/search**
- Search books by title, author, category, ISBN, etc.
- **Input:** `query`.
### Dashboard
- **GET /api/dashboard**
- Retrieves statistics such as total books, loans, overdue books, etc.
### Notifications
- **POST /api/notifications**
- Send notifications to users (e.g., overdue reminders).
### Reporting
- **GET /api/reports**
- Generates reports on loans, fines, user activity, etc.