# একটি ব্যাংকিং অ্যাপ তৈরি করুন পার্ট ১: ওয়েব অ্যাপে HTML টেমপ্লেট এবং রুট ১৯৬৯ সালে অ্যাপোলো ১১ এর গাইডেন্স কম্পিউটার যখন চাঁদের দিকে নেভিগেট করছিল, তখন এটি পুরো সিস্টেমটি পুনরায় চালু না করে বিভিন্ন প্রোগ্রামের মধ্যে স্যুইচ করতে হয়েছিল। আধুনিক ওয়েব অ্যাপ্লিকেশন একইভাবে কাজ করে – তারা যা দেখায় তা পরিবর্তন করে, সবকিছু নতুন করে লোড না করেই। এটি ব্যবহারকারীদের জন্য একটি মসৃণ, প্রতিক্রিয়াশীল অভিজ্ঞতা তৈরি করে যা আজকের দিনে প্রত্যাশিত। প্রথাগত ওয়েবসাইটের তুলনায়, যা প্রতিটি ইন্টারঅ্যাকশনের জন্য পুরো পৃষ্ঠাটি পুনরায় লোড করে, আধুনিক ওয়েব অ্যাপ্লিকেশন শুধুমাত্র প্রয়োজনীয় অংশগুলি আপডেট করে। এই পদ্ধতি, ঠিক যেমন মিশন কন্ট্রোল বিভিন্ন ডিসপ্লের মধ্যে স্যুইচ করে ক্রমাগত যোগাযোগ বজায় রাখে, সেই মসৃণ অভিজ্ঞতা তৈরি করে যা আমরা আশা করি। এখানে কীভাবে পার্থক্য এত নাটকীয় হয়: | প্রথাগত মাল্টি-পেজ অ্যাপ | আধুনিক সিঙ্গেল-পেজ অ্যাপ | |----------------------------|-------------------------| | **নেভিগেশন** | প্রতিটি স্ক্রিনের জন্য পুরো পৃষ্ঠা পুনরায় লোড | তাত্ক্ষণিক কন্টেন্ট স্যুইচিং | | **পারফরম্যান্স** | সম্পূর্ণ HTML ডাউনলোডের কারণে ধীর | আংশিক আপডেটের মাধ্যমে দ্রুত | | **ব্যবহারকারীর অভিজ্ঞতা** | পৃষ্ঠার ঝলকানি | মসৃণ, অ্যাপ-সদৃশ ট্রানজিশন | | **ডেটা শেয়ারিং** | পৃষ্ঠাগুলির মধ্যে শেয়ার করা কঠিন | সহজ স্টেট ম্যানেজমেন্ট | | **উন্নয়ন** | একাধিক HTML ফাইল বজায় রাখা | ডায়নামিক টেমপ্লেট সহ একটি HTML | **উন্নয়নের বিবর্তন বুঝুন:** - **প্রথাগত অ্যাপ** প্রতিটি নেভিগেশন অ্যাকশনের জন্য সার্ভার অনুরোধ প্রয়োজন - **আধুনিক SPA** একবার লোড হয় এবং জাভাস্ক্রিপ্ট ব্যবহার করে কন্টেন্ট ডায়নামিকভাবে আপডেট করে - **ব্যবহারকারীর প্রত্যাশা** এখন তাত্ক্ষণিক, মসৃণ ইন্টারঅ্যাকশন পছন্দ করে - **পারফরম্যান্স সুবিধা** অন্তর্ভুক্ত ব্যান্ডউইথ হ্রাস এবং দ্রুত প্রতিক্রিয়া এই পাঠে, আমরা একটি ব্যাংকিং অ্যাপ তৈরি করব যার একাধিক স্ক্রিন থাকবে যা মসৃণভাবে একসাথে প্রবাহিত হবে। ঠিক যেমন বিজ্ঞানীরা বিভিন্ন পরীক্ষার জন্য পুনর্গঠনযোগ্য মডুলার যন্ত্র ব্যবহার করেন, আমরা HTML টেমপ্লেট ব্যবহার করব পুনরায় ব্যবহারযোগ্য উপাদান হিসাবে যা প্রয়োজন অনুযায়ী প্রদর্শিত হতে পারে। আপনি HTML টেমপ্লেট (বিভিন্ন স্ক্রিনের জন্য পুনরায় ব্যবহারযোগ্য ব্লুপ্রিন্ট), জাভাস্ক্রিপ্ট রাউটিং (স্ক্রিনগুলির মধ্যে স্যুইচ করার সিস্টেম) এবং ব্রাউজারের ইতিহাস API (যা ব্যাক বোতামটি প্রত্যাশিতভাবে কাজ করে তা নিশ্চিত করে) নিয়ে কাজ করবেন। এগুলি React, Vue এবং Angular এর মতো ফ্রেমওয়ার্কে ব্যবহৃত মৌলিক কৌশল। শেষে, আপনার কাছে একটি কার্যকরী ব্যাংকিং অ্যাপ থাকবে যা পেশাদার সিঙ্গেল-পেজ অ্যাপ্লিকেশন নীতিগুলি প্রদর্শন করবে। ## প্রি-লেকচার কুইজ [প্রি-লেকচার কুইজ](https://ff-quizzes.netlify.app/web/quiz/41) ### যা যা লাগবে আমাদের ব্যাংকিং অ্যাপ পরীক্ষা করার জন্য একটি লোকাল ওয়েব সার্ভার দরকার – চিন্তা করবেন না, এটি শুনতে যতটা কঠিন মনে হয় ততটা নয়! যদি আপনার ইতিমধ্যে সেট আপ না থাকে, তাহলে [Node.js](https://nodejs.org) ইনস্টল করুন এবং আপনার প্রজেক্ট ফোল্ডার থেকে `npx lite-server` চালান। এই সুবিধাজনক কমান্ডটি একটি লোকাল সার্ভার চালু করে এবং স্বয়ংক্রিয়ভাবে আপনার অ্যাপটি ব্রাউজারে খুলে দেয়। ### প্রস্তুতি আপনার কম্পিউটারে `bank` নামে একটি ফোল্ডার তৈরি করুন এবং এর ভিতরে `index.html` নামে একটি ফাইল তৈরি করুন। আমরা এই HTML [বয়লারপ্লেট](https://en.wikipedia.org/wiki/Boilerplate_code) থেকে শুরু করব: ```html Bank App ``` **এই বয়লারপ্লেট যা প্রদান করে:** - **প্রতিষ্ঠা করে** HTML5 ডকুমেন্ট স্ট্রাকচার সঠিক DOCTYPE ঘোষণা সহ - **কনফিগার করে** UTF-8 চরিত্র এনকোডিং আন্তর্জাতিক টেক্সট সমর্থনের জন্য - **সক্ষম করে** মোবাইল সামঞ্জস্যের জন্য ভিউপোর্ট মেটা ট্যাগ সহ রেসপন্সিভ ডিজাইন - **সেট করে** একটি বর্ণনামূলক শিরোনাম যা ব্রাউজার ট্যাবে প্রদর্শিত হয় - **তৈরি করে** একটি পরিষ্কার বডি সেকশন যেখানে আমরা আমাদের অ্যাপ্লিকেশন তৈরি করব > 📁 **প্রজেক্ট স্ট্রাকচার প্রিভিউ** > > **এই পাঠের শেষে, আপনার প্রজেক্টে থাকবে:** > ``` > bank/ > ├── index.html > ├── app.js > └── style.css > ``` > > **ফাইলের দায়িত্ব:** > - **index.html**: সমস্ত টেমপ্লেট ধারণ করে এবং অ্যাপের কাঠামো প্রদান করে > - **app.js**: রাউটিং, নেভিগেশন এবং টেমপ্লেট ম্যানেজমেন্ট পরিচালনা করে > - **টেমপ্লেট**: লগইন, ড্যাশবোর্ড এবং অন্যান্য স্ক্রিনের জন্য UI সংজ্ঞায়িত করে --- ## HTML টেমপ্লেট টেমপ্লেট ওয়েব ডেভেলপমেন্টে একটি মৌলিক সমস্যার সমাধান করে। যখন গুটেনবার্গ ১৪৪০-এর দশকে মুভেবল টাইপ প্রিন্টিং আবিষ্কার করেছিলেন, তখন তিনি বুঝতে পেরেছিলেন যে পুরো পৃষ্ঠা খোদাই করার পরিবর্তে, তিনি পুনরায় ব্যবহারযোগ্য অক্ষরের ব্লক তৈরি করতে পারেন এবং প্রয়োজন অনুযায়ী সেগুলি সাজাতে পারেন। HTML টেমপ্লেট একই নীতিতে কাজ করে – প্রতিটি স্ক্রিনের জন্য আলাদা HTML ফাইল তৈরি করার পরিবর্তে, আপনি পুনরায় ব্যবহারযোগ্য কাঠামো সংজ্ঞায়িত করেন যা প্রয়োজন হলে প্রদর্শিত হতে পারে। টেমপ্লেটকে আপনার অ্যাপের বিভিন্ন অংশের জন্য ব্লুপ্রিন্ট হিসাবে ভাবুন। ঠিক যেমন একজন স্থপতি একটি ব্লুপ্রিন্ট তৈরি করেন এবং এটি একাধিকবার ব্যবহার করেন একই রুম পুনরায় আঁকার পরিবর্তে, আমরা একবার টেমপ্লেট তৈরি করি এবং প্রয়োজন হলে এটি ব্যবহার করি। ব্রাউজার এই টেমপ্লেটগুলি লুকানো রাখে যতক্ষণ না জাভাস্ক্রিপ্ট সেগুলি সক্রিয় করে। যদি আপনি একটি ওয়েব পৃষ্ঠার জন্য একাধিক স্ক্রিন তৈরি করতে চান, একটি সমাধান হতে পারে আপনি যে প্রতিটি স্ক্রিন প্রদর্শন করতে চান তার জন্য একটি HTML ফাইল তৈরি করা। তবে, এই সমাধান কিছু অসুবিধা নিয়ে আসে: - স্ক্রিন পরিবর্তন করার সময় আপনাকে পুরো HTML পুনরায় লোড করতে হবে, যা ধীর হতে পারে। - বিভিন্ন স্ক্রিনের মধ্যে ডেটা শেয়ার করা কঠিন। আরেকটি পদ্ধতি হল শুধুমাত্র একটি HTML ফাইল থাকা এবং `