# బ్రౌజర్ ఎక్స్టెన్షన్ ప్రాజెక్ట్ భాగం 1: బ్రౌజర్ల గురించి అంతా ```mermaid journey title మీ బ్రౌజర్ ఎక్స్టెన్షన్ అభివృద్ధి యాత్ర section Foundation బ్రౌజర్లను అర్థం చేసుకోండి: 3: Student ఎక్స్టెన్షన్ రకాలను నేర్చుకోండి: 4: Student అభివృద్ధిని సెటప్ చేయండి: 4: Student section Development ఇంటర్ఫేస్ నిర్మించండి: 4: Student కార్యాచరణను జోడించండి: 5: Student డేటాను నిర్వహించండి: 5: Student section Integration బ్రౌజర్లో పరీక్షించండి: 5: Student ఇబ్బందులను డీబగ్ చేయండి: 4: Student అనుభవాన్ని మెరుగు పరచండి: 5: Student ```  > స్కెచ్నోట్ ద్వారా [Wassim Chegham](https://dev.to/wassimchegham/ever-wondered-what-happens-when-you-type-in-a-url-in-an-address-bar-in-a-browser-3dob) ## ప్రీ-లెక్చర్ క్విజ్ [ప్రీ-లెక్చర్ క్విజ్](https://ff-quizzes.netlify.app/web/quiz/23) ### పరిచయం బ్రౌజర్ ఎక్స్టెన్షన్లు మీ వెబ్ బ్రౌజింగ్ అనుభవాన్ని మెరుగుపరచే మినీ-యాప్స్. టిమ్ బర్నర్స్-లి యొక్క ఇంటరాక్టివ్ వెబ్ యొక్క అసలు దృష్టిని పోలి, ఎక్స్టెన్షన్లు బ్రౌజర్ సామర్థ్యాలను సాధారణ డాక్యుమెంట్ వీక్షణకి మించిఉంచుతాయి. మీ ఖాతాలను సురక్షితం చేసుకునే పాస్వర్డ్ మేనేజర్ల నుండి డిజైనర్లకు తగిన రంగులు ఎంచుకోడానికి సహాయపడే కలర్ పికర్ల వరకు, ఎక్స్టెన్షన్లు ప్రతి రోజూ ఎదురయ్యే బ్రౌజింగ్ సమస్యలను పరిష్కరిస్తాయి. మీరెలాగైనా మీ మొదటి ఎక్స్టెన్షన్ను నిర్మించేముందు, బ్రౌజర్లు ఎలా పని చేస్తాయో అర్థం చేసుకుందాం. అలెగ్జాండర్ గ్రాహం బెల్ల్ ఫోన్ ఆవిష్కరణకు ముందు సౌండ్ ట్రాన్స్మిషన్ అర్థం చేసుకోవలసినట్టు, బ్రౌజర్ ప్రాథమిక అంశాల జ్ఞానం మీ ఎక్స్టెన్షన్లు బ్రౌజర్ సిస్టమ్స్తో సజావుగా ఇంటిగ్రేట్ అయ్యేందుకు సహాయపడుతుంది. ఈ పాఠం చివరికి, మీరు బ్రౌజర్ నిర్మాణాన్ని అర్థం చేసుకుంటారు మరియు మీ మొదటి ఎక్స్టెన్షన్ నిర్మాణాన్ని ప్రారంభిస్తారు. ```mermaid mindmap root((బ్రౌజర్ ఆర్కిటెక్చర్)) Core Components Rendering Engine JavaScript Engine Network Stack Storage APIs User Interface చిరునామా బార్ ట్యాబ్ నిర్వహణ బుక్మార్క్లు ఎక్స్టెన్షన్ చిహ్నాలు Extension System మానిఫెస్ట్ ఫైళ్లు కంటెంట్ స్క్రిప్టులు బ్యాక్గ్రౌండ్ పేజీలు పాప్-అప్ విండోలు Security Model సామ-Origin పాలసీ అనుమతులు API కంటెంట్ సెక్యూరిటీ ఐసోలేటెడ్ వరల్డ్స్ Development Tools DevTools సమగ్రం డీబగ్ కన్సోల్ పనితీరు మానిటర్ ఎక్స్టెన్షన్ ఇన్స్పెక్టర్ ``` ## వెబ్ బ్రౌజర్లను అర్థం చేసుకోవడం వెబ్ బ్రౌజర్ అనేది బేసిక్గా ఒక కాంప్లెక్సు డాక్యుమెంట్ ఇంటర్ప్రెటర్. మీరు అడ్రస్ బార్ లో "google.com" టైప్ చేసినప్పుడు, బ్రౌజర్ ప్రపంచవ్యాప్త సర్వర్ల నుండి కంటెంట్ను అభ్యర్థిస్తూ, ఆ కోడ్ను పార్స్ చేసి, మీరు చూడగల ఇంటరాక్టివ్ వెబ్ పేజీలుగా రీండ్ర్ చేయడంలో సంక్లిష్ట కార్యకలాపాలు చేస్తుంది. ఈ ప్రక్రియ మొదటి వెబ్ బ్రౌజర్, వర్డ్ వైడ్ వెబ్ను 1990లో టిమ్ బర్నర్స్-లీ నుండి రూపొందించిన విధానాన్ని ప్రతిబింబిస్తుంది, అది హైపర్లింక్ డాక్యుమెంట్లను అందరికి అందుబాటులోకి తీసుకురావడానికి రూపొందించబడింది. ✅ **చిన్న చరిత్ర**: మొదటి బ్రౌజర్ 'WorldWideWeb' అని పిలవబడింది మరియు ఇది సర్ టిమోథీ బర్నర్స్-లీ 1990లో సృష్టించారు.  > కొన్ని ప్రారంభ బ్రౌజర్లు, [Karen McGrane](https://www.slideshare.net/KMcGrane/week-4-ixd-history-personal-computing) ద్వారా ### బ్రౌజర్లు వెబ్ కంటెంట్ను ఎలా ప్రాసెస్ చేస్తాయి URL Toll నిర్ణీత వెబ్పేజీ చూపించడానికి మనం దిగిరాణించి కొన్ని సమన్వయ పద్ధతులను కొన్ని సెకన్లలో చేస్తుంది: ```mermaid sequenceDiagram participant User participant Browser participant Extension participant DNS participant Server User->>Browser: URL టైపు చేసి ఎంటర్ నొక్కండి Browser->>Extension: beforeRequest ఈవెంట్ను ట్రిగ్గర్ చేయండి Extension->>Extension: URL లో మార్పు అవసరమో చూడండి Browser->>DNS: సర్వర్ IP చిరునామాను చూడండి DNS->>Browser: IP చిరునామా రిటర్న్ చేయండి Browser->>Server: వెబ్ పేజీ కంటెంట్ కోరిక చేయండి Server->>Browser: HTML, CSS, మరియు JavaScript పంపండి Browser->>Extension: beforeResponse ఈవెంట్ను ట్రిగ్గర్ చేయండి Extension->>Extension: అవసరమైతే కంటెంట్ మార్చండి Browser->>User: పూర్తి వెబ్ పేజీని ప్రదర్శించండి Extension->>User: ఎక్స్టెన్షన్ UI అప్డేట్లను చూపండి ``` **ఈ ప్రక్రియ ఏమి చేస్తుందో ఇది:** - **DNS లుకప్ ద్వారా** మానవ-readable URLని సర్వర్ IP అడ్రస్కి అనువదిస్తుంది - **HTTP లేదా HTTPS ప్రోటోకాల్ ఉపయోగించి** వెబ్ సర్వర్తో సురక్షిత కనెక్షన్ ఏర్పాటు చేస్తుంది - **సర్వర్ నుండి** నిర్దిష్ట వెబ్ పేజీ కంటెంట్ కోసం అభ్యర్థన చేస్తుంది - **సర్వర్ నుండి** HTML మార్కప్, CSS స్టైలింగ్, మరియు JavaScript కోడ్ను అందుకుంటుంది - **అన్ని కంటెంట్ను** మీరు చూస్తున్న ఇంటరాక్టివ్ వెబ్ పేజీగా రీండ్ర్ చేస్తుంది ### బ్రౌజర్ ముఖ్య ఫీచర్లు ఆధునిక బ్రౌజర్లు ఎక్స్టెన్షన్ డెవలపర్లు ఉపయోగించగల అనేక ఫీచర్లను అందిస్తాయి: | ఫీచర్ | ప్రయోజనం | ఎక్స్టెన్షన్ అవకాశాలు | |---------|---------|------------------------| | **రీండ్రరింగ్ ఇంజన్** | HTML, CSS, JavaScript ప్రదర్శిస్తుంది | కంటెంట్ మార్పిడి, స్టైలింగ్ ఇంజెక్షన్ | | **JavaScript ఇంజన్** | JavaScript కోడ్ 실행్ చేస్తుంది | స్వంత స్క్రిప్టులు, API ఇంటరాక్షన్స్ | | **లోకల్ స్టోరేజ్** | స్థానికంగా డేటా సేవ్ చేస్తుంది | యూజర్ ప్రిఫరెన్సులు, క్యాష్ డేటా | | **నెట్వర్క్ స్టాక్** | వెబ్ అభ్యర్థనలు నిర్వహిస్తుంది | అభ్యర్థన మానిటరింగ్, డేటా విశ్లేషణ | | **సెక్యూరిటీ మోడల్** | దుష్ట కంటెంట్ నుండి యూజర్లను రక్షిస్తుంది | కంటెంట్ ఫిల్టరింగ్, సెక్యూరిటీ మెరుగుదలలు | **ఈ ఫీచర్లను అర్థం చేసుకోవడం మీకు:** - మీ ఎక్స్టెన్షన్ అక్కడ ఎక్కువ విలువ చేర్చగలదో గుర్తించే అవకాశం - మీ ఎక్స్టెన్షన్ ఫంక్షనాలిటీకి సరైన బ్రౌజర్ APIలను ఎంచుకునే అవకాశం - బ్రౌజర్ వ్యవస్థలతో సమర్థవంతంగా పని చేసే ఎక్స్టెన్షన్లను రూపొందించే అవకాశం - మీ ఎక్స్టెన్షన్ బ్రౌజర్ సెక్యూరిటీ ఉత్తమ విధానాలను అనుసరిస్తుందనే నిర్ధారణ ### క్రాస్-బ్రౌజర్ డెవలప్మెంట్ పరిగణనలు విభిన్న బ్రౌజర్లు సాందర్బాల అమలులో తక్కువ తేడాలతో ఉంటాయి, విధానాలు కొంత భిన్నంగా ఉంటాయి, అదే విధంగా వేర్వేరు ప్రోగ్రామింగ్ భాషలు ఒకే అల్గోరిథమ్ని వేరుగా నిర్వహించేలా. క్రోమ్, ఫైర్ఫాక్స్, మరియు సఫారి ప్రతి ఒక్కటి డెవలపర్లకు పరిగణనలోకి తీసుకోవాల్సిన ప్రత్యేక లక్షణాలు కలిగి ఉంటాయి. > 💡 **ప్రొ టిప్**: వివిధ బ్రౌజర్లలో ఏ వెబ్ టెక్నాలజీలు మద్దతు పొందుతున్నాయో తెలుసుకోవడానికి [caniuse.com](https://www.caniuse.com) ను ఉపయోగించండి. ఇది మీ ఎక్స్టెన్షన్ ఫీచర్స్ ప్లానింగ్లో అమూల్యంగా ఉంటుంది! **ఎక్స్టెన్షన్ డెవలప్మెంట్ కీలక పరిగణనలు:** - క్రోమ్, ఫైర్ఫాక్స్, ఎడ్జ్ బ్రౌజర్లపై మీ ఎక్స్టెన్షన్ను పరీక్షించండి - వేరే బ్రౌజర్ ఎక్స్టెన్షన్ APIలు మరియు మానిఫెస్ట్ ఫార్మాట్లు అనుసరించండి - ప్రదర్శన లక్షణాలు, పరిమితులు వేరుగా ఉంటాయనీ చూసుకోండి - అందుబాటులో లేకపోవచ్చు అనుకున్న బ్రౌజర్-స్పెసిఫిక్ ఫీచర్లకు ప్రత్యామ్నాయాలు అందించండి ✅ **విశ్లేషణ సూచన**: మీరు ఏ బ్రౌజర్లను ఎక్కువగా వినియోగిస్తున్నారు అనేది తెలుసుకోవడానికి, వెబ్ అభివృద్ధి ప్రాజెక్ట్లలో విశ్లేషణ ప్యాకేజీలు ఇన్స్టాల్ చేయండి. ఈ డేటా మీకు మొదటి ప్రాధాన్యంగా ఏ బ్రౌజర్లను మద్దతు ఇవ్వాలో నిర్ణయించడంలో సహాయపడుతుంది. ## బ్రౌజర్ ఎక్స్టెన్షన్స్ అర్థం చేసుకోవడం బ్రౌజర్ ఎక్స్టెన్షన్లు సాధారణ వెబ్ బ్రౌజింగ్ సమస్యలను బ్రౌజర్ ఇంటర్ఫేస్కి నేరుగా ఫంక్షనాలిటీ జత చేయడం ద్వారా పరిష్కరిస్తాయి. ప్రత్యేక యాప్స్ లేదా సంక్లిష్ట వర్క్ఫ్లోలను అవసరం లేకుండా, ఎక్స్టెన్షన్లు టూల్స్, ఫీచర్స్కె తక్షణ యాక్సెస్ ఇస్తాయి. ఈ భావన డగ్లస్ ఎంగెల్బార్ట్ వంటి ఐటి పయనికులు మానవ సామర్థ్యాలను సాంకేతికతతో పెంచే విధానాన్ని ప్రతిబింబిస్తుంది - ఎక్స్టెన్షన్లు మీ బ్రౌజర్ యొక్క ప్రాథమిక సామర్థ్యాలను పెంచుతాయి. ```mermaid quadrantChart title బ్రౌజర్ విస్తరణ వర్గాలు x-axis సులభం --> క్లిష్టం y-axis వ్యక్తిగత ఉపయోగం --> వృత్తిపరమైన工具లు quadrant-1 డెవలపర్ టూల్స్ quadrant-2 ఎంటర్ప్రైజ్ సొల్యూషన్స్ quadrant-3 వ్యక్తిగత యుటిలిటీస్ quadrant-4 ఉత్పాదకత యాప్స్ Ad Blockers: [0.3, 0.2] Password Managers: [0.7, 0.3] Color Pickers: [0.4, 0.8] Code Formatters: [0.8, 0.9] Note Taking: [0.6, 0.5] Video Downloaders: [0.5, 0.2] Time Trackers: [0.7, 0.6] Screenshot Tools: [0.4, 0.4] ``` **ప్రసిద్ధ ఎక్స్టెన్షన్ వర్గాలు మరియు వాటి ప్రయోజనాలు:** - **ఉత్పాదకత టూల్స్**: టాస్క్ మేనేజర్లు, నోట్-తీయడం యాప్స్, టైమ్ ట్రాకర్లు, అవి మీను ఏర్పాటు చేసుకునేందుకు సహాయం చేస్తాయి - **సెక్యూరిటీ ఆప్టిమైజేషన్లు**: పాస్వర్డ్ మేనేజర్లు, యాడ్ బ్లిట్టర్స్, ప్రైవసీ టూల్స్, ఇవి మీ డేటాను రక్షిస్తాయి - **డెవలపర్ టూల్స్**: కోడ్ ఫార్మాటర్స్, కలర్ పికర్స్, మరియు డీబగింగ్ యుటిలిటీజిలు అభివృద్ధిని సులభం చేస్తాయి - **కంటెంట్ మెరుగుదల**: రీడింగ్ మోడ్లు, వీడియో డౌన్లోడర్లు, స్క్రీన్షాట్ టూల్స్, ఇవి మీ వెబ్ అనుభవాన్ని మెరుగుపరుస్తాయి ✅ **ప్రతిబింబ ప్రశ్న**: మీకు ఇష్టమైన బ్రౌజర్ ఎక్స్టెన్షన్లు ఏమిటి? అవి ఏ విధమైన పనులు చేస్తాయి, మరియు మీ బ్రౌజింగ్ అనుభవాన్ని ఎలా మెరుగు పరుస్తాయి? ### 🔄 **పాఠ శాస్త్రీయ చెక్-ఇన్** **బ్రౌజర్ నిర్మాణ అవగాహన**: ఎక్స్టెన్షన్ డెవలప్మెంట్కు ముందుగా, మీరు ఈ విషయాలను ఖచ్చితంగా అర్థం చేసుకోవాలి: - ✅ బ్రౌజర్లు వెబ్ అభ్యర్థనలు ఎలా ప్రాసెస్ చేసి కంటెంట్ని రీంద్ర్ చేస్తాయి వివరించగలగాలి - ✅ బ్రౌజర్ నిర్మాణపు ప్రాముఖ్య భాగాలను గుర్తించగలగాలి - ✅ ఎక్స్టెన్షన్లు బ్రౌజర్ ఫంక్షనాలిటీతో ఎలా ఇంటిగ్రేట్ అవుతాయో అర్థం చేసుకోవాలి - ✅ యూజర్లను రక్షించే సెక్యూరిటీ మోడల్ను గుర్తించగలగాలి **త్వరిత స్వీయ పరీక్ష**: URL టైప్ చేసి వెబ్ పేజీ చూసే దారిని మీరు ట్రేస్ చేయగలరా? 1. **DNS లుకప్** URLని IP అడ్రస్గా మారుస్తుంది 2. **HTTP అభ్యర్థన** సర్వర్ నుండి కంటెంట్ను తెస్తుంది 3. **పార్సింగ్** HTML, CSS, JavaScript ప్రాసెస్ చేస్తుంది 4. **రీండ్రింగ్** ఆఖరి వెబ్ పేజీని ప్రదర్శిస్తుంది 5. **ఎక్స్టెన్షన్లు** అనేక దశలలో కంటెంట్ను మార్చగలవు ## ఎక్స్టెన్షన్స్ ఇన్స్టాల్ చేయడం మరియు నిర్వహణ ఎక్స్టెన్షన్ ఇన్స్టాలేషన్ ప్రక్రియను అర్థం చేసుకోవడం, ప్రజలు మీరు తయారు చేసిన ఎక్స్టెన్షన్ను ఇన్స్టాల్ చేయేటప్పుడు ఉపయోగపడే అనుభవాన్ని ఊహించడానికి సహాయం చేస్తుంది. ఆధునిక బ్రౌజర్లలో ఈ ఇన్స్టాలేషన్ ప్రక్రియ సాధారణంగా ఉంటుంది, చర్యల రూపరేఖలో స్వల్ప మార్పులుంటాయి.  > **మరియు ముఖ్యమైనది**: మీ స్వంత ఎక్స్టెన్షన్లను పరీక్షించే సమయంలో డెవలపర్ మోడ్ ఆన్ చేసి, ఇతర స్టోర్స్ నుంచి ఎక్స్టెన్షన్స్ అనుమతి ఇవ్వడం మర్చిపోకండి. ### డెవలప్మెంట్ ఎక్స్టెన్షన్ ఇన్స్టాలేషన్ ప్రక్రియ మీరు మీ స్వంత ఎక్స్టెన్షన్లు అభివృద్ధి చేసి పరీక్షిస్తున్నప్పుడు, ఈ వర్క్ఫ్లో అనుసరించండి: ```mermaid flowchart TD A[కోడ్ వ్రాయండి] --> B[ఎక్స్టెన్షన్ నిర్మించండి] B --> C{మొదటే ఇన్స్టాల్ చేస్తున్నారా?} C -->|అవును| D[అన్ ప్యాక్ లోడ్ చేయండి] C -->|కాదు| E[ఎక్స్టెన్షన్ రీలోడ్ చేయండి] D --> F[ఫంక్షనాలిటీ పరీక్షించండి] E --> F F --> G{సరైన పనిచేస్తుందా?} G -->|కాదు| H[ఇష్యూలు డీబగ్ చేయండి] G -->|అవును| I[వినియోగదారులకు సిద్ధంగా ఉంది] H --> A I --> J[స్టోర్లో ప్రచురించండి] style A fill:#e1f5fe style F fill:#e8f5e8 style I fill:#f3e5f5 style J fill:#fff3e0 ``` ```bash # దశ 1: మీ విస్తరణను నిర్మించండి npm run build ``` **ఈ కమాండ్ ఏమి చేస్తుంది:** - **మీ సోర్స్ కోడ్ను బ్రౌజర్-సిద్ధమైన ఫైల్స్గా కాంపైల్ చేస్తుంది** - **JavaScript మాడ్యూల్స్ను ఆప్టిమైజ్డ్ ప్యాకెజిలుగా బండిల్ చేస్తుంది** - **ఫైనల్ ఎక్స్టెన్షన్ ఫైళ్ళను `/dist` ఫోల్డర్లో ఉత్పత్తి చేస్తుంది** - **ఇన్స్టాలేషన్, పరీక్షకు మీ ఎక్స్టెన్షన్ను సిద్ధం చేస్తుంది** **దశ 2: బ్రౌజర్ ఎక్స్టెన్షన్స్ పేజీకి వెళ్లండి** 1. మీ బ్రౌజర్ యొక్క ఎక్స్టెన్షన్ నిర్వహణ పేజీని తెరవండి 2. పై-కుడిమీతంగా ఉన్న "సెట్టింగ్స్ మరియు మరిన్ని" బటన్ (`...` ఐకాన్) నొక్కండి 3. డ్రాప్డౌన్ మెనూ నుండి "Extensions" ఎంచుకోండి **దశ 3: మీ ఎక్స్టెన్షన్ ను లోడ్ చేయండి** - **కొత్త ఇన్స్టాలేషన్ల కోసం**: `load unpacked` ఎంచుకొని మీ `/dist` ఫోల్డర్ ని సెలెక్ట్ చేయండి - **అప్డేట్ల కోసం**: ఇప్పటికే ఇన్స్టాల్ చేసిన ఎక్స్టెన్షన్ పక్కన `reload` క్లిక్ చేయండి - **పరీక్ష కోసం**: అదనపు డీబగ్గింగ్ ఫీచర్లు కోసం "Developer mode" ను ఆన్ చేయండి ### ప్రొడక్షన్ ఎక్స్టెన్షన్ ఇన్స్టాలేషన్ > ✅ **గమనిక**: ఈ డెవలప్మెంట్ సూచనలు మీరు స్వయంగా నిర్మించే ఎక్స్టెన్షన్ల కోసం మాత్రమే. ఆవిష్కృత ఎక్స్టెన్షన్లు ఇన్స్టాల్ చేసుకోవడానికి అధికారిక బ్రౌజర్ ఎక్స్టెన్షన్ స్టోర్లు ఎలా చేరుకోవాలో చూడండి, ఉదాహరణకు [Microsoft Edge Add-ons store](https://microsoftedge.microsoft.com/addons/Microsoft-Edge-Extensions-Home). **తేడా సమాధానం:** - **డెవలప్మెంట్ ఇన్స్టాలేషన్లు** అభివృద్ధి సమయంలో అపబ్లిష్ చేయని ఎక్స్టెన్షన్లను పరీక్షించటానికి - **స్టోర్ ఇన్స్టాలేషన్లు** ఆమోదించబడిన, ప్రచురించబడిన ఎక్స్టెన్షన్లను ఆటోమేటిక్ అప్డేట్స్తో అందిస్తాయి - **సైడ్ లోడింగ్** అధికారిక స్టోర్ల వెలుపల నుండి ఎక్స్టెన్షన్స్ ఇన్స్టాల్ చేయడానికి (డెవలపర్ మోడ్ అవసరం) ## మీ కార్బన్ ఫుట్ప్రింట్ ఎక్స్టెన్షన్ను నిర్మించడం మనం నిర్మించబోయే బ్రౌజర్ ఎక్స్టెన్షన్ మీ ప్రాంతంలో విద్యుత్ వినియోగం ద్వారా కార్బన్ ఉద్గారాలను ప్రదర్శిస్తుంది. ఈ ప్రాజెక్టు ఎక్స్టెన్షన్ అభివృద్ధి కీలక సూత్రాలను చూపిస్తూ, పర్యావరణ అవగాహన కోసం ప్రయోగాత్మక సాధనం తయారుచేస్తుంది. ఈ విధానము జాన్ డ్యూయి విద్యా సిద్ధాంతాల తర్వాత ఉపయోగపడే "చేసి నేర్చుకో" సూత్రాన్ని అనుసరిస్తుంది - సాంకేతిక నైపుణ్యాలను సమగ్రమైన నిజజీవిత అనువర్తనాలతో మిళితం చేస్తుంది. ### ప్రాజెక్టు అవసరాలు అభివృద్ధి మొదలుపెట్టే ముందు అవసరమైన వనరులు, డిపెండెన్సీస్ని సేకరించండి: **అవసరమైన API ప్రాప్యత:** - **[CO2 Signal API కీ](https://www.co2signal.com/)**: మీ ఇమెయిల్ అడ్రస్ ఇన్పుట్ చేసి ఉచిత API కీ పొందండి - **[ప్రాంత కోడ్](http://api.electricitymap.org/v3/zones)**: [Electricity Map](https://www.electricitymap.org/map) ఉపయోగించి మీ ప్రాంతం కోడ్ కనుగొనండి (ఉదాహరణకి, బోస్టన్ 'US-NEISO') **అభివృద్ధి సాధనాలు:** - **[Node.js మరియు NPM](https://www.npmjs.com)**: ప్రాజెక్ట్ డిపెండెన్సీలను ఇన్స్టాల్ చేసేందుకు ప్యాకేజీ మేనేజ్మెంట్ టూల్ - **[స్టార్టర్ కోడ్](../../../../5-browser-extension/start)**: అభివృద్ధి మొదలుపెట్టేందుకు `start` ఫోల్డర్ డౌన్లోడ్ చేసుకోండి ✅ **ఇంకా తెలుసుకోండి**: ప్యాకేజీ మేనేజ్మెంట్ నైపుణ్యాలను మెరుగుపరచేందుకు ఈ [విస్తృత Learn మోడ్యూల్](https://docs.microsoft.com/learn/modules/create-nodejs-project-dependencies/?WT.mc_id=academic-77807-sagibbon) ఉపయోగించండి ### ప్రాజెక్ట్ నిర్మాణాన్ని అర్థం చేసుకోవడం ప్రాజెక్ట్ నిర్మాణం అర్థం చేసుకోవడం అభివృద్ధి పనిని సమగ్రంగా నిర్వహించడానికి సహాయపడుతుంది. అలెగ్జాండ్రియా గ్రంథాలయంలా సుసంస్కృతమైన నిర్మాణం సులభమైన జ్ఞాన అందుబాటుకు సహాయపడేది, అలాగే చక్కటి నిర్మిత కోడ్బేస్ అభివృద్ధిని సమర్థవంతంగా చేస్తుంది: ``` project-root/ ├── dist/ # Built extension files │ ├── manifest.json # Extension configuration │ ├── index.html # User interface markup │ ├── background.js # Background script functionality │ └── main.js # Compiled JavaScript bundle ├── src/ # Source development files │ └── index.js # Your main JavaScript code ├── package.json # Project dependencies and scripts └── webpack.config.js # Build configuration ``` **ప్రతి ఫైల్ ఏమి చేస్తుందో వ్యాఖ్యం:** - **`manifest.json`**: ఎక్స్టెన్షన్ మేటాడేటా, అనుమతులు, ఎంట్రీ పాయింట్ల నిర్వచనం - **`index.html`**: యూజర్ ఇంటర్ఫేస్ సృష్టిస్తుంది, యూజర్లు ఎక్స్టెన్షన్ క్లిక్ చేసినప్పుడు ప్రదర్శించబడుతుంది - **`background.js`**: బ్యాక్గ్రౌండ్ టాస్కులు మరియు బ్రౌజర్ ఈవెంట్ లిసనర్స్ నిర్వహిస్తుంది - **`main.js`**: బిల్డ్ ప్రక్రియ తర్వాత తుద JavaScript బండిల్ - **`src/index.js`**: మీ ప్రధాన అభివృద్ధి కోడ్, ఇది `main.js`లోకి కాంపైల్ అవుతుంది > 💡 **సంఘటనా సూచన**: అభివృద్ధి సమయంలో API కీ మరియు ప్రాంత కోడ్ను ఒక సురక్షిత నోట్లో ఉంచండి. వాటిని పరీక్షించేప్పుడు ఉపయోగించాల్సి ఉంటుంది. ✅ **సెక్యూరిటీ సూచన**: API కీలు లేదా సున్నితమైన క్రెడెన్షియల్స్ను కోడ్ రిపాజిటరీలో పోస్ట్ చేయవద్దు. తరువాతి దశల్లో వాటిని ఎలా సురక్షితంగా నిర్వహించాలో చూపిస్తాము. ## ఎక్స్టెన్షన్ ఇంటర్ఫేస్ సృష్టించడం ఇప్పుడు యూజర్ ఇంటర్ఫేస్ భాగాలను నిర్మిద్దాం. ఎక్స్టెన్షన్ రెండు-స్క్రీన్ పద్ధతిని ఉపయోగిస్తుంది: ఒకటి ఆరంభ సెటప్ ఇంగితంగా, మరొకటి ఫలితాలు చూపించదుకు. ఈ విధానం కంప్యూటింగ్ తొలితియ్యల నుండి అనుసరించబడిన ప్రోగ్రెసివ్ డిస్క్లోజర్ సూత్రాన్ని అనుసరిస్తుంది - యూజర్లకు మించి సమాచారంతో మూర్చిపోకుండా, సమాచారం మరియు ఎంపికలను క్రమంగా ప్రదర్శించడం. ### ఎక్స్టెన్షన్ వీక్షణల అవలోకనం **సెట్టప్ వీక్షణ** - మొదటి సారి ఉపయోగించే యూజర్ సెటప్:  **ఫలితాల వీక్షణ** - కార్బన్ ఫుట్ప్రింట్ డేటాను చూపిస్తుంది:  ### సెటప్ ఫారం నిర్మించడం సెట్టప్ ఫారం ప్రారంభంలో యూజర్ కాన్ఫిగరేషన్ డేటాను సేకరిస్తుంది. సెటప్ పూర్తైన తర్వాత, ఈ సమాచారం బ్రౌజర్ స్టోరేజీలో నిల్వ చేస్తుంది. `/dist/index.html` ఫైల్లో ఈ ఫారం నిర్మాణం చేర్చండి: ```html
``` **ఈ ఫారం ఏమి చేస్తుంది:** - సరైన లేబుల్లు మరియు ఇన్పుట్ అసోసియేషన్తో సెంటిమాంటిక్ ఫారం నిర్మిస్తుంది - మెరుగైన యూజర్ అనుభవానికి బ్రౌజర్ ఆటోకంప్లీట్ ఫంక్షనాలిటీని సక్రియం చేస్తుంది - `required` అట్రిబ్యూట్ ద్వారా రెండూ ఫీల్డ్లు తప్పనిసరిగా నింపాల్సివుంటాయి - సులభంగా స్టైలింగ్ మరియు JavaScript లక్ష్యీకరణ కోసం క్లాస్ పేరు కలిగి ఇన్పుట్లు క్రమబద్ధీకరించబడ్డాయి - మొదటి సారి సెటప్ చేస్తున్న యూజర్లకు స్పష్టమైన సూచనలు ఇస్తుంది ### ఫలితాల ప్రదర్శన నిర్మించడం తర్వాత, కార్బన్ ఫుట్ప్రింట్ డేటాను చూపించే ఫలితాల ప్రాంతాన్ని సృష్టించండి. ఈ HTMLను ఫారం కింద చేర్చండి: ```htmlRegion:
Carbon Usage:
Fossil Fuel Percentage: