Nirmaan (Hindi for "Construction") is a comprehensive, cross-platform construction and site management application built with .NET 10 and Avalonia UI. It is designed to help site managers, contractors, and builders efficiently manage workers, track materials, and monitor project finances from a single, unified interface that runs on Desktop, Mobile, and Web.
- 👷 Worker Management:
- Register and manage site workers.
- Define and manage daily or hourly rates.
- 📅 Attendance Tracking:
- Record daily attendance for workers.
- Automatically calculate salaries based on logged attendance and individual rates.
- 🧱 Goods & Materials Management:
- Track inventory of construction materials (Goods).
- Manage suppliers and vendors (Sellers).
- 💰 Payments & Billing:
- Record payments made to workers (Salaries) and vendors.
- Manage bills and overall site expenses.
- 📊 Dashboard & Analytics:
- Get a bird's-eye view of site operations.
- Visual data representations and charts using ScottPlot.
- Framework: .NET 10
- UI Presentation: Avalonia UI (Cross-platform XAML framework)
- Architecture: MVVM (Model-View-ViewModel) using CommunityToolkit.Mvvm
- Database: SQLite (Local database)
- ORM: Entity Framework Core
- Charting: ScottPlot
- Icons: Material.Icons.Avalonia
- Mock Data: Bogus (used for seeding realistic test data)
The project uses the new .slnx solution format and is organized into a clean, layered architecture:
Nirmaan.Core: Contains the core business logic, entity models (Worker, Goods, Payment, etc.), Entity FrameworkAppDbContext, and the Generic Repository & Service layers.Nirmaan.Shared: Contains the cross-platform UI code. This includes all Avalonia XAML Views, ViewModels (MVVM), UI assets, styles (DaisyUI-inspired), and Dependency Injection setup.Nirmaan.Platforms: Contains the platform-specific bootstrapper projects:Nirmaan.Desktop(Windows, macOS, Linux)Nirmaan.AndroidNirmaan.iOSNirmaan.Browser(WebAssembly)
- .NET 10 SDK or later.
- An IDE that supports Avalonia UI (e.g., Visual Studio 2022, JetBrains Rider, or VS Code with the Avalonia extension).
To run the desktop application from the command line:
# Clone the repository
git clone <your-repo-url>
cd Nirmaan
# Run the Desktop project
dotnet run --project Nirmaan/Nirmaan.Platforms/Nirmaan.Desktop/Nirmaan.Desktop.csprojAlternatively, you can use dotnet watch for hot-reloading during development:
dotnet watch --project Nirmaan/Nirmaan.Platforms/Nirmaan.Desktop/Nirmaan.Desktop.csprojThe application uses a local SQLite database (nirmaan.db). Upon the first run, the database is automatically created, and EF Core migrations are applied. The database is also seeded with realistic placeholder data (using Bogus) to facilitate immediate testing and development.