Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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#

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.