AI-powered inventory management system.
| Backend | Frontend | Mobile | |
|---|---|---|---|
| Build | |||
| Tests |
| Layer | Technology |
|---|---|
| Backend | ASP.NET Core 10, C# latest, .NET 10.0.105 |
| Database | PostgreSQL via Npgsql + EF Core 10 |
| Messaging / CQRS | Wolverine 5.24 |
| Validation | FluentValidation 12 |
| Error handling | ErrorOr 2.0 |
| Frontend | Angular 21 (client-rendered), PWA, Tailwind CSS 4, PrimeNG 21, NgRx 21, Transloco, Bun |
| Mobile | Flutter Android (Riverpod, GoRouter, Dio, Freezed) |
intelibill/
├── docs/ # Architecture & pattern docs
├── src/
│ ├── backend/ # ASP.NET Core — Clean Architecture
│ │ ├── Intelibill.Domain/
│ │ ├── Intelibill.Application/
│ │ ├── Intelibill.Infrastructure/
│ │ └── Intelibill.Api/
│ ├── frontend/ # Angular (Bun, PWA, NgRx, offline IndexedDB)
│ └── mobile/
│ └── android/
│ └── intelibill_mobile/ # Flutter Android
├── tests/
│ ├── backend/unit/
│ ├── backend/integration/ # Requires Docker (Testcontainers)
│ └── frontend/
├── Directory.Build.props
├── Directory.Packages.props
└── global.json
See CLAUDE.md for backend architecture and docs/architectural_patterns.md for design patterns.
- .NET 10 SDK (10.0.105+)
- PostgreSQL running locally
- Bun 1.3+
dotnet build src/backend/Intelibill.slnx
# Edit src/backend/Intelibill.Api/appsettings.Development.json with DB credentials
dotnet ef database update \
--project src/backend/Intelibill.Infrastructure \
--startup-project src/backend/Intelibill.Api
dotnet run --project src/backend/Intelibill.ApiAPI: http://localhost:5202 — OpenAPI: http://localhost:5202/openapi/v1.json (dev only)
cd src/frontend
bun install
bun run startFlutter Android (Android-only):
cd src/mobile/android/intelibill_mobile
# Setup
flutter pub get
dart run build_runner build --delete-conflicting-outputs
# Development
flutter analyze
dart format --set-exit-if-changed .
flutter test --coverage
# Build debug APK
flutter build apk --debugSee docs/mobile-architecture.md for architecture and testing details.
# DB only (for local backend dev)
docker compose up -d
# Full stack
docker compose --profile full up -d| Service | URL |
|---|---|
| Backend | http://localhost:8080 |
| Frontend | http://localhost:4000 |
| PostgreSQL | localhost:5432 |
# Rebuild after code changes
docker compose --profile full up -d --build
# Tear down (add -v to wipe the database)
docker compose --profile full downSignalR is embedded in the ASP.NET Core app. To enable WebSockets on Azure App Service:
Portal → App Service → Configuration → General Settings → Web Sockets: On
SignalR automatically falls back to Server-Sent Events (SSE) or Long Polling if WebSockets are disabled — no code change required. WebSockets should be enabled in production for lowest latency.
This project is licensed under the GNU Affero General Public License v3.0. See LICENSE for details.