Skip to content

Project on asp dotnet core that has api component and frontend on Blazor

Notifications You must be signed in to change notification settings

uzername/BookCatalogManagementSystem

Repository files navigation

Description

This is a Book Catalog Management System that allows users to manage and track a collection of books. The solution consists of backend and frontend projects. The backend exposes API endpoints for managing books, while the frontend allows users to interact with the catalog through a web interface.

Backend

  • CRUD operations for book entity.
  • Support searching and filtering by title, author, and genre.
  • Pagination and sorting options.
  • Bulk upload functionality to import multiple books from a CSV file.
  • Special: rate limiting to prevent abuse of the API.

Frontend

  • view the list of books in a table format.
  • search and filter books by title, author, and genre.
  • add new books to the catalog via a form.
  • update book details.
  • delete books from the catalog.
  • Ensure the UI has a responsive design that works seamlessly on both desktop and mobile devices.
  • Special: implement real-time updates to the book list, allowing the list to refresh automatically when changes are made.

Technologies

  • Backend: C#, ASP.NET Core Minimal API
  • Frontend: Blazor WebAssembly
  • Database: In-memory storage
  • Containerization: Docker, Docker Compose Something went wrong with Docker I add those builds to Release section

Run API

Unpack it and then use command:

cd path/to/release
dotnet BCMS_backend.dll --urls=http://localhost:5195

path/to/release should contain BCMS_Backend.dll file. API is available at http://localhost:5195 . Hope you have port 5195 freed

Run Blazor WebAssembly project

Unfortunately Blazor WebAssembly project is published without dll files, it has only .wasm files which cannot be served by dotnet command. You need a static webserver to run this project. Anything that may serve static files. Unfortunately, project won't work if you doubleclick on index.html file.

I found on internet a static webserver for serving static files, here it is: https://static-web-server.net/download-and-install/ . I also include it to release.

Use such command to run it:

cd path/to/release
static-web-server.exe --root wwwroot --port 7164

If you use Node JS and have installed npm , you may use this: https://www.npmjs.com/package/@node-cli/static-server .

npm install -g @node-cli/static-server
cd path/to/release
static-server -p 7164 wwwroot

Setting up npm and node is a separate challenge.

Here path/to/release is where you unpacked BCMS_FrontendBlazor

Anyway, a project should be available at http://localhost:7164 .

Experimental - run Docker

A friend (and ChatGPT) helped me to come with Docker implementation, it is just there Run docker-compose up command application may be available at http://localhost:7164/

Pictures

screenshot

About

Project on asp dotnet core that has api component and frontend on Blazor

Resources

Stars

Watchers

Forks

Packages

No packages published