Sistem aplikasi berbasis web untuk mengelola distribusi makanan bergizi gratis ke sekolah dengan fitur perhitungan gizi otomatis, manajemen stok, RAB, dan notifikasi WhatsApp.
- ✅ 13 Migration files untuk complete database schema
- ✅ 13 Eloquent Models dengan relationships lengkap
- ✅ Foreign keys dan indexes teroptimasi
- ✅ Perhitungan otomatis gizi per menu
- ✅ NutritionCalculator service (4 methods)
- ✅ Integration pada Menu model
- ✅ Beautiful UI dengan Tailwind CSS
- ✅ Real-time calculation display
- ✅ MenuController (Full CRUD + nutrition)
- ✅ Menu detail view dengan tampilan gizi
- ✅ Demo landing page
- ✅ Routes configured
- ✅ RawMaterialSeeder (8 bahan baku)
- ✅ MenuSeeder (4 sample menus)
- Laravel Breeze installation
- Spatie Permission setup
- Controllers untuk modules lain (School, Stock, Calendar, RAB, dll)
- WhatsApp Gateway integration
- Dashboards
- Reports & Analytics
- Complete UI/UX
cd "d:\Data Freelance\Project Freelance\mbg-system"
# Install Composer dependencies (jika belum)
composer install
# Install Laravel Breeze
composer require laravel/breeze --dev
php artisan breeze:install blade
# Install Spatie Permission
composer require spatie/laravel-permission
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider"# Copy environment file
copy .env.example .env
# Generate application key
php artisan key:generate
# Setup database di .env
# DB_CONNECTION=mysql
# DB_HOST=127.0.0.1
# DB_PORT=3306
# DB_DATABASE=mbg_system
# DB_USERNAME=root
# DB_PASSWORD=# Create database first, then run:
php artisan migrate
# Seed sample data
php artisan db:seed# Install NPM dependencies
npm install
# Build assets
npm run devphp artisan serveVisit: http://localhost:8000
- Raw Material Nutrition - Data nutrisi per 100g
- Menu Items - Jumlah bahan per porsi (gram/ml)
- Automatic Calculation -
(quantity / 100) × nutrition_per_100g
Menu Ayam Riza:
- Ayam Goreng: 150g
- Energi: 239 kkal/100g → (150/100) × 239 = 358.5 kkal
- Susu: 200ml
- Energi: 61 kkal/100ml → (200/100) × 61 = 122 kkal
- Sayur Kol: 100g
- Energi: 25 kkal/100g → (100/100) × 25 = 25 kkal
- Nasi: 200g
- Energi: 130 kkal/100g → (200/100) × 130 = 260 kkal
Total Otomatis: 765.5 kkal ✅
app/Models/Menu.php- Punya method calculateNutrition()app/Models/RawMaterial.php- Dengan getCurrentStock()app/Models/RawMaterialNutrition.php- Data per 100g- 10 models lainnya
app/Services/NutritionCalculator.php- Service untuk kalkulasi
app/Http/Controllers/MenuController.php- CRUD + nutrition
resources/views/menus/show.blade.php- Tampilan gizi otomatisresources/views/welcome.blade.php- Demo page
database/migrations/2026_01_12_*_create_*_table.php(13 files)
database/seeders/RawMaterialSeeder.phpdatabase/seeders/MenuSeeder.php
- ✅ 5 nutrition cards (Energy, Protein, Fat, Carbs, Fiber)
- ✅ Gradient color schemes
- ✅ SVG icons per nutrient
- ✅ Ingredients table dengan kontribusi energi
- ✅ Responsive design (mobile & desktop)
- ✅ "Otomatis Terhitung" badge
schools- Data sekolahschool_coordinators- Koordinator sekolahusers- Authentication
raw_materials- Bahan bakuraw_material_nutritions- Data gizi per 100gstocks- Transaksi stoksuppliers- Supplier
menus- Menu (wet/dry)menu_items- Komposisi menu
school_calendars- Jadwal harianweekly_locks- Lock mingguanrabs- Budgetrab_details- Detail budget
notifications_log- Log WhatsApp
- Configure Laravel Breeze
- Setup Spatie Permission
- Create roles & permissions seeder
- Test login system
- SchoolController
- RawMaterialController
- StockController
- SchoolCalendarController
- Weekly Lock mechanism
- RAB generation system
- WhatsApp integration (Fonnte)
- Scheduler for auto-notifications
- Admin Dashboard dengan charts
- Coordinator Dashboard
- Reports & Analytics
php artisan tinker$menu = Menu::find(1);
$nutrition = $menu->calculateNutrition();
print_r($nutrition);
// Output: ['energy' => X, 'protein' => Y, ...]$calc = new App\Services\NutritionCalculator();
$school = App\Models\School::find(1);
$nutrition = $calc->calculateSchoolWeeklyNutrition($school, 3, 2026);FONNTE_API_KEY=your_api_key_here
FONNTE_URL=https://api.fonnte.com/send- Super Admin
- Admin MBG
- Koordinator Sekolah
- Koordinator Dapur
- Supplier
- Laravel Version: 12.x (Latest)
- PHP Version: ^8.2
- Database: MySQL/PostgreSQL
- Frontend: Blade + Tailwind CSS
- Notifications: WhatsApp (Fonnte - planned)
✅ AUTOMATIC NUTRITIONAL CALCULATION SYSTEM IS READY!
Sistem sekarang bisa:
- Menyimpan data gizi per bahan
- Membuat menu dengan komposisi
- Menghitung gizi otomatis ⭐
- Menampilkan dengan UI modern
- Scale ke level sekolah & mingguan
Sistem ini siap dikembangkan lebih lanjut. Fokus berikutnya:
- Complete authentication
- Additional CRUD modules
- WhatsApp notifications
- Weekly locking system
MIT License
Built with ❤️ using Laravel 12, Blade, and Tailwind CSS