How m4tc0des/westmarchbook works
WestmarchBook manages a literary catalog and reader accounts through a .NET backend and a MAUI desktop application. The main workflow is an operator using the desktop interface to manage books and readers; the API exposes corresponding catalog, account, and authentication operations. Application use cases separate requests from persistence, with EF Core providing storage. The tree also shows rent registration and publisher/author management. Several use-case implementations and desktop networking details were not excerpted, so those internal links are omitted or marked unverified rather than inferred as confirmed calls.
Main entry points: Repositories Repository contracts · Program.cs API routing · AuthenticationController.cs Authentication · User User workflows
Components 23
Desktop application
- Desktop interface
src/Frontend/WestmarchBook.Desktop/Views/MainWindow.xaml.cs - Catalog and readers
src/Frontend/WestmarchBook.Desktop/ViewModels/MainViewModel.cs - Desktop login
src/Frontend/WestmarchBook.Desktop/ViewModels/LoginViewModel.cs - Desktop token
src/Frontend/WestmarchBook.Desktop/Services/DesktopTokenProvider.cs
REST API
- API routing
src/Backend/WestmarchBook.Api/Program.cs - Authentication
src/Backend/WestmarchBook.Api/Controllers/AuthenticationController.cs - Book endpoints
src/Backend/WestmarchBook.Api/Controllers/BooksController.cs - User endpoints
src/Backend/WestmarchBook.Api/Controllers/UsersController.cs - Author endpoints
src/Backend/WestmarchBook.Api/Controllers/AuthorsController.cs - Reader endpoints
src/Backend/WestmarchBook.Api/Controllers/ReadersController.cs
Application workflows
- Catalog use cases
src/Backend/WestmarchBook.Application/UseCases/Book - Author use cases
src/Backend/WestmarchBook.Application/UseCases/Author - Publisher use cases
src/Backend/WestmarchBook.Application/UseCases/Publisher - Reader use cases
src/Backend/WestmarchBook.Application/UseCases/Readers - Rent registration
src/Backend/WestmarchBook.Application/UseCases/Rent - User workflows
src/Backend/WestmarchBook.Application/UseCases/User
Domain contracts
- Book model
src/Backend/WestmarchBook.Domain/Entities/Book.cs - User model
src/Backend/WestmarchBook.Domain/Entities/User.cs - Repository contracts
src/Backend/WestmarchBook.Domain/Repositories
Persistence
- EF repositories
src/Backend/WestmarchBook.Infrastructure/DataAccess/Repositories - EF data context
src/Backend/WestmarchBook.Infrastructure/DataAccess/WestmarchBookDbContext.cs - JWT handler
src/Backend/WestmarchBook.Infrastructure/Security/Tokens/Access/JwtTokenHandler.cs
Other components
- Library operator
Connections 24
- Library operator → Desktop interface: uses
src/Frontend/WestmarchBook.Desktop/Views/MainWindow.xaml.cs - Desktop interface → Catalog and readers: displays
src/Frontend/WestmarchBook.Desktop/Views/MainWindow.xaml.cs - Catalog and readers → Desktop token: clears token
src/Frontend/WestmarchBook.Desktop/ViewModels/MainViewModel.cs - Library operator → API routing: API client
- API routing → Authentication: maps controllers
src/Backend/WestmarchBook.Api/Program.cs - API routing → Book endpoints: maps controllers
src/Backend/WestmarchBook.Api/Program.cs - API routing → User endpoints: maps controllers
src/Backend/WestmarchBook.Api/Program.cs - Book endpoints → Catalog use cases: executes
src/Backend/WestmarchBook.Api/Controllers/BooksController.cs - Author endpoints → Author use cases: executes
src/Backend/WestmarchBook.Api/Controllers/AuthorsController.cs - Reader endpoints → Reader use cases: executes
src/Backend/WestmarchBook.Api/Controllers/ReadersController.cs - User endpoints → User workflows: executes
src/Backend/WestmarchBook.Api/Controllers/UsersController.cs - Authentication → User workflows: executes
src/Backend/WestmarchBook.Api/Controllers/AuthenticationController.cs - Catalog use cases → Repository contracts: uses
- Author use cases → Repository contracts: uses
- Publisher use cases → Repository contracts: uses
- Reader use cases → Repository contracts: uses
- Rent registration → Repository contracts: uses
- User workflows → Repository contracts: uses
- Repository contracts → EF repositories: implemented by
src/Backend/WestmarchBook.Infrastructure/DataAccess/Repositories/AuthorRepository.cs - EF repositories → EF data context: queries and writes
src/Backend/WestmarchBook.Infrastructure/DataAccess/Repositories/AuthorRepository.cs - EF data context → Book model: maps entity
src/Backend/WestmarchBook.Infrastructure/DataAccess/WestmarchBookDbContext.cs - API routing → Repository contracts: checks token user
src/Backend/WestmarchBook.Api/Program.cs - Authentication → JWT handler: issues token
- Desktop login → Desktop token: stores token
src/Frontend/WestmarchBook.Desktop/ViewModels/LoginViewModel.cs