ToolInventory is a full-stack tool management system with:
- Backend API in
src/ToolInventory.API(.NET 10, EF Core, Identity, JWT). - Frontend in
frontend/tool-inventory-app(Angular 21, Angular Material). - Mobile app in
mobile/ToolInventory.MAUI(.NET MAUI).
| Path | Purpose |
|---|---|
src/ |
Backend projects (API, Core, Infrastructure, Shared) |
frontend/tool-inventory-app/ |
Angular web app |
mobile/ToolInventory.MAUI/ |
MAUI mobile app |
tests/ |
API tests and E2E tests |
- Controllers are thinner; checkout/tool/maintenance business rules moved to service layer.
- Startup is split into extension methods (
ServiceCollectionExtensions,ApplicationBuilderExtensions). - Repository/UoW support cancellation tokens and filtered paging.
- Inputs are normalized centrally and API errors are consistently returned as
ProblemDetails. - Added optimized scanner check-in endpoint:
PUT /api/checkouts/tool/{toolId}/checkin.
confirm()prompts replaced by shared Angular Material confirm dialog.- Scanner check-in now uses backend endpoint by tool id (no full checkout list fetch).
- Shared status-color mapping and reduced duplicated dialog refresh logic.
- Better component lifecycle usage (
ngOnInitfor data-loading side effects). - Tools page redesigned to an operations dashboard with quick checkout/check-in panel, metrics, and alerts.
- Input and action icons migrated to custom SVG icons (mail, user, search, QR/barcode, plus, reset, edit, trash, box, eye, calendar).
- API calls now return explicit
ApiResult/ApiResult<T>with status and error details. - ViewModels use consistent dialog/navigation abstraction via
IUserDialogService. - Route strings centralized in
Navigation/AppRoutes.cs. - Scanner flow includes request guarding to avoid duplicate/racing actions.
- Mobile scanner check-in now uses
PUT /api/checkouts/tool/{toolId}/checkin.
cd src/ToolInventory.API
dotnet runcd frontend/tool-inventory-app
npm ci
ng servedotnet build mobile/ToolInventory.MAUI/ToolInventory.MAUI.csproj -f net10.0-windows10.0.19041.0- Vulnerability reporting process: see SECURITY.md.
- Automated checks in CI: CodeQL, secret scanning (Gitleaks), dependency review, and SBOM generation.
- Dependency updates: Dependabot for GitHub Actions.
- Secret hygiene:
.gitignoreblocks common local secret files.