A Modern and User-Friendly Interface for the Bookstore Management System
- Overview
- Key Features (Client-side)
- Client Architecture (MAUI)
- Technologies Used (Client)
- Screenshots
- Contributing
- License
Bookstore.Mobile is a cross-platform application built with .NET MAUI, providing an intuitive and modern user interface to interact with the BookStoreManagement-API. The application allows both Customers and Staff/Admins to access and manage bookstore operations efficiently.
The app is designed to run on Android, iOS, Windows, and macOS (depending on configuration and deployment targets).
This MAUI application implements functionalities corresponding to the APIs provided by the backend:
-
Customer:
- 🔐 Registration & Login: Create a new account and log in securely.
- 🏠 Home: Display new books and featured promotions.
- 📖 Browse Products: View categories, browse books by category, and search for books.
- ℹ️ Book Details: View full information, images, descriptions, prices, and user reviews.
- ❤️ Wishlist: Add or remove books from a personal wishlist.
- 🛒 Shopping Cart: Add books to the cart, update quantities, remove items, and view the total price.
- 👤 Profile Management: View personal info, manage shipping addresses (add, edit, delete, set as default).
- 🛍️ Checkout: Select a shipping address, review the order, and place the order (with mock payment integration).
- 📋 Order History: View the list of past orders and track order details.
- ⭐ Submit Reviews: Write and submit ratings and reviews for purchased books.
- 🔑 Logout.
-
Admin & Staff (Features are displayed dynamically based on user role upon login):
- 📊 Management Dashboard: View quick overview metrics (revenue, new orders, etc.).
- 📦 Order Management: View all orders, filter by status, view details, and update order statuses.
- 📚 Product Management: View lists, Add/Edit/Delete Books, Categories, and Authors. Upload cover images.
- 🚚 Inventory Management: Create goods receipt notes, view receipt history, and perform manual inventory adjustments.
- 🏷️ Promotion Management: View lists, Add/Edit/Delete promo codes.
- 👥 User Management (Admin): View user lists, view user details, activate/deactivate accounts, and (optionally) change roles.
- 📈 Reports: Access reports for Revenue, Best-Selling Books, and Low Inventory (charts included).
The MAUI app is built following the MVVM (Model-View-ViewModel) architecture to ensure a clean separation of concerns and maintainability:
- Views: XAML files that define the user interface alongside minimal code-behind (
.xaml.cs) logic. - ViewModels: Classes containing presentation logic, View state, and Commands bound to the View. Powered by
CommunityToolkit.Mvvm. - Models/DTOs: Classes representing data (often DTOs mirrored or referenced from the API project) used across ViewModels and Views.
- Services: Classes responsible for specific tasks such as executing API calls, managing authentication states, and navigation.
- Interfaces: Define contracts for Services and API Clients for better testability and dependency injection.
- Handlers: Custom
DelegatingHandlerclasses to manage cross-cutting concerns, such as automatically attaching authentication tokens to requests. - Converters:
IValueConverterimplementations for transforming data during UI binding. - Shell: Utilizes .NET MAUI Shell for the primary navigation structure (Flyout/Tabs) and routing.
- Framework: .NET MAUI (on .NET 8.0 / .NET 9 Preview)
- Language: C#
- UI: XAML
- Architecture: MVVM (using
CommunityToolkit.Mvvm) - API Calling: Refit (with
System.Text.JsonorNewtonsoft.Json) - Navigation: .NET MAUI Shell
- Dependency Injection: Built-in .NET MAUI DI (
Microsoft.Extensions.DependencyInjection) - Secure Storage:
Microsoft.Maui.Storage.SecureStorage(for JWT tokens) - Preferences Storage:
Microsoft.Maui.Storage.Preferences - Image Processing: Standard MAUI Image controls (can consider
FFImageLoading.MauiorCommunityToolkit.Maui.ImageCachingfor optimization). - Charts:
Microcharts.Maui - Logging:
Microsoft.Extensions.Logging
Contributions, issues, and feature requests are welcome! Feel free to check the issues page.
This project is licensed under the MIT License - see the LICENSE file for details.





