Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: 2 days 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 (26 days ago)
- Default Branch: main
- Last Pushed: 2024-09-07T03:29:54.000Z (20 days ago)
- Last Synced: 2024-09-25T01:01:18.436Z (2 days ago)
- Topics: api, asp-net-core, csharp, dotnet-core
- Language: C#
- Homepage:
- Size: 38.1 KB
- Stars: 3
- 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.