# बँकिंग अ‍ॅप तयार करा भाग 1: HTML टेम्पलेट्स आणि वेब अ‍ॅपमधील रूट्स ```mermaid journey title Your Banking App Development Journey section SPA Fundamentals Understand single-page apps: 3: Student Learn template concepts: 4: Student Master DOM manipulation: 4: Student section Routing Systems Implement client-side routing: 4: Student Handle browser history: 5: Student Create navigation systems: 5: Student section Professional Patterns Build modular architecture: 5: Student Apply best practices: 5: Student Create user experiences: 5: Student ``` जेव्हा अपोलो 11 च्या मार्गदर्शन संगणकाने 1969 मध्ये चंद्रावर नेव्हिगेशन केले, तेव्हा त्याला संपूर्ण प्रणाली पुन्हा सुरू न करता वेगवेगळ्या प्रोग्राम्समध्ये स्विच करावे लागले. आधुनिक वेब अ‍ॅप्सही असंच काम करतात – ते तुम्हाला जे दिसतं ते बदलतात, परंतु सर्वकाही पुन्हा लोड करत नाहीत. यामुळे वापरकर्त्यांना अपेक्षित असलेला गुळगुळीत, प्रतिसादात्मक अनुभव निर्माण होतो. पारंपरिक वेबसाइट्स जिथे प्रत्येक संवादासाठी संपूर्ण पृष्ठ पुन्हा लोड करतात, तिथे आधुनिक वेब अ‍ॅप्स फक्त बदलण्याची गरज असलेल्या भागांचे अद्यतन करतात. हे दृष्टिकोन, जसे मिशन कंट्रोल सतत संवाद ठेवत वेगवेगळ्या डिस्प्ले दरम्यान स्विच करते, तसाच गुळगुळीत अनुभव निर्माण करतो. यामुळे फरक इतका नाट्यमय का वाटतो: | पारंपरिक मल्टी-पेज अ‍ॅप्स | आधुनिक सिंगल-पेज अ‍ॅप्स | |----------------------------|-------------------------| | **नेव्हिगेशन** | प्रत्येक स्क्रीनसाठी संपूर्ण पृष्ठ पुन्हा लोड | त्वरित सामग्री स्विचिंग | | **कामगिरी** | संपूर्ण HTML डाउनलोडमुळे धीमे | अंशतः अद्यतनांमुळे जलद | | **वापरकर्ता अनुभव** | पृष्ठ फ्लॅशेस त्रासदायक | गुळगुळीत, अ‍ॅपसारखे संक्रमण | | **डेटा शेअरिंग** | पृष्ठांमध्ये कठीण | सोपे स्टेट मॅनेजमेंट | | **विकसन** | अनेक HTML फायलींचे व्यवस्थापन | डायनॅमिक टेम्पलेट्ससह एक HTML | **उत्क्रांती समजून घेणे:** - **पारंपरिक अ‍ॅप्स** प्रत्येक नेव्हिगेशन क्रियेसाठी सर्व्हर विनंत्या करतात - **आधुनिक SPAs** एकदाच लोड होतात आणि जावास्क्रिप्ट वापरून सामग्री गतिशीलपणे अद्यतनित करतात - **वापरकर्त्यांच्या अपेक्षा** आता त्वरित, अखंड संवादांना प्राधान्य देतात - **कामगिरी फायदे** बँडविड्थ कमी आणि जलद प्रतिसाद यांचा समावेश करतात या धड्यात, आम्ही अनेक स्क्रीन असलेला बँकिंग अ‍ॅप तयार करू जो अखंडपणे एकत्रित होतो. जसे वैज्ञानिक वेगवेगळ्या प्रयोगांसाठी पुन्हा कॉन्फिगर करता येणारी मॉड्युलर उपकरणे वापरतात, तसेच आम्ही HTML टेम्पलेट्स वापरू जे पुनर्वापरयोग्य घटक म्हणून आवश्यकतेनुसार प्रदर्शित केले जाऊ शकतात. तुम्ही HTML टेम्पलेट्स (वेगवेगळ्या स्क्रीनसाठी पुनर्वापरयोग्य ब्लूप्रिंट्स), जावास्क्रिप्ट रूटिंग (स्क्रीन दरम्यान स्विच करणारी प्रणाली) आणि ब्राउझरचा इतिहास API (जो बॅक बटण अपेक्षेप्रमाणे कार्यरत ठेवतो) यासह काम कराल. React, Vue आणि Angular सारख्या फ्रेमवर्कद्वारे वापरल्या जाणाऱ्या मूलभूत तंत्रांचा वापर येथे केला जातो. शेवटी, तुम्हाला व्यावसायिक सिंगल-पेज अ‍ॅप्लिकेशन तत्त्वांचे प्रदर्शन करणारा कार्यरत बँकिंग अ‍ॅप मिळेल. ```mermaid mindmap root((Single-Page Applications)) Architecture Template System Client-side Routing State Management Event Handling Templates Reusable Components Dynamic Content DOM Manipulation Content Switching Routing URL Management History API Navigation Logic Browser Integration User Experience Fast Navigation Smooth Transitions Consistent State Modern Interactions Performance Reduced Server Requests Faster Page Transitions Efficient Resource Usage Better Responsiveness ``` ## प्री-लेक्चर क्विझ [प्री-लेक्चर क्विझ](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 टेम्पलेट्स टेम्पलेट्स वेब विकासातील मूलभूत समस्या सोडवतात. जेव्हा गुटेनबर्गने 1440 च्या दशकात हलणाऱ्या टाइप प्रिंटिंगचा शोध लावला, तेव्हा त्याला समजले की संपूर्ण पृष्ठे कोरण्याऐवजी, तो पुनर्वापरयोग्य अक्षर ब्लॉक्स तयार करू शकतो आणि आवश्यकतेनुसार त्यांची व्यवस्था करू शकतो. HTML टेम्पलेट्स याच तत्त्वावर काम करतात – प्रत्येक स्क्रीनसाठी स्वतंत्र HTML फाइल्स तयार करण्याऐवजी, तुम्ही पुनर्वापरयोग्य संरचना परिभाषित करता ज्या आवश्यकतेनुसार प्रदर्शित केल्या जाऊ शकतात. ```mermaid flowchart TD A["📋 Template Definition"] --> B["💬 Hidden in DOM"] B --> C["🔍 JavaScript Finds Template"] C --> D["📋 Clone Template Content"] D --> E["🔗 Attach to Visible DOM"] E --> F["👁️ User Sees Content"] G["Login Template"] --> A H["Dashboard Template"] --> A I["Future Templates"] --> A style A fill:#e3f2fd style D fill:#e8f5e8 style F fill:#fff3e0 style B fill:#f3e5f5 ``` टेम्पलेट्सला तुमच्या अ‍ॅपच्या वेगवेगळ्या भागांसाठी ब्लूप्रिंट्स म्हणून विचार करा. जसे एक आर्किटेक्ट एक ब्लूप्रिंट तयार करतो आणि त्याचा अनेक वेळा वापर करतो, त्याऐवजी समान खोल्या पुन्हा काढतो, तसेच आम्ही टेम्पलेट्स एकदाच तयार करतो आणि आवश्यकतेनुसार त्यांचा वापर करतो. ब्राउझर हे टेम्पलेट्स लपवून ठेवतो जोपर्यंत जावास्क्रिप्ट त्यांना सक्रिय करत नाही. जर तुम्हाला वेब पृष्ठासाठी अनेक स्क्रीन तयार करायच्या असतील, तर एक उपाय म्हणजे तुम्हाला प्रत्येक स्क्रीनसाठी एक HTML फाइल तयार करावी लागेल. परंतु, या उपायामध्ये काही अडचणी आहेत: - स्क्रीन स्विच करताना तुम्हाला संपूर्ण HTML पुन्हा लोड करावे लागते, जे धीमे होऊ शकते. - वेगवेगळ्या स्क्रीनमध्ये डेटा शेअर करणे कठीण आहे. दुसरा दृष्टिकोन म्हणजे फक्त एक HTML फाइल असणे आणि `