Sebagai pengembang yang bersemangat tentang teknologi kesehatan, saya melihat adanya celah di pasar. Meskipun Subway menawarkan informasi nutrisi, pelanggan tidak memiliki alat interaktif untuk menyesuaikan kombinasi makanan mereka secara tepat. Saya ingin menciptakan sesuatu yang akan memberikan orang wawasan real-time tentang pilihan makanan mereka, hingga kalori terakhir.
Tantangannya jelas: membangun kalkulator komprehensif yang dapat menangani variabilitas besar menu Subway—dari pilihan roti dan protein hingga setiap sayuran dan bumbu, sambil mempertahankan akurasi dengan data nutrisi resmi.
Saya menemukan alat dari nutritionix yang melakukan hal yang sama, yang bagus, tetapi saya ingin membangun sesuatu yang terasa lebih ramah pengguna.
Tugas pertama saya adalah mengumpulkan dan menyusun data nutrisi. Saya menghabiskan waktu berminggu-minggu mengumpulkan tabel nutrisi resmi Subway, menstandarisasi pengukuran, dan membuat database JSON yang komprehensif.
Strukturnya perlu komprehensif dan efisien:
const subwayMenu = { breads: [ { id: 'artisan-italian', name: '6" Artisan Italian Bread', calories: 210, totalFat: 2, saturatedFat: 1, // ... 14 additional nutritional fields }, // ... 10 more bread options ], // ... 9 additional categories };
\ Setiap item menu berisi 19 metrik nutrisi, memastikan kita dapat menampilkan label nutrisi gaya FDA yang lengkap, bukan hanya kalori.
Kompleksitas intinya terletak pada pengelolaan state pilihan pengguna. Pesanan Subway bukanlah pilihan sederhana—ini adalah kombinasi multi-dimensi:
let currentSelection = { sandwichSize: '6inch', bread: null, proteins: {}, cheeses: {}, vegetables: {}, condiments: {}, // ... with quantities for each };
\ Saya mengimplementasikan sistem berbasis kuantitas di mana pengguna dapat menambahkan beberapa porsi protein, keju, atau sayuran. Pengganda "footlong" harus secara otomatis menggandakan komponen yang sesuai sambil menjaga yang lain (seperti salad) tidak terpengaruh.
Untuk memastikan kalkulator akan berfungsi di situs web mana pun tanpa konflik CSS, saya menggunakan pendekatan scoped:
#subway-calculator-isolated { all: initial; display: block; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', ...; } #subway-calculator-isolated * { box-sizing: border-box; margin: 0; padding: 0; }
\ Reset all: initial dan z-index tinggi (99999) memastikan kalkulator akan dirender secara konsisten terlepas dari styling situs host.
Alat ini menggunakan informasi nutrisi resmi Subway 2025, termasuk tambahan terbaru seperti Roti Ghost Pepper dan formula salad yang diperbarui. Setiap titik data diverifikasi dengan panduan nutrisi PDF Subway dan data situs web.
Database mencakup tidak hanya kalori tetapi:
Mesin perhitungan harus menangani skenario kompleks:
function calculateTotalNutrition() { let total = { calories: 0, totalFat: 0, /* ... */ }; const sizeMultiplier = currentSelection.sandwichSize === 'footlong' ? 2 : 1; // Bread calculation (size-dependent) if (currentSelection.bread) { addItemNutrition(total, bread, currentSelection.bread.quantity * sizeMultiplier); } // Proteins, cheeses, vegetables (size-dependent) ['proteins', 'cheeses', 'vegetables'].forEach(category => { // Apply size multiplier }); // Soups, desserts (size-independent) ['soups', 'desserts'].forEach(category => { // No size multiplier }); return { nutrition: total, ingredients }; }
Saya mereplikasi format label nutrisi FDA yang tepat, menghitung persentase Nilai Harian berdasarkan diet 2.000 kalori (dapat disesuaikan pengguna):
const fdaDailyValues = { totalFat: 78, saturatedFat: 20, cholesterol: 300, sodium: 2300, totalCarbs: 275, dietaryFiber: 28, addedSugars: 50, protein: 50, vitaminA: 900, vitaminC: 90, calcium: 1300, iron: 18 };
Perhitungan % Daily Value menggunakan jumlah referensi FDA resmi ini, memastikan kepatuhan regulasi.
Dropdown gaya akordeon dengan penghitung real-time memecahkan masalah kompleksitas:
Setiap tindakan pengguna memicu beberapa pembaruan:
Bar kemajuan menggunakan kode warna (hijau → kuning → merah) untuk menunjukkan secara visual bagaimana makanan sesuai dengan tujuan harian.
Kalkulator menggunakan CSS Grid dan Flexbox dengan breakpoint strategis:
@media (max-width: 768px) { .calculator-container { flex-direction: column; } .item-with-quantity { flex-direction: column; } .goal-setting-content { grid-template-columns: 1fr; } }
Di perangkat mobile, item ditumpuk secara vertikal, dan label nutrisi tetap dapat dibaca tanpa scrolling horizontal.
Fitur ekspor menghasilkan laporan teks terperinci termasuk:
window.subwaySaveNutritionInfo = function() { const summary = ` ============================================================ SUBWAY NUTRITION CALCULATOR - MEAL SUMMARY ============================================================ MEAL DETAILS: ------------- Size: ${sizeText} Total Calories: ${Math.round(nutrition.calories)} Daily Calorie Goal: ${userSettings.dailyCalorieGoal} calories Percentage of Daily Goal: ${Math.round((nutrition.calories / userSettings.dailyCalorieGoal) * 100)}% `; // ... generates downloadable file };
Setiap nilai nutrisi direferensi silang dengan:
Struktur JSON modular memungkinkan pembaruan mudah ketika Subway:
Alat ini menyertakan catatan (**) untuk item dengan potensi variasi regional, menyarankan pengguna untuk memeriksa informasi nutrisi lokal bila tersedia.
Membangun Kalkulator Nutrisi Subway lebih dari sekadar proyek coding—ini tentang menciptakan transparansi dalam pilihan makanan. Dengan menggabungkan data nutrisi resmi yang akurat dengan antarmuka intuitif, kami telah memberdayakan pengguna untuk membuat keputusan yang terinformasi tentang makanan mereka.
Alat ini menunjukkan bagaimana teknologi web (HTML, CSS, JavaScript) dapat menciptakan aplikasi interaktif yang kuat yang menjembatani kesenjangan antara data perusahaan dan pemahaman konsumen. Setiap baris kode melayani tujuan utama: membantu orang memahami persis apa yang mereka makan, sehingga mereka dapat menyelaraskan pilihan Subway mereka dengan tujuan kesehatan mereka.
Kalkulator tetap menjadi proyek yang hidup, dengan rencana untuk memperluas kemampuannya sambil mempertahankan komitmen inti terhadap akurasi dan kegunaan yang telah membuatnya berharga bagi ribuan pengguna.
Link kalkulator: Subway Calorie Calculator: Count the Calories Enjoy the Sub - Subway Calorie Calculator
\ \


