A professional cross-platform recipe costing and menu management application for restaurants, built with Avalonia UI and .NET 8.
| Platform | Download | Notes |
|---|---|---|
| Windows (Installer) | Download .exe | Recommended - includes auto VC++ runtime |
| Windows (Portable) | Download .zip | No install required - extract and run |
| macOS (Intel) | Download .zip | Untested - should work* |
| macOS (Apple Silicon) | Download .zip | Untested - should work* |
| Linux (x64) | Download .zip | Untested - should work* |
*macOS and Linux builds are generated automatically but have not been tested as we don't have access to those platforms. The code is cross-platform Avalonia UI and should work. Please report any issues!
Desktop Food Cost helps restaurant owners, chefs, and kitchen managers calculate accurate food costs, manage recipes, and make data-driven menu pricing decisions. The application runs entirely locally with multi-location support, making it ideal for managing multiple restaurants or kitchen operations.
- Recipe Builder: Create recipes with ingredients, sub-recipes, portions, and step-by-step instructions
- Entree Costing: Build complete menu items from recipes and ingredients with automatic cost rollup
- Photo Gallery: Attach photos to recipes and entrees for visual reference
- Version Control: Track recipe changes over time with full version history
- Real-Time Costing: Automatic cost calculation as you build recipes
- Price History: Track ingredient price changes over time
- Cost Trends: Visualize cost fluctuations with trend analysis charts
- Profit Margins: Set target margins and get pricing recommendations
- Location Management: Create and manage multiple restaurant locations
- Location Switching: Quick switch between locations from the header
- Isolated Data: Each location maintains its own ingredients, recipes, and pricing
- Bulk Operations: Import/export data between locations
- Excel Import: Bulk import ingredients from Excel spreadsheets
- Excel Export: Export recipes, entrees, and cost reports
- Backup & Restore: Automatic and manual database backups
- Recycle Bin: Recover accidentally deleted items
- Nutritional Data: USDA FoodData Central integration for automatic nutritional info
- Allergen Tracking: Comprehensive allergen management and warnings
- Unit Conversions: Intelligent unit conversion system (weight, volume, each)
- Shopping Lists: Generate shopping lists from recipes and entrees
- Portion Calculator: Scale recipes up or down with automatic recalculation
Screenshots coming soon
| Component | Technology |
|---|---|
| Framework | .NET 8 |
| UI | Avalonia UI 11.x (cross-platform XAML) |
| Database | SQLite with Entity Framework Core |
| Architecture | MVVM with CommunityToolkit.Mvvm |
| DI Container | Microsoft.Extensions.DependencyInjection |
| Image Processing | SkiaSharp |
dfc/
├── dfc.core/ # Core business logic, services, and interfaces
│ ├── Constants/ # Application constants
│ ├── Enums/ # Enumeration types
│ ├── Helpers/ # Utility classes
│ ├── Interfaces/ # Service interfaces
│ ├── Models/ # Domain models
│ └── Services/ # Business logic services
│
├── dfc.data/ # Data access layer
│ ├── LocalDatabase/ # SQLite DbContext and configuration
│ ├── Migrations/ # EF Core migrations
│ ├── Repositories/ # Repository implementations
│ └── Services/ # Data-specific services
│
├── dfc.desktop/ # Avalonia desktop application
│ ├── Assets/ # Images, icons, and resources
│ ├── Controls/ # Custom UI controls
│ ├── Converters/ # XAML value converters
│ ├── Models/ # View-specific models
│ ├── Services/ # Desktop-specific services
│ ├── ViewModels/ # MVVM ViewModels
│ └── Views/ # AXAML views and windows
│
├── dfc.tests/ # Unit and integration tests
└── installer/ # Inno Setup installer scripts
- .NET 8 SDK
- Visual Studio 2022, JetBrains Rider, or VS Code with C# extension
# Clone the repository
git clone https://github.com/brobata/desktop-foodcost.git
cd desktop-foodcost
# Restore dependencies
dotnet restore
# Build the solution
dotnet builddotnet run --project dfc.desktop# Windows (self-contained)
dotnet publish dfc.desktop -c Release -r win-x64 --self-contained -o ./publish/win-x64
# macOS (self-contained)
dotnet publish dfc.desktop -c Release -r osx-x64 --self-contained -o ./publish/osx-x64
# Linux (self-contained)
dotnet publish dfc.desktop -c Release -r linux-x64 --self-contained -o ./publish/linux-x64For automatic nutritional data lookup, obtain a free API key from USDA FoodData Central.
Set the environment variable:
export USDA_API_KEY=your_api_key_hereOr add it to your .env file in the application directory.
Desktop Food Cost uses SQLite for local data storage. The database is created automatically on first run at:
- Windows:
%APPDATA%\Desktop Food Cost\dfc.db - macOS:
~/Library/Application Support/Desktop Food Cost/dfc.db - Linux:
~/.local/share/Desktop Food Cost/dfc.db
Automatic backups are created daily in the Backups subdirectory. You can also create manual backups from Settings > Backup & Restore.
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
- Cloud sync option (Supabase backend)
- Mobile companion app
- Menu engineering analytics
- Vendor price comparison
- Inventory management integration
- Multi-language support
This project is licensed under the MIT License - see the LICENSE file for details.
Brobata - brobata.com
- Avalonia UI - Cross-platform .NET UI framework
- USDA FoodData Central - Nutritional data API
- CommunityToolkit.Mvvm - MVVM toolkit