স্বাস্থ্য প্রযুক্তি সম্পর্কে আগ্রহী একজন ডেভেলপার হিসাবে, আমি বাজারে একটি ফাঁক লক্ষ্য করেছি। সাবওয়ে পুষ্টি সম্পর্কিত তথ্য প্রদান করলেও, গ্রাহকদের তাদের নির্দিষ্ট খাবারের সংমিশ্রণ কাস্টমাইজ করার জন্য একটি ইন্টারেক্টিভ টুল নেই। আমি এমন কিছু তৈরি করতে চেয়েছিলাম যা মানুষকে তাদের খাবারের পছন্দ সম্পর্কে রিয়েল-টাইম অন্তর্দৃষ্টি দেবে, শেষ ক্যালোরি পর্যন্ত।
চ্যালেঞ্জটি স্পষ্ট ছিল: একটি ব্যাপক ক্যালকুলেটর তৈরি করা যা সাবওয়ের মেনুর বিশাল পরিবর্তনশীলতা সামলাতে পারে—রুটির পছন্দ থেকে শুরু করে প্রোটিন নির্বাচন থেকে প্রতিটি শাকসবজি এবং কন্ডিমেন্ট পর্যন্ত, সবই অফিসিয়াল পুষ্টি তথ্যের সাথে সঠিকতা বজায় রেখে।
আমি নিউট্রিশনিক্স দ্বারা একটি টুল খুঁজে পেয়েছি যা একই কাজ করে, যা ভালো, কিন্তু আমি এমন কিছু তৈরি করতে চেয়েছিলাম যা আরও ব্যবহারকারী-বান্ধব মনে হয়।
আমার প্রথম কাজ ছিল পুষ্টি সম্পর্কিত তথ্য সংগ্রহ এবং কাঠামো তৈরি করা। আমি সাবওয়ের অফিসিয়াল পুষ্টি চার্ট সংগ্রহ করতে, পরিমাপ মানকীকরণ করতে এবং একটি ব্যাপক 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 };
\ প্রতিটি মেনু আইটেমে ১৯টি পুষ্টি মেট্রিক্স রয়েছে, যা নিশ্চিত করে যে আমরা শুধুমাত্র ক্যালোরি নয়, একটি সম্পূর্ণ 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) নিশ্চিত করেছে যে ক্যালকুলেটরটি হোস্ট সাইটের স্টাইলিং নির্বিশেষে সামঞ্জস্যপূর্ণভাবে রেন্ডার করবে।
টুলটি সাবওয়ের অফিসিয়াল ২০২৫ পুষ্টি তথ্য ব্যবহার করে, সাম্প্রতিক সংযোজন যেমন ঘোস্ট পেপার ব্রেড এবং আপডেট করা সালাদ ফর্মুলা সহ। প্রতিটি ডাটা পয়েন্ট সাবওয়ের 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 পুষ্টি লেবেল ফরম্যাট পুনরায় তৈরি করেছি, ২,০০০-ক্যালোরি ডায়েটের উপর ভিত্তি করে শতাংশ দৈনিক মান গণনা করেছি (ব্যবহারকারী-সামঞ্জস্যযোগ্য):
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) শক্তিশালী, ইন্টারেক্টিভ অ্যাপ্লিকেশন তৈরি করতে পারে যা কর্পোরেট ডাটা এবং ভোক্তা বোঝার মধ্যে ব্যবধান পূরণ করে। কোডের প্রতিটি লাইন চূড়ান্ত লক্ষ্য পূরণ করে: মানুষকে বুঝতে সাহায্য করা যে তারা ঠিক কী খাচ্ছে, যাতে তারা তাদের সাবওয়ে পছন্দগুলিকে তাদের স্বাস্থ্য লক্ষ্যের সাথে সারিবদ্ধ করতে পারে।
ক্যালকুলেটরটি একটি জীবন্ত প্রকল্প হিসাবে থাকে, এর সক্ষমতা প্রসারিত করার পরিকল্পনা সহ, সঠিকতা এবং ব্যবহারযোগ্যতার প্রতি মূল প্রতিশ্রুতি বজায় রেখে যা ইতিমধ্যে হাজার হাজার ব্যবহারকারীর কাছে মূল্যবান হয়েছে।
ক্যালকুলেটর লিঙ্ক: সাবওয়ে ক্যালোরি ক্যালকুলেটর: ক্যালোরি গণনা করুন সাব উপভোগ করুন - সাবওয়ে ক্যালোরি ক্যালকুলেটর
\ \


