# بینکنگ ایپ بنائیں حصہ 2: لاگ ان اور رجسٹریشن فارم بنائیں ```mermaid journey title Your Form Development Journey section HTML Foundation Understand form elements: 3: Student Learn input types: 4: Student Master accessibility: 4: Student section JavaScript Integration Handle form submission: 4: Student Implement AJAX communication: 5: Student Process server responses: 5: Student section Validation Systems Create multi-layer validation: 5: Student Enhance user experience: 5: Student Ensure data integrity: 5: Student ``` ## لیکچر سے پہلے کا کوئز [لیکچر سے پہلے کا کوئز](https://ff-quizzes.netlify.app/web/quiz/43) کبھی آن لائن فارم بھرنے کے بعد ای میل فارمیٹ کی غلطی کا سامنا کیا؟ یا سبمٹ پر کلک کرنے کے بعد تمام معلومات کھو دی؟ ہم سب نے ان پریشان کن تجربات کا سامنا کیا ہے۔ فارمز آپ کے صارفین اور آپ کی ایپلیکیشن کی فعالیت کے درمیان پل کا کام کرتے ہیں۔ جیسے ہوائی جہازوں کو محفوظ طریقے سے منزل تک پہنچانے کے لیے ایئر ٹریفک کنٹرولرز کے محتاط پروٹوکول ہوتے ہیں، ویسے ہی اچھے ڈیزائن کردہ فارمز واضح فیڈبیک فراہم کرتے ہیں اور مہنگی غلطیوں کو روکتے ہیں۔ خراب فارمز، دوسری طرف، صارفین کو جلدی دور کر سکتے ہیں۔ اس سبق میں، ہم آپ کی جامد بینکنگ ایپ کو ایک انٹرایکٹو ایپلیکیشن میں تبدیل کریں گے۔ آپ سیکھیں گے کہ صارف کے ان پٹ کی تصدیق کرنے، سرورز کے ساتھ بات چیت کرنے، اور مددگار فیڈبیک فراہم کرنے والے فارمز کیسے بنائیں۔ اسے ایسے سمجھیں جیسے آپ ایپلیکیشن کی خصوصیات کو نیویگیٹ کرنے کے لیے کنٹرول انٹرفیس بنا رہے ہیں۔ آخر میں، آپ کے پاس ایک مکمل لاگ ان اور رجسٹریشن سسٹم ہوگا جو صارفین کو مایوسی کے بجائے کامیابی کی طرف رہنمائی کرے گا۔ ```mermaid mindmap root((Form Development)) HTML Foundation Semantic Elements Input Types Accessibility Label Association User Experience Validation Feedback Error Prevention Loading States Success Messaging JavaScript Integration Event Handling AJAX Communication Data Processing Error Management Validation Layers HTML5 Validation Client-side Logic Server-side Security Progressive Enhancement Modern Patterns Fetch API Async/Await Form Data API Promise Handling ``` ## ضروریات فارمز بنانے سے پہلے، آئیے یقینی بنائیں کہ آپ نے سب کچھ صحیح طریقے سے سیٹ اپ کیا ہے۔ یہ سبق وہیں سے شروع ہوتا ہے جہاں ہم نے پچھلے سبق میں چھوڑا تھا، لہذا اگر آپ نے آگے بڑھنے کی کوشش کی ہے، تو آپ کو پہلے بنیادی چیزیں کام کرنے کے لیے واپس جانا پڑ سکتا ہے۔ ### مطلوبہ سیٹ اپ | جزو | حیثیت | تفصیل | |------|-------|--------| | [HTML ٹیمپلیٹس](../1-template-route/README.md) | ✅ ضروری | آپ کی بنیادی بینکنگ ایپ کی ساخت | | [Node.js](https://nodejs.org) | ✅ ضروری | سرور کے لیے جاوا اسکرپٹ رن ٹائم | | [بینک API سرور](../api/README.md) | ✅ ضروری | ڈیٹا اسٹوریج کے لیے بیک اینڈ سروس | > 💡 **ترقیاتی ٹپ**: آپ دو الگ الگ سرورز کو ایک ساتھ چلائیں گے – ایک آپ کی فرنٹ اینڈ بینکنگ ایپ کے لیے اور دوسرا بیک اینڈ API کے لیے۔ یہ سیٹ اپ حقیقی دنیا کی ترقی کی عکاسی کرتا ہے جہاں فرنٹ اینڈ اور بیک اینڈ سروسز آزادانہ طور پر کام کرتی ہیں۔ ### سرور کنفیگریشن **آپ کے ترقیاتی ماحول میں شامل ہوگا:** - **فرنٹ اینڈ سرور**: آپ کی بینکنگ ایپ کو فراہم کرتا ہے (عام طور پر پورٹ `3000`) - **بیک اینڈ API سرور**: ڈیٹا اسٹوریج اور بازیافت کو ہینڈل کرتا ہے (پورٹ `5000`) - **دونوں سرورز** بغیر کسی تنازع کے ایک ساتھ چل سکتے ہیں **اپنے API کنکشن کی جانچ:** ```bash curl http://localhost:5000/api # Expected response: "Bank API v1.0.0" ``` **اگر آپ API ورژن کا جواب دیکھتے ہیں، تو آپ آگے بڑھنے کے لیے تیار ہیں!** --- ## HTML فارمز اور کنٹرولز کو سمجھنا HTML فارمز وہ طریقہ ہیں جس کے ذریعے صارفین آپ کی ویب ایپلیکیشن کے ساتھ بات چیت کرتے ہیں۔ انہیں 19ویں صدی میں دور دراز جگہوں کو جوڑنے والے ٹیلی گراف سسٹم کے طور پر سوچیں – یہ صارف کے ارادے اور ایپلیکیشن کے جواب کے درمیان مواصلاتی پروٹوکول ہیں۔ جب سوچ سمجھ کر ڈیزائن کیا جائے، تو یہ غلطیوں کو پکڑتے ہیں، ان پٹ فارمیٹنگ کی رہنمائی کرتے ہیں، اور مددگار تجاویز فراہم کرتے ہیں۔ جدید فارمز بنیادی ٹیکسٹ ان پٹس سے نمایاں طور پر زیادہ نفیس ہیں۔ HTML5 نے خصوصی ان پٹ اقسام متعارف کروائیں جو ای میل کی تصدیق، نمبر فارمیٹنگ، اور تاریخ کے انتخاب کو خود بخود ہینڈل کرتی ہیں۔ یہ بہتریاں رسائی اور موبائل صارف کے تجربات دونوں کے لیے فائدہ مند ہیں۔ ### ضروری فارم عناصر **ہر فارم کو درکار بلڈنگ بلاکس:** ```html
``` **یہ کوڈ کیا کرتا ہے:** - **ایک فارم کنٹینر** منفرد شناخت کنندہ کے ساتھ بناتا ہے - **ڈیٹا جمع کرانے کے لیے HTTP طریقہ** کی وضاحت کرتا ہے - **لیبلز کو ان پٹس کے ساتھ** رسائی کے لیے منسلک کرتا ہے - **فارم کو پروسیس کرنے کے لیے سبمٹ بٹن** کی وضاحت کرتا ہے ### جدید ان پٹ اقسام اور خصوصیات | ان پٹ قسم | مقصد | مثال استعمال | |-----------|-------|---------------| | `text` | عمومی ٹیکسٹ ان پٹ | `` | | `email` | ای میل کی تصدیق | `` | | `password` | چھپے ہوئے ٹیکسٹ انٹری | `` | | `number` | عددی ان پٹ | `` | | `tel` | فون نمبر | `` | > 💡 **جدید HTML5 فائدہ**: مخصوص ان پٹ اقسام کا استعمال خودکار تصدیق، مناسب موبائل کی بورڈز، اور اضافی جاوا اسکرپٹ کے بغیر بہتر رسائی کی حمایت فراہم کرتا ہے! ### بٹن کی اقسام اور رویہ ```html ``` **ہر بٹن کی قسم کیا کرتی ہے:** - **سبمٹ بٹن**: فارم جمع کرانے کو متحرک کرتا ہے اور ڈیٹا کو مخصوص اینڈ پوائنٹ پر بھیجتا ہے - **ری سیٹ بٹن**: تمام فارم فیلڈز کو ان کی ابتدائی حالت میں بحال کرتا ہے - **عام بٹن**: کوئی ڈیفالٹ رویہ فراہم نہیں کرتا، فعالیت کے لیے حسب ضرورت جاوا اسکرپٹ کی ضرورت ہوتی ہے > ⚠️ **اہم نوٹ**: `` عنصر خود بند ہونے والا ہے اور بند کرنے والے ٹیگ کی ضرورت نہیں ہے۔ جدید بہترین عمل `` کو بغیر سلیش کے لکھنا ہے۔ ### اپنا لاگ ان فارم بنانا اب ہم ایک عملی لاگ ان فارم بناتے ہیں جو جدید HTML فارم کے طریقوں کو ظاہر کرتا ہے۔ ہم بنیادی ڈھانچے سے شروع کریں گے اور اسے رسائی کی خصوصیات اور تصدیق کے ساتھ بتدریج بہتر کریں گے۔ ```html