स्वास्थ्य तकनीक के प्रति उत्साही डेवलपर के रूप में, मैंने बाजार में एक अंतर देखा। जबकि सबवे पोषण संबंधी जानकारी प्रदान करता है, ग्राहकों के पास अपने सटीक भोजन संयोजनों को अनुकूलित करने के लिए एक इंटरैक्टिव टूल की कमी है। मैं कुछ ऐसा बनाना चाहता था जो लोगों को उनके भोजन विकल्पों के बारे में रीयल-टाइम अंतर्दृष्टि प्रदान करे, बिल्कुल आखिरी कैलोरी तक।
चुनौती स्पष्ट थी: एक व्यापक कैलकुलेटर बनाना जो सबवे के मेनू की विशाल विविधता को संभाल सके—ब्रेड विकल्पों और प्रोटीन चयन से लेकर हर सब्जी और कंडीमेंट तक, सभी आधिकारिक पोषण डेटा के साथ सटीकता बनाए रखते हुए।
मुझे न्यूट्रिशनिक्स द्वारा एक टूल मिला जो वही काम करता है, जो अच्छा है, लेकिन मैं कुछ ऐसा बनाना चाहता था जो अधिक उपयोगकर्ता-अनुकूल महसूस हो।
मेरा पहला कार्य पोषण संबंधी डेटा को इकट्ठा करना और संरचित करना था। मैंने सबवे के आधिकारिक पोषण चार्ट इकट्ठा करने, मापों को मानकीकृत करने और एक व्यापक JSON डेटाबेस बनाने में हफ्ते बिताए।
संरचना को व्यापक और कुशल दोनों होने की आवश्यकता थी:
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 };
\ प्रत्येक मेनू आइटम में 19 पोषण संबंधी मेट्रिक्स शामिल हैं, यह सुनिश्चित करते हुए कि हम केवल कैलोरी नहीं, बल्कि एक पूर्ण FDA-शैली का पोषण लेबल प्रदर्शित कर सकें।
मुख्य जटिलता उपयोगकर्ता के चयन स्थिति को प्रबंधित करने में थी। सबवे का ऑर्डर एक साधारण चयन नहीं है—यह एक बहु-आयामी संयोजन है:
let currentSelection = { sandwichSize: '6inch', bread: null, proteins: {}, cheeses: {}, vegetables: {}, condiments: {}, // ... with quantities for each };
\ मैंने एक मात्रा-आधारित प्रणाली लागू की जहां उपयोगकर्ता प्रोटीन, चीज़, या सब्जियों के कई हिस्से जोड़ सकते थे। "फुटलॉन्ग" मल्टीप्लायर को स्वचालित रूप से उपयुक्त घटकों को दोगुना करना था, जबकि अन्य (जैसे सलाद) को अप्रभावित रखना था।
यह सुनिश्चित करने के लिए कि कैलकुलेटर CSS कॉन्फ्लिक्ट के बिना किसी भी वेबसाइट पर काम करेगा, मैंने एक स्कोप्ड दृष्टिकोण का उपयोग किया:
#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; }
\ all: initial रीसेट और उच्च z-index (99999) ने सुनिश्चित किया कि कैलकुलेटर होस्ट साइट की स्टाइलिंग के बावजूद लगातार रेंडर होगा।
टूल सबवे की आधिकारिक 2025 पोषण जानकारी का उपयोग करता है, जिसमें हाल के जोड़ जैसे घोस्ट पेपर ब्रेड और अपडेटेड सलाद फॉर्मूला शामिल हैं। प्रत्येक डेटा बिंदु को सबवे के PDF पोषण गाइड और वेबसाइट डेटा के साथ सत्यापित किया गया था।
डेटाबेस में केवल कैलोरी ही नहीं बल्कि निम्न भी शामिल हैं:
कैलकुलेशन इंजन को जटिल परिदृश्यों को संभालना था:
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 }; }
मैंने सटीक FDA पोषण लेबल फॉर्मेट को दोहराया, 2,000-कैलोरी आहार (उपयोगकर्ता-समायोज्य) के आधार पर प्रतिशत दैनिक मूल्यों की गणना की:
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 };
% Daily Value गणना इन आधिकारिक FDA संदर्भ राशियों का उपयोग करती है, नियामक अनुपालन सुनिश्चित करती है।
रीयल-टाइम काउंटर के साथ अकॉर्डियन-शैली के ड्रॉपडाउन ने जटिलता की समस्या को हल किया:
प्रत्येक उपयोगकर्ता क्रिया कई अपडेट ट्रिगर करती है:
प्रगति बार रंग कोडिंग (हरा → पीला → लाल) का उपयोग करता है जो दृश्य रूप से इंगित करता है कि भोजन दैनिक लक्ष्यों में कैसे फिट होता है।
कैलकुलेटर रणनीतिक ब्रेकपॉइंट के साथ CSS ग्रिड और फ्लेक्सबॉक्स का उपयोग करता है:
@media (max-width: 768px) { .calculator-container { flex-direction: column; } .item-with-quantity { flex-direction: column; } .goal-setting-content { grid-template-columns: 1fr; } }
मोबाइल पर, आइटम लंबवत स्टैक होते हैं, और पोषण लेबल क्षैतिज स्क्रॉलिंग के बिना पठनीय रहता है।
निर्यात सुविधा एक विस्तृत टेक्स्ट रिपोर्ट जनरेट करती है जिसमें शामिल हैं:
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 };
प्रत्येक पोषण मूल्य को इनके साथ क्रॉस-रेफरेंस किया गया था:
मॉड्यूलर JSON संरचना आसान अपडेट की अनुमति देती है जब सबवे:
टूल में संभावित क्षेत्रीय भिन्नताओं वाले आइटम के लिए नोट्स (**) शामिल हैं, जो उपयोगकर्ताओं को उपलब्ध होने पर स्थानीय पोषण जानकारी की जांच करने की सलाह देते हैं।
सबवे न्यूट्रिशन कैलकुलेटर का निर्माण केवल एक कोडिंग प्रोजेक्ट से अधिक था—यह खाद्य विकल्पों में पारदर्शिता बनाने के बारे में था। सटीक, आधिकारिक पोषण डेटा को सहज इंटरफेस के साथ जोड़कर, हमने उपयोगकर्ताओं को अपने भोजन के बारे में सूचित निर्णय लेने के लिए सशक्त बनाया है।
यह टूल दर्शाता है कि वेब तकनीकें (HTML, CSS, JavaScript) कैसे शक्तिशाली, इंटरैक्टिव एप्लिकेशन बना सकती हैं जो कॉर्पोरेट डेटा और उपभोक्ता समझ के बीच की खाई को पाटती हैं। कोड की हर पंक्ति अंतिम लक्ष्य की सेवा करती है: लोगों को यह समझने में मदद करना कि वे ठीक क्या खा रहे हैं, ताकि वे अपने सबवे विकल्पों को अपने स्वास्थ्य लक्ष्यों के अनुरूप बना सकें।
कैलकुलेटर एक जीवित प्रोजेक्ट बना हुआ है, जिसमें सटीकता और उपयोगिता के प्रति मूल प्रतिबद्धता को बनाए रखते हुए अपनी क्षमताओं का विस्तार करने की योजनाएं हैं, जिसने इसे पहले से ही हजारों उपयोगकर्ताओं के लिए मूल्यवान बना दिया है।
कैलकुलेटर लिंक: सबवे कैलोरी कैलकुलेटर: कैलोरी गिनें सब का आनंद लें - सबवे कैलोरी कैलकुलेटर
\ \


