[{"data":1,"prerenderedAt":2690},["ShallowReactive",2],{"content-page:\u002Finternet-applications\u002Fpresentations\u002F03-html-forms-css-and-dom\u002F01-intro-to-html":3,"content-page-quiz:none":1198,"content-navigation-index":1212},{"id":4,"title":5,"audience":6,"body":7,"contentType":1183,"course":1184,"description":1185,"estimateBasis":1186,"estimatedDiscussionMinutes":1187,"estimatedLiveMinutes":1188,"estimatedTotalMinutes":1189,"extension":1190,"meta":1191,"module":1192,"navigation":1193,"order":1187,"path":1194,"presentationRole":1195,"promptAssist":1196,"revision":1197,"semester":1198,"seo":1199,"status":1200,"stem":1201,"syllabus":1198,"tags":1202,"updated":1206,"videoDuration":1207,"videoId":1208,"videoLink":1209,"videoTitle":1210,"week":1192,"__hash__":1211},"content\u002Finternet-applications\u002Fpresentations\u002F03-html-forms-css-and-dom\u002F01-intro-to-html.md","Intro To HTML","student",{"type":8,"value":9,"toc":1162},"minimark",[10,73,116,176,257,302,404,476,543,629,702,799,860,887,913,971,1035,1081],[11,12,15,19,23],"slide",{"id":13,"level":14},"main-idea","2",[16,17,18],"h2",{"id":13},"Main Idea",[20,21,22],"p",{},"HTML gives the browser a labeled outline of the page. It says what each piece of content is before CSS changes its appearance or JavaScript changes its behavior.",[24,25,26,35,55,64,67,70],"ul",{},[27,28,29,30,34],"li",{},"Put web-served files inside ",[31,32,33],"code",{},"public_html"," so Apache can find them",[27,36,37,38,41,42,41,45,41,48,51,52],{},"Start every page with the basic structure: ",[31,39,40],{},"\u003C!doctype html>",", ",[31,43,44],{},"\u003Chtml>",[31,46,47],{},"\u003Chead>",[31,49,50],{},"\u003Ctitle>",", and ",[31,53,54],{},"\u003Cbody>",[27,56,57,58,60,61],{},"Put visible content in ",[31,59,54],{},", usually inside one ",[31,62,63],{},"\u003Cmain>",[27,65,66],{},"Choose tags by purpose: heading, paragraph, link, list, media, table, or page region",[27,68,69],{},"Semantic HTML gives CSS, JavaScript, browsers, validators, and assistive tools a clearer page to work with",[27,71,72],{},"A page can appear to work in the browser and still have markup problems worth fixing",[11,74,76,79],{"id":75,"level":14},"practice-workspace",[16,77,78],{"id":75},"Practice Workspace",[24,80,81,87,93,96,106,109],{},[27,82,83,84],{},"Work inside ",[31,85,86],{},"public_html\u002Fm03\u002Flessons\u002F",[27,88,89,90],{},"Lesson branch: ",[31,91,92],{},"Module03-HTML-Intro",[27,94,95],{},"Create the folder if it is missing",[27,97,98,99,102,103],{},"Use file prefix ",[31,100,101],{},"html-intro-",", such as ",[31,104,105],{},"html-intro-page.html",[27,107,108],{},"Keep HTML, CSS, and JavaScript practice files grouped by lesson",[27,110,111,112,115],{},"When the page works, run ",[31,113,114],{},"git status",", stage the changed files, and commit",[11,117,119,122],{"id":118,"level":14},"target-file-and-url",[16,120,121],{"id":118},"Target File And URL",[123,124,127,148],"two-col",{"gap":125,"left-width":126,"right-width":126},"lg","1fr",[128,129,131,136,141,145],"template",{"v-slot:left":130},"",[132,133,135],"h3",{"id":134},"file-path","File path",[137,138],"code-snippet",{"language":139,"src":140},"text","\u002Fgenerated-snippets\u002Finternet-applications\u002Fpresentations\u002F03-html-forms-css-and-dom\u002F01-intro-to-html\u002Ffile-path-01.txt",[132,142,144],{"id":143},"browser-url","Browser URL",[137,146],{"language":139,"src":147},"\u002Fgenerated-snippets\u002Finternet-applications\u002Fpresentations\u002F03-html-forms-css-and-dom\u002F01-intro-to-html\u002Fbrowser-url-02.txt",[128,149,150,154],{"v-slot:right":130},[132,151,153],{"id":152},"checkpoints","Checkpoints",[24,155,156,162,168,171],{},[27,157,158,159],{},"Folder name: ",[31,160,161],{},"m03",[27,163,164,165],{},"File extension: ",[31,166,167],{},".html",[27,169,170],{},"Opened through the web server, not double-clicked",[27,172,173,174],{},"Browser tab shows the page ",[31,175,50],{},[11,177,179,182,186],{"id":178,"level":14},"html-page-structure-and-details",[16,180,181],{"id":178},"HTML Page Structure And Details",[137,183],{"language":184,"src":185},"html","\u002Fgenerated-snippets\u002Finternet-applications\u002Fpresentations\u002F03-html-forms-css-and-dom\u002F01-intro-to-html\u002Fhtml-page-structure-and-details-17.html",[123,187,188,223],{"gap":125,"left-width":126,"right-width":126},[128,189,190,194],{"v-slot:left":130},[132,191,193],{"id":192},"structure","Structure",[24,195,196,201,206,211,216],{},[27,197,198,200],{},[31,199,40],{},": tells browser to use modern HTML",[27,202,203,205],{},[31,204,47],{},": page information, not visible body content",[27,207,208,210],{},[31,209,50],{},": browser tab text",[27,212,213,215],{},[31,214,54],{},": visible page content",[27,217,218,220,221],{},[31,219,63],{},": primary content area inside ",[31,222,54],{},[128,224,225,229],{"v-slot:right":130},[132,226,228],{"id":227},"page-details","Page Details",[24,230,231,237,243,249],{},[27,232,233,236],{},[31,234,235],{},"lang",": page language for browsers and assistive tools",[27,238,239,242],{},[31,240,241],{},"charset",": character encoding for the document",[27,244,245,248],{},[31,246,247],{},"meta description",": short summary for previews and search",[27,250,251,252,254,255],{},"Visible page text belongs in ",[31,253,54],{},", not ",[31,256,47],{},[11,258,260,264,271,274,277,280,283],{"id":259,"level":14},"browser-check",[16,261,263],{"id":262},"check-the-saved-page","Check The Saved Page",[20,265,266,267,270],{},"After saving ",[31,268,269],{},"html-structure.html",", open it through the web server and compare the browser to the file.",[20,272,273],{},"Expected visible page:",[137,275],{"language":139,"src":276},"\u002Fgenerated-snippets\u002Finternet-applications\u002Fpresentations\u002F03-html-forms-css-and-dom\u002F01-intro-to-html\u002Fbrowser-check-05.txt",[20,278,279],{},"Expected tab title:",[137,281],{"language":139,"src":282},"\u002Fgenerated-snippets\u002Finternet-applications\u002Fpresentations\u002F03-html-forms-css-and-dom\u002F01-intro-to-html\u002Fbrowser-check-06.txt",[24,284,285,288,291,297],{},[27,286,287],{},"If the page downloads or shows raw markup, web server\u002FPHP routing is wrong",[27,289,290],{},"If the URL 404s, check folder, filename, and VM IP",[27,292,293,294,296],{},"If the title is wrong, check the ",[31,295,47],{}," section",[27,298,299,300],{},"If the body text is wrong, check the content inside ",[31,301,63],{},[11,303,305,308],{"id":304,"level":14},"elements-and-attributes",[16,306,307],{"id":304},"Elements And Attributes",[123,309,310,341],{"gap":125,"left-width":126,"right-width":126},[128,311,312,315],{"v-slot:left":130},[137,313],{"language":184,"src":314},"\u002Fgenerated-snippets\u002Finternet-applications\u002Fpresentations\u002F03-html-forms-css-and-dom\u002F01-intro-to-html\u002Felements-and-attributes-04.html",[24,316,317],{},[27,318,319,320],{},"Attribute basics",[24,321,322,325,338],{},[27,323,324],{},"Most elements have an opening tag, content, and closing tag",[27,326,327,328,41,331,41,334,337],{},"Some elements such as ",[31,329,330],{},"\u003Cimg>",[31,332,333],{},"\u003Cbr>",[31,335,336],{},"\u003Chr>"," do not wrap text or need a closing tag",[27,339,340],{},"Attributes are name\u002Fvalue settings in the opening tag",[128,342,343],{"v-slot:right":130},[27,344,345,346],{},"Examples\n",[24,347,348,377],{},[27,349,350,351],{},"Link attributes\n",[24,352,353,359,365,371],{},[27,354,355,358],{},[31,356,357],{},"href",": link destination",[27,360,361,364],{},[31,362,363],{},"target=\"_blank\"",": open in a new tab",[27,366,367,370],{},[31,368,369],{},"rel=\"noopener\"",": blocks the new tab from controlling this page",[27,372,373,376],{},[31,374,375],{},"noreferrer",": avoids sending this page URL as referrer data",[27,378,379,380],{},"Image attributes\n",[24,381,382,388,394],{},[27,383,384,387],{},[31,385,386],{},"src",": image file path or URL",[27,389,390,393],{},[31,391,392],{},"alt",": text replacement when the image cannot be seen",[27,395,396,399,400,403],{},[31,397,398],{},"width"," and ",[31,401,402],{},"height",": image display size and layout space",[11,405,407,410],{"id":406,"level":14},"common-elements-by-purpose",[16,408,409],{"id":406},"Common Elements By Purpose",[123,411,414,419],{"gap":125,"left-width":412,"right-width":413},"1.05fr","0.95fr",[128,415,416],{"v-slot:left":130},[137,417],{"language":184,"src":418},"\u002Fgenerated-snippets\u002Finternet-applications\u002Fpresentations\u002F03-html-forms-css-and-dom\u002F01-intro-to-html\u002Fcommon-content-elements-13.html",[128,420,421,425],{"v-slot:right":130},[132,422,424],{"id":423},"what-the-tags-do","What The Tags Do",[24,426,427,437,443,449,458,464,470],{},[27,428,429,432,433,436],{},[31,430,431],{},"\u003Ch1>","-",[31,434,435],{},"\u003Ch6>",": page and section headings",[27,438,439,442],{},[31,440,441],{},"\u003Cp>",": one paragraph of prose",[27,444,445,448],{},[31,446,447],{},"\u003Ca>",": link to another URL or page location",[27,450,451,399,454,457],{},[31,452,453],{},"\u003Cul>",[31,455,456],{},"\u003Col>",": unordered or ordered lists",[27,459,460,463],{},[31,461,462],{},"\u003Cli>",": one item inside a list",[27,465,466,469],{},[31,467,468],{},"\u003Cdiv>",": block-level group when no semantic tag fits",[27,471,472,475],{},[31,473,474],{},"\u003Cspan>",": inline wrapper inside a sentence or line",[11,477,479,482],{"id":478,"level":14},"semantic-structure",[16,480,481],{"id":478},"Semantic Structure",[123,483,484,489],{"gap":125,"left-width":126,"right-width":126},[128,485,486],{"v-slot:left":130},[137,487],{"language":184,"src":488},"\u002Fgenerated-snippets\u002Finternet-applications\u002Fpresentations\u002F03-html-forms-css-and-dom\u002F01-intro-to-html\u002Fsemantic-structure-12.html",[128,490,491,494,537],{"v-slot:right":130},[20,492,493],{},"Use tags that describe the content's purpose:",[24,495,496,501,507,513,519,525,531],{},[27,497,498,500],{},[31,499,63],{},": primary content",[27,502,503,506],{},[31,504,505],{},"\u003Cheader>",": introductory page or section content",[27,508,509,512],{},[31,510,511],{},"\u003Cnav>",": navigation links",[27,514,515,518],{},[31,516,517],{},"\u003Csection>",": related content group",[27,520,521,524],{},[31,522,523],{},"\u003Carticle>",": standalone content",[27,526,527,530],{},[31,528,529],{},"\u003Caside>",": related side content",[27,532,533,536],{},[31,534,535],{},"\u003Cfooter>",": ending or supporting content",[20,538,539,540,542],{},"Use ",[31,541,468],{}," only when no better semantic tag fits",[11,544,546,549],{"id":545,"level":14},"more-semantic-tags",[16,547,548],{"id":545},"More Semantic Tags",[123,550,551,556],{"gap":125,"left-width":412,"right-width":413},[128,552,553],{"v-slot:left":130},[137,554],{"language":184,"src":555},"\u002Fgenerated-snippets\u002Finternet-applications\u002Fpresentations\u002F03-html-forms-css-and-dom\u002F01-intro-to-html\u002Fmore-semantic-tags-14.html",[128,557,558,561],{"v-slot:right":130},[132,559,424],{"id":560},"what-the-tags-do-1",[24,562,563,569,575,581,587,593,599,605,611,617,623],{},[27,564,565,568],{},[31,566,567],{},"\u003Cfigure>",": self-contained media, diagram, or example",[27,570,571,574],{},[31,572,573],{},"\u003Cfigcaption>",": caption tied to a figure",[27,576,577,580],{},[31,578,579],{},"\u003Cdetails>",": expandable disclosure region",[27,582,583,586],{},[31,584,585],{},"\u003Csummary>",": visible label for the disclosure",[27,588,589,592],{},[31,590,591],{},"\u003Cstrong>",": important text",[27,594,595,598],{},[31,596,597],{},"\u003Cem>",": stressed emphasis",[27,600,601,604],{},[31,602,603],{},"\u003Cmark>",": highlighted or called-out text",[27,606,607,610],{},[31,608,609],{},"\u003Ccode>",": code, command, filename, or literal value",[27,612,613,616],{},[31,614,615],{},"\u003Cblockquote>",": quoted block from another source",[27,618,619,622],{},[31,620,621],{},"\u003Ctime>",": machine-readable date or time",[27,624,625,628],{},[31,626,627],{},"\u003Caddress>",": contact information for the page or article",[11,630,632,635,638],{"id":631,"level":14},"old-style-tags",[16,633,634],{"id":631},"Old Style Tags",[20,636,637],{},"Older HTML often mixed structure with appearance. Know these when reading old code, but do not make them your default choices.",[123,639,640,645],{"gap":125,"left-width":412,"right-width":413},[128,641,642],{"v-slot:left":130},[137,643],{"language":184,"src":644},"\u002Fgenerated-snippets\u002Finternet-applications\u002Fpresentations\u002F03-html-forms-css-and-dom\u002F01-intro-to-html\u002Fold-style-tags-16.html",[128,646,647,651],{"v-slot:right":130},[132,648,650],{"id":649},"what-to-notice","What To Notice",[24,652,653,668,674,680,686,691,696,699],{},[27,654,655,41,658,41,661,51,664,667],{},[31,656,657],{},"\u003Cfont>",[31,659,660],{},"\u003Ccenter>",[31,662,663],{},"\u003Cbig>",[31,665,666],{},"\u003Cstrike>"," are old presentational patterns",[27,669,670,673],{},[31,671,672],{},"\u003Cb>"," draws attention without saying the text is important",[27,675,676,679],{},[31,677,678],{},"\u003Ci>"," marks an alternate voice, term, or title",[27,681,682,685],{},[31,683,684],{},"\u003Cu>"," marks text with an underline-style annotation",[27,687,688,690],{},[31,689,591],{}," means important text",[27,692,693,695],{},[31,694,597],{}," means stressed emphasis",[27,697,698],{},"Use CSS for color, size, alignment, and decoration",[27,700,701],{},"Be careful with underline because users may read it as a link",[11,703,705,708],{"id":704,"level":14},"media-and-canvas-tags",[16,706,707],{"id":704},"Media And Canvas Tags",[123,709,710,715],{"gap":125,"left-width":412,"right-width":413},[128,711,712],{"v-slot:left":130},[137,713],{"language":184,"src":714},"\u002Fgenerated-snippets\u002Finternet-applications\u002Fpresentations\u002F03-html-forms-css-and-dom\u002F01-intro-to-html\u002Fmedia-and-canvas-tags-15.html",[128,716,717],{"v-slot:right":130},[24,718,719],{},[27,720,721,722],{},"What The Tags Do\n",[24,723,724,738,746,752,758,764,770,776,782,788],{},[27,725,726,729,730],{},[31,727,728],{},"\u003Cmeta name=\"viewport\">",": tells mobile browsers to match the device width\n",[24,731,732],{},[27,733,734,737],{},[31,735,736],{},"initial-scale=1",": starts page at normal zoom instead of a zoomed-out desktop layout",[27,739,740,742,743,745],{},[31,741,330],{},": image file with useful ",[31,744,392],{}," text",[27,747,748,751],{},[31,749,750],{},"\u003Csvg>",": vector graphic, inline or linked",[27,753,754,757],{},[31,755,756],{},"\u003Cpicture>",": responsive image choices",[27,759,760,763],{},[31,761,762],{},"\u003Cvideo>",": playable video",[27,765,766,769],{},[31,767,768],{},"\u003Caudio>",": playable audio",[27,771,772,775],{},[31,773,774],{},"\u003Csource>",": media file option",[27,777,778,781],{},[31,779,780],{},"\u003Ctrack>",": captions or subtitles",[27,783,784,787],{},[31,785,786],{},"\u003Ciframe>",": embedded page",[27,789,790,793,794],{},[31,791,792],{},"\u003Ccanvas>",": blank drawing surface for JavaScript\n",[24,795,796],{},[27,797,798],{},"Doesn't describe content by itself. Include fallback text or nearby explanation when the drawing matters.",[11,800,802,805],{"id":801,"level":14},"table-structure",[16,803,804],{"id":801},"Table Structure",[123,806,809,814],{"gap":125,"left-width":807,"right-width":808},"1.1fr","0.9fr",[128,810,811],{"v-slot:left":130},[137,812],{"language":184,"src":813},"\u002Fgenerated-snippets\u002Finternet-applications\u002Fpresentations\u002F03-html-forms-css-and-dom\u002F01-intro-to-html\u002Ftable-structure-07.html",[128,815,816,819,857],{"v-slot:right":130},[20,817,818],{},"Use tables for tabular data:",[24,820,821,827,833,839,845,851],{},[27,822,823,826],{},[31,824,825],{},"\u003Ctable>",": the whole table",[27,828,829,832],{},[31,830,831],{},"\u003Cthead>",": header rows",[27,834,835,838],{},[31,836,837],{},"\u003Ctbody>",": data rows",[27,840,841,844],{},[31,842,843],{},"\u003Ctr>",": one row",[27,846,847,850],{},[31,848,849],{},"\u003Cth>",": header cell",[27,852,853,856],{},[31,854,855],{},"\u003Ctd>",": data cell",[20,858,859],{},"Do not use tables for page layout",[11,861,863,866],{"id":862,"level":14},"common-mistakes",[16,864,865],{"id":862},"Common Mistakes",[24,867,868,873,876,879,884],{},[27,869,870,871],{},"File saved outside ",[31,872,33],{},[27,874,875],{},"Path typo in a folder or filename",[27,877,878],{},"Missing closing tag that changes page nesting",[27,880,881,882],{},"Putting visible content inside ",[31,883,47],{},[27,885,886],{},"Opening the file from the local file system instead of the web server",[11,888,890,893],{"id":889,"level":14},"try-it",[16,891,892],{"id":889},"Try It",[24,894,895,901,904,907,910],{},[27,896,897,898,900],{},"Add one paragraph inside ",[31,899,63],{}," with text of your choice",[27,902,903],{},"Save the file",[27,905,906],{},"Refresh the browser",[27,908,909],{},"Confirm only the page body changed",[27,911,912],{},"Confirm the browser tab title stayed the same",[11,914,916,919],{"id":915,"level":14},"knowledge-check",[16,917,918],{"id":915},"Knowledge Check",[24,920,921,924,927,937,940,948,957,962,968],{},[27,922,923],{},"Which tag controls browser tab text?",[27,925,926],{},"Why should the file be opened through the web server?",[27,928,929,930,933,934,936],{},"What does ",[31,931,932],{},"noopener"," protect when using ",[31,935,363],{},"?",[27,938,939],{},"Where do attributes go, and what do they change?",[27,941,942,943,945,946,936],{},"When would ",[31,944,474],{}," fit better than ",[31,947,468],{},[27,949,950,951,953,954,956],{},"Why is ",[31,952,63],{}," more meaningful than a generic ",[31,955,468],{}," for primary content?",[27,958,959,960,936],{},"Why use CSS instead of old style-based tags such as ",[31,961,657],{},[27,963,964,965,967],{},"Which media tag needs ",[31,966,392],{}," text?",[27,969,970],{},"When should a table be used?",[11,972,974,978],{"id":973,"level":14},"finish-lesson-branch",[16,975,977],{"id":976},"finish-the-lesson-branch","Finish The Lesson Branch",[979,980,981,986,992,998,1004,1014,1025],"ol",{},[27,982,983,984],{},"Check the final file list: ",[31,985,114],{},[27,987,988,989],{},"Stage the lesson work: ",[31,990,991],{},"git add public_html\u002Fm03\u002Flessons\u002F",[27,993,994,995],{},"Commit the practice work: ",[31,996,997],{},"git commit -m \"Complete lesson practice\"",[27,999,1000,1001],{},"Push the branch: ",[31,1002,1003],{},"git push origin Module03-HTML-Intro",[27,1005,1006,1007,1009,1010,1013],{},"On GitHub, open a pull request from ",[31,1008,92],{}," into ",[31,1011,1012],{},"qa",", review it, then merge",[27,1015,1016,1017,1019,1020,1009,1022],{},"Briefly test ",[31,1018,1012],{},", then open and merge a pull request from ",[31,1021,1012],{},[31,1023,1024],{},"prod",[27,1026,1027,1028,1031,1032],{},"Prepare for the next lesson: ",[31,1029,1030],{},"git checkout qa"," then ",[31,1033,1034],{},"git pull origin qa",[11,1036,1038,1041],{"id":1037,"level":14},"summary",[16,1039,1040],{"id":1037},"Summary",[24,1042,1043,1046,1060,1063,1066,1069,1072,1075,1078],{},[27,1044,1045],{},"Valid HTML starts with a predictable document structure",[27,1047,1048,1049,41,1051,41,1053,41,1055,51,1057,1059],{},"Semantic elements such as ",[31,1050,505],{},[31,1052,511],{},[31,1054,63],{},[31,1056,517],{},[31,1058,535],{}," describe what each region is for",[27,1061,1062],{},"Common elements should be chosen by purpose: content, navigation, media, table data, or grouping",[27,1064,1065],{},"Attributes add settings such as destinations, ids, classes, language, and safer link behavior",[27,1067,1068],{},"CSS should handle visual styling instead of old presentational tags",[27,1070,1071],{},"Media tags need accessible text, captions, or nearby explanation when the media carries meaning",[27,1073,1074],{},"Tables need header and body structure when they show tabular data",[27,1076,1077],{},"Browser checks confirm the URL, tab title, and visible body output",[27,1079,1080],{},"Validators catch markup problems such as invalid nesting, missing required attributes, and duplicate ids",[11,1082,1084,1088],{"id":1083,"level":14},"further-learning",[16,1085,1087],{"id":1086},"key-terms-and-further-learning","Key Terms And Further Learning",[123,1089,1090,1132],{"gap":125,"left-width":126,"right-width":126},[128,1091,1092,1096,1112,1126],{"v-slot:left":130},[132,1093,1095],{"id":1094},"key-terms","Key Terms",[20,1097,1098,1102,1103,41,1105,41,1107,1109,1110],{},[1099,1100,1101],"strong",{},"Element"," - HTML markup such as ",[31,1104,431],{},[31,1106,441],{},[31,1108,63],{},", or ",[31,1111,447],{},[20,1113,1114,1117,1118,41,1120,1109,1123],{},[1099,1115,1116],{},"Attribute"," - Extra information in an opening tag, such as ",[31,1119,357],{},[31,1121,1122],{},"class",[31,1124,1125],{},"id",[20,1127,1128,1131],{},[1099,1129,1130],{},"Semantic HTML"," - Tags chosen because they describe purpose, not just appearance",[128,1133,1134,1137],{"v-slot:right":130},[132,1135,1136],{"id":1083},"Further Learning",[24,1138,1139,1148,1155],{},[27,1140,1141],{},[1142,1143,1147],"a",{"href":1144,"rel":1145},"https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FLearn\u002FHTML\u002FIntroduction_to_HTML\u002FGetting_started",[1146],"nofollow","MDN HTML basics",[27,1149,1150],{},[1142,1151,1154],{"href":1152,"rel":1153},"https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FHTML\u002FElement",[1146],"MDN HTML elements reference",[27,1156,1157],{},[1142,1158,1161],{"href":1159,"rel":1160},"https:\u002F\u002Fvalidator.w3.org\u002F",[1146],"W3C Markup Validator",{"title":130,"searchDepth":1163,"depth":1163,"links":1164},2,[1165,1166,1167,1168,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182],{"id":13,"depth":1163,"text":18},{"id":75,"depth":1163,"text":78},{"id":118,"depth":1163,"text":121},{"id":178,"depth":1163,"text":181},{"id":262,"depth":1163,"text":263},{"id":304,"depth":1163,"text":307},{"id":406,"depth":1163,"text":409},{"id":478,"depth":1163,"text":481},{"id":545,"depth":1163,"text":548},{"id":631,"depth":1163,"text":634},{"id":704,"depth":1163,"text":707},{"id":801,"depth":1163,"text":804},{"id":862,"depth":1163,"text":865},{"id":889,"depth":1163,"text":892},{"id":915,"depth":1163,"text":918},{"id":976,"depth":1163,"text":977},{"id":1037,"depth":1163,"text":1040},{"id":1086,"depth":1163,"text":1087},"presentation","Internet Applications","Introduce HTML document structure, common elements, semantic tags, media tags, and browser checks for valid pages.","Face-to-face class of about 40 students; includes typing time, troubleshooting, checks, and short questions.","10","65","75","md",{},"3",true,"\u002Finternet-applications\u002Fpresentations\u002F03-html-forms-css-and-dom\u002F01-intro-to-html","Core",false,"34",null,{"title":5,"description":1185},"published","internet-applications\u002Fpresentations\u002F03-html-forms-css-and-dom\u002F01-intro-to-html",[184,1203,1204,1205],"forms","css","dom","2026-06-16T09:16:12-04:00","1:02:58","mt3V1j7RfVg","https:\u002F\u002Fyoutu.be\u002Fmt3V1j7RfVg","HTML Intro","mgQ2ldIUtdKHKL2XQBxMmjVU66Hn5bUNJ_Tpt5kToKc",[1213,1216,1222,1225,1229,1232,1235,1238,1242,1245,1248,1252,1256,1259,1263,1266,1269,1273,1276,1279,1282,1284,1286,1288,1290,1292,1294,1296,1299,1302,1305,1308,1311,1313,1316,1319,1323,1327,1331,1335,1338,1341,1344,1348,1352,1355,1358,1361,1364,1368,1372,1375,1377,1380,1383,1386,1389,1392,1395,1398,1401,1405,1409,1413,1417,1420,1423,1425,1428,1431,1434,1437,1440,1443,1446,1449,1452,1455,1458,1461,1464,1468,1471,1474,1477,1480,1483,1486,1489,1492,1495,1498,1502,1505,1508,1511,1514,1517,1520,1523,1526,1529,1532,1535,1538,1541,1544,1547,1550,1553,1556,1559,1562,1565,1568,1571,1574,1577,1580,1583,1586,1589,1592,1595,1598,1601,1604,1607,1610,1613,1616,1619,1622,1625,1628,1631,1634,1637,1640,1643,1646,1649,1652,1655,1658,1661,1664,1667,1670,1673,1676,1679,1682,1685,1688,1691,1694,1697,1700,1703,1706,1709,1712,1715,1718,1721,1724,1727,1730,1733,1736,1739,1742,1745,1748,1751,1754,1757,1760,1763,1766,1769,1772,1775,1778,1781,1784,1787,1790,1793,1796,1799,1802,1805,1808,1811,1814,1817,1820,1823,1826,1829,1832,1835,1838,1841,1844,1847,1850,1853,1856,1860,1863,1866,1869,1872,1875,1878,1881,1884,1887,1890,1893,1896,1899,1902,1905,1908,1911,1914,1917,1920,1923,1926,1929,1932,1935,1938,1941,1944,1947,1950,1953,1956,1959,1962,1965,1968,1971,1974,1977,1980,1983,1986,1989,1992,1995,1998,2001,2004,2007,2010,2013,2016,2019,2022,2025,2028,2031,2034,2037,2040,2043,2046,2049,2052,2055,2058,2061,2064,2067,2070,2073,2076,2079,2082,2085,2088,2091,2094,2097,2100,2103,2106,2109,2112,2115,2118,2121,2124,2127,2130,2133,2136,2139,2142,2145,2148,2151,2154,2157,2160,2163,2166,2169,2172,2175,2178,2181,2184,2187,2190,2193,2196,2199,2202,2205,2208,2211,2214,2217,2220,2223,2226,2229,2232,2235,2238,2241,2245,2248,2251,2254,2257,2260,2263,2265,2267,2269,2271,2273,2275,2277,2279,2281,2283,2285,2287,2289,2290,2292,2294,2296,2298,2300,2302,2304,2306,2309,2311,2313,2315,2317,2319,2321,2323,2325,2327,2329,2331,2333,2335,2337,2339,2343,2347,2351,2354,2358,2362,2365,2368,2371,2374,2377,2380,2384,2387,2390,2393,2396,2398,2400,2402,2404,2407,2410,2413,2416,2419,2422,2425,2428,2431,2434,2437,2440,2443,2446,2449,2452,2455,2458,2461,2464,2467,2470,2473,2476,2479,2482,2485,2488,2491,2494,2497,2500,2503,2506,2509,2512,2515,2518,2521,2524,2527,2530,2533,2536,2539,2542,2545,2548,2551,2554,2557,2560,2563,2566,2569,2571,2573,2575,2577,2579,2581,2583,2585,2587,2589,2591,2593,2595,2597,2599,2601,2603,2605,2608,2610,2612,2614,2616,2618,2620,2622,2624,2626,2628,2630,2632,2634,2636,2638,2640,2642,2644,2646,2648,2650,2653,2656,2659,2662,2665,2667,2669,2672,2675,2678,2681,2684,2687],{"path":1214,"title":1215,"order":1198,"module":1198,"status":1198},"\u002Fabout","About Content Version 3",{"path":1217,"title":1218,"order":1219,"module":1220,"status":1221},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F01-introduction\u002F01-first-concept","First Concept","5","1","draft",{"path":1223,"title":1224,"order":1187,"module":1220,"status":1221},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F01-introduction\u002F01-what-is-a-game","What is a Game?",{"path":1226,"title":1227,"order":1228,"module":1220,"status":1221},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F01-introduction\u002F02-what-is-gameplay","What is Gameplay?","20",{"path":1230,"title":1231,"order":1187,"module":14,"status":1221},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F02-game-balance\u002F01-game-balance","Game Balance",{"path":1233,"title":1234,"order":1187,"module":1192,"status":1221},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F03-look-and-feel\u002F01-color-theory","Game Design: Color Theory",{"path":1236,"title":1237,"order":1228,"module":1192,"status":1221},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F03-look-and-feel\u002F02-look-and-feel","Game Design - Look and Feel",{"path":1239,"title":1240,"order":1187,"module":1241,"status":1221},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F04-game-mechanics\u002F01-game-mechanics","Game Mechanics","4",{"path":1243,"title":1244,"order":1228,"module":1241,"status":1221},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F04-game-mechanics\u002F02-decks","Technical: Decks and Cards",{"path":1246,"title":1247,"order":1187,"module":1219,"status":1221},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F05-depth-complexity-and-randomness\u002F01-depth-vs-complexity-and-randomness","Depth, Complexity, And Randomness",{"path":1249,"title":1250,"order":1228,"module":1251,"status":1221},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F06-first-game-planning\u002F02-planning-and-management","Planning From Concept To Prototype","6",{"path":1253,"title":1254,"order":1187,"module":1255,"status":1221},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F08-game-architecture\u002F01-concepts-and-design","Game Architecture: Concepts And Design","8",{"path":1257,"title":1258,"order":1228,"module":1255,"status":1221},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F08-game-architecture\u002F02-features-of-a-game-engine","Game Engine Features And Browser Feasibility",{"path":1260,"title":1261,"order":1187,"module":1262,"status":1221},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F09-entity-based-systems\u002F01-ecs","Entity-Based Systems","9",{"path":1264,"title":1265,"order":1187,"module":1187,"status":1221},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F10-player-facing-feature-systems\u002F01-spatial-rules-levels-and-interface","Spatial Rules, Levels, And Interface",{"path":1267,"title":1268,"order":1228,"module":1187,"status":1221},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F10-player-facing-feature-systems\u002F02-actors-behavior-and-effects","Actors, Behavior, And Effects",{"path":1270,"title":1271,"order":1220,"module":1272,"status":1200},"\u002Fgame-architecture-and-design\u002F2e\u002Fsyllabus\u002Ffall-2026","Course Syllabus: IT265 - Game Architecture and Design","0",{"path":1274,"title":1275,"order":1220,"module":1272,"status":1221},"\u002Fgame-architecture-and-design","Game Architecture and Design",{"path":1277,"title":1278,"order":1198,"module":1198,"status":1221},"\u002Fgame-architecture-and-design\u002Fpresentations-revised\u002F00-revision-plan","Game Architecture And Design Presentation Revision Plan",{"path":1280,"title":1281,"order":1198,"module":1198,"status":1221},"\u002Fgame-architecture-and-design\u002Fpresentations-revised\u002F01-20-minute-recording-plan","Game Architecture And Design Twenty-Minute Recording Plan",{"path":1283,"title":1224,"order":1187,"module":1220,"status":1221},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F01-introduction\u002F01-what-is-a-game",{"path":1285,"title":1227,"order":1228,"module":1220,"status":1221},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F01-introduction\u002F02-what-is-gameplay",{"path":1287,"title":1231,"order":1187,"module":14,"status":1221},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F02-game-balance\u002F01-game-balance",{"path":1289,"title":1234,"order":1187,"module":1192,"status":1221},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F03-look-and-feel\u002F01-color-theory",{"path":1291,"title":1237,"order":1228,"module":1192,"status":1221},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F03-look-and-feel\u002F02-look-and-feel",{"path":1293,"title":1240,"order":1187,"module":1241,"status":1221},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F04-game-mechanics\u002F01-game-mechanics",{"path":1295,"title":1244,"order":1228,"module":1241,"status":1221},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F04-game-mechanics\u002F02-decks",{"path":1297,"title":1298,"order":1187,"module":1219,"status":1221},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F05-depth-complexity-and-randomness\u002F01-depth-vs-complexity-and-randomness","Depth vs Complexity and Randomness",{"path":1300,"title":1301,"order":1187,"module":1251,"status":1221},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F06-first-game-planning\u002F01-first-concept","First Concept: Updated Lesson",{"path":1303,"title":1304,"order":1228,"module":1251,"status":1221},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F06-first-game-planning\u002F02-planning-and-management","Planning and Management",{"path":1306,"title":1307,"order":1187,"module":1255,"status":1221},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F08-game-architecture\u002F01-concepts-and-design","Game Architecture: Concepts and Design",{"path":1309,"title":1310,"order":1228,"module":1255,"status":1221},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F08-game-architecture\u002F02-features-of-a-game-engine","Game Architecture: Features of a Game Engine",{"path":1312,"title":1261,"order":1187,"module":1262,"status":1221},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F09-entity-based-systems\u002F01-ecs",{"path":1314,"title":1315,"order":1187,"module":1187,"status":1221},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F10-level-mechanics\u002F01-level-mechanics","Game Design: Introduction to Level Mechanics",{"path":1317,"title":1318,"order":1228,"module":1187,"status":1221},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F10-level-mechanics\u002F02-grids","Technical: Square vs Hex Grids in Board Games",{"path":1320,"title":1321,"order":1187,"module":1322,"status":1221},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F11-user-interfaces\u002F01-user-interfaces","Game Design: User Interfaces","11",{"path":1324,"title":1325,"order":1187,"module":1326,"status":1221},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F12-actor-representations\u002F01-actors","Game Design: Actor Representations","12",{"path":1328,"title":1329,"order":1187,"module":1330,"status":1221},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F13-artificial-intelligence\u002F01-ai","Game Design: AI","13",{"path":1332,"title":1333,"order":1187,"module":1334,"status":1221},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F14-particles-and-physics\u002F01-particles-and-physics","IT265: Particle Systems and Physics Engine","14",{"path":1336,"title":1337,"order":1220,"module":1272,"status":1221},"\u002Fgame-architecture-and-design\u002Fsyllabus\u002Fspring-2026","Course Syllabus: IT265 - Game Architecture",{"path":1339,"title":1340,"order":1187,"module":1272,"status":1221},"\u002Fgame-architecture-and-design\u002Fworksheets\u002Fcase-study-1-atari-worksheet","Case Study 1 - Atari",{"path":1342,"title":1343,"order":1228,"module":1272,"status":1221},"\u002Fgame-architecture-and-design\u002Fworksheets\u002Fit265-case-study-color-theory-worksheet","IT265 Case Study - Color Theory",{"path":1345,"title":1346,"order":1347,"module":1272,"status":1221},"\u002Fgame-architecture-and-design\u002Fworksheets\u002Fit265-case-study-personal-choice-worksheet","IT265 Case Study - Personal Choice","40",{"path":1349,"title":1350,"order":1351,"module":1272,"status":1221},"\u002Fgame-architecture-and-design\u002Fworksheets\u002Fit265-design-treatment-checkpoint-worksheet","IT265 Design Treatment Checkpoint","30",{"path":1353,"title":1354,"order":1187,"module":1220,"status":1221},"\u002Fgeneral\u002F2e\u002Fpresentations\u002F01-git-and-terminal-setup","Git And Terminal Setup",{"path":1356,"title":1357,"order":1228,"module":1220,"status":1221},"\u002Fgeneral\u002F2e\u002Fpresentations\u002F02-cli-foundations","CLI Foundations",{"path":1359,"title":1360,"order":1351,"module":1220,"status":1221},"\u002Fgeneral\u002F2e\u002Fpresentations\u002F03-github-setup-and-ssh","GitHub Setup And SSH",{"path":1362,"title":1363,"order":1347,"module":1220,"status":1221},"\u002Fgeneral\u002F2e\u002Fpresentations\u002F04-local-git-workflow-and-course-repositories","Local Git Workflow And Course Repositories",{"path":1365,"title":1366,"order":1367,"module":1220,"status":1221},"\u002Fgeneral\u002F2e\u002Fpresentations\u002F05-vscode-setup-and-course-extensions","VS Code Setup And Course Extensions","50",{"path":1369,"title":1370,"order":1371,"module":1220,"status":1221},"\u002Fgeneral\u002F2e\u002Fpresentations\u002F06-trace-learning-journal","TRACE Learning Journal Foundations","60",{"path":1373,"title":1374,"order":1198,"module":1198,"status":1198},"\u002Fgeneral\u002Fbasic-cli","Basic Command Line",{"path":1376,"title":1374,"order":1187,"module":1220,"status":1198},"\u002Fgeneral\u002Fbasic-command-line",{"path":1378,"title":1379,"order":1198,"module":1198,"status":1200},"\u002F","Ethereal Lab Course Materials",{"path":1381,"title":1382,"order":1272,"module":1220,"status":1221},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F00-learn-courses-and-discord","Learn Courses Platform And Discord",{"path":1384,"title":1385,"order":1187,"module":1220,"status":1221},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F01-basic-cli-commands","Basic CLI Commands",{"path":1387,"title":1388,"order":1228,"module":1220,"status":1221},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F02-install-git-tools","Git Tools",{"path":1390,"title":1391,"order":1351,"module":1220,"status":1221},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F03-setup-github-ssh","Set Up GitHub SSH",{"path":1393,"title":1394,"order":1347,"module":1220,"status":1221},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F04-git-commands-prs","Git Commands And Pull Requests",{"path":1396,"title":1397,"order":1367,"module":1220,"status":1221},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F05-setup-local-development-environment","Local Development Environment Setup",{"path":1399,"title":1400,"order":1371,"module":1220,"status":1221},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F06-add-instructor-template-to-your-repository","Add Instructor Template To Your Repository",{"path":1402,"title":1403,"order":1404,"module":1220,"status":1221},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F07-qa-prod-branches","QA And Prod Branches","70",{"path":1406,"title":1407,"order":1408,"module":1220,"status":1221},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F08-render-setup","Render Setup","80",{"path":1410,"title":1411,"order":1412,"module":1220,"status":1221},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F09-local-ubuntu-web-server-virtualbox","Local Ubuntu Web Server With VirtualBox","90",{"path":1414,"title":1415,"order":1416,"module":1220,"status":1221},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F10-local-ubuntu-web-server-vmware","Local Ubuntu Web Server With VMware","100",{"path":1418,"title":1419,"order":1187,"module":14,"status":1221},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F02-php-and-javascript-basics\u002F01-compare-php-and-javascript","Compare PHP And JavaScript",{"path":1421,"title":1422,"order":1228,"module":14,"status":1221},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F02-php-and-javascript-basics\u002F02-conditions-loops-functions","Use Conditions Loops And Functions",{"path":1424,"title":5,"order":1187,"module":1192,"status":1221},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F03-html-forms-css-and-dom\u002F01-intro-to-html",{"path":1426,"title":1427,"order":1228,"module":1192,"status":1221},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F03-html-forms-css-and-dom\u002F02-intro-to-forms-and-get-post","Intro To Forms And GET\u002FPOST",{"path":1429,"title":1430,"order":1351,"module":1192,"status":1221},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F03-html-forms-css-and-dom\u002F03-understanding-css-js-selectors-and-dom-updates","Understanding CSS\u002FJS Selectors And DOM Updates",{"path":1432,"title":1433,"order":1187,"module":1241,"status":1221},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F04-databases-and-user-accounts\u002F01-intro-to-sql","Intro To SQL",{"path":1435,"title":1436,"order":1228,"module":1241,"status":1221},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F04-databases-and-user-accounts\u002F02-project-database-setup","Project Database Setup",{"path":1438,"title":1439,"order":1351,"module":1241,"status":1221},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F04-databases-and-user-accounts\u002F03-user-registration","User Registration",{"path":1441,"title":1442,"order":1347,"module":1241,"status":1221},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F04-databases-and-user-accounts\u002F04-user-login","User Login",{"path":1444,"title":1445,"order":1187,"module":1219,"status":1221},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F05-validation-and-user-profiles\u002F01-intro-to-regex","Intro To Regex",{"path":1447,"title":1448,"order":1228,"module":1219,"status":1221},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F05-validation-and-user-profiles\u002F02-project-shared-helpers","Project Shared Helpers",{"path":1450,"title":1451,"order":1351,"module":1219,"status":1221},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F05-validation-and-user-profiles\u002F03-flash-messages-and-redirect-feedback","User Feedback After Redirects",{"path":1453,"title":1454,"order":1347,"module":1219,"status":1221},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F05-validation-and-user-profiles\u002F04-user-profile","User Profile",{"path":1456,"title":1457,"order":1187,"module":1251,"status":1221},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F06-roles-and-crud-pages\u002F01-user-roles-authorization","User Roles Authorization",{"path":1459,"title":1460,"order":1228,"module":1251,"status":1221},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F06-roles-and-crud-pages\u002F02-user-login-enhancement","User Login Enhancement",{"path":1462,"title":1463,"order":1351,"module":1251,"status":1221},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F06-roles-and-crud-pages\u002F03-dynamic-content","Dynamic Content",{"path":1465,"title":1466,"order":1187,"module":1467,"status":1221},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F07-api-data-and-database-helpers\u002F01-working-with-api-data","Working With API Data","7",{"path":1469,"title":1470,"order":1228,"module":1467,"status":1221},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F07-api-data-and-database-helpers\u002F02-api-integration","API Integration",{"path":1472,"title":1473,"order":1351,"module":1467,"status":1221},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F07-api-data-and-database-helpers\u002F03-database-utility-functions","Database Utility Functions",{"path":1475,"title":1476,"order":1187,"module":1255,"status":1221},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F08-reusable-components-jquery-and-ajax\u002F01-milestone-2-bootstrap-and-reusability","Milestone 2 Bootstrap And Reusability",{"path":1478,"title":1479,"order":1228,"module":1255,"status":1221},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F08-reusable-components-jquery-and-ajax\u002F02-jquery-brief-intro","jQuery Brief Intro",{"path":1481,"title":1482,"order":1351,"module":1255,"status":1221},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F08-reusable-components-jquery-and-ajax\u002F03-intro-to-ajax","Intro To AJAX",{"path":1484,"title":1485,"order":1187,"module":1262,"status":1221},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F09-relational-data-search-and-pagination\u002F01-user-associations","Add User Associations",{"path":1487,"title":1488,"order":1228,"module":1262,"status":1221},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F09-relational-data-search-and-pagination\u002F02-association-views-and-pagination","Add Association Views And Pagination",{"path":1490,"title":1491,"order":1187,"module":1187,"status":1221},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F10-association-assignment-and-security\u002F01-association-assignment-and-public-profiles","Association Management And Public Profiles",{"path":1493,"title":1494,"order":1228,"module":1187,"status":1221},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F10-association-assignment-and-security\u002F02-reusable-csrf-protection","Reusable CSRF Protection",{"path":1496,"title":1497,"order":1220,"module":1272,"status":1200},"\u002Finternet-applications\u002F2e\u002Fsyllabus\u002Ffall-2026","IT202 - Internet Applications Syllabus",{"path":1499,"title":1500,"order":1347,"module":1187,"status":1501},"\u002Finternet-applications\u002Fassignments\u002Ffinal-project-submission","Final Project Submission","review",{"path":1503,"title":1504,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fassignments\u002Fmilestones\u002F01-account-access-and-profile-system","Milestone 1: Account, Access, And Profile System",{"path":1506,"title":1507,"order":1228,"module":1255,"status":1501},"\u002Finternet-applications\u002Fassignments\u002Fmilestones\u002F02-api-data-and-project-crud","Milestone 2: API Data And Project CRUD",{"path":1509,"title":1510,"order":1351,"module":1262,"status":1501},"\u002Finternet-applications\u002Fassignments\u002Fmilestones\u002F03-user-associations-search-and-summary","Milestone 3: User Associations, Search, And Summary Views",{"path":1512,"title":1513,"order":1219,"module":1241,"status":1200},"\u002Finternet-applications\u002Fassignments\u002Fproject-proposal","IT 202 Project Proposal",{"path":1515,"title":1516,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F01-what-this-course-is-building","What Internet Applications Build",{"path":1518,"title":1519,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F02-files-folders-and-project-structure","Files, Folders, And Project Structure",{"path":1521,"title":1522,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F02a-basic-cli-commands-for-course-work","Basic CLI Commands For Web Development",{"path":1524,"title":1525,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F02b-install-git-and-terminal-tools","Install Git And Terminal Tools",{"path":1527,"title":1528,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F03-version-control-with-git-and-github","Version Control With Git And GitHub",{"path":1530,"title":1531,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F03a-local-development-environment","Set Up A Local Development Environment",{"path":1533,"title":1534,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F04-adding-the-instructor-template-to-your-repository","Starting From A Starter Template",{"path":1536,"title":1537,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F05-editing-locally-and-seeing-changes-run","Editing Locally And Seeing Changes Run",{"path":1539,"title":1540,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F06-building-a-local-ubuntu-web-server","Building A Local Ubuntu Web Server",{"path":1542,"title":1543,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F07-git-recovery-and-common-mistakes","Git Recovery And Common Mistakes",{"path":1545,"title":1546,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F08-installing-apache-and-php","Installing Apache, PHP, And MySQL",{"path":1548,"title":1549,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F09-your-first-php-page-through-apache","Your First PHP Page Through Apache",{"path":1551,"title":1552,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F10-how-http-works-requests-and-responses","How HTTP Works: Requests And Responses",{"path":1554,"title":1555,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F11-http-methods-get-post-and-status-codes","HTTP Methods: GET, POST, And Status Codes",{"path":1557,"title":1558,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F12-local-qa-and-production-environments","Local, QA, And Production Environments",{"path":1560,"title":1561,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F01-how-php-runs-on-the-server","How PHP Runs On The Server",{"path":1563,"title":1564,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F02-displaying-output-with-php","Displaying Output With PHP",{"path":1566,"title":1567,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F03-displaying-output-with-javascript","Displaying Output With JavaScript",{"path":1569,"title":1570,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F04-variables-storing-and-naming-values","Variables: Storing And Naming Values",{"path":1572,"title":1573,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F05-data-types-strings-numbers-booleans-and-null","Data Types: Strings, Numbers, Booleans, And Null",{"path":1575,"title":1576,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F06-arrays-storing-lists-of-values","Arrays: Storing Lists Of Values",{"path":1578,"title":1579,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F07-conditional-statements-making-decisions","Conditional Statements: Making Decisions",{"path":1581,"title":1582,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F08-loops-repeating-actions","Loops: Repeating Actions",{"path":1584,"title":1585,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F09-functions-reusable-blocks-of-logic","Functions: Reusable Blocks Of Logic",{"path":1587,"title":1588,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F10-reading-and-debugging-error-messages","Reading And Debugging Error Messages",{"path":1590,"title":1591,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F01-html-structure-and-meaning","HTML: Structure And Meaning",{"path":1593,"title":1594,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F02-writing-a-valid-html-document","Writing A Valid HTML Document",{"path":1596,"title":1597,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F03-common-html-elements-and-semantic-tags","Common HTML Elements And Semantic Tags",{"path":1599,"title":1600,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F04-building-forms-inputs-labels-and-buttons","Building Forms: Inputs, Labels, And Buttons",{"path":1602,"title":1603,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F05-get-requests-and-query-string-data","GET Requests And Query String Data",{"path":1605,"title":1606,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F06-post-requests-and-form-body-data","POST Requests And Form Body Data",{"path":1608,"title":1609,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F07-css-fundamentals-selectors-properties-and-values","CSS Fundamentals: Selectors, Properties, And Values",{"path":1611,"title":1612,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F08-the-box-model-margin-border-padding-and-content","The Box Model: Margin, Border, Padding, And Content",{"path":1614,"title":1615,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F09-page-layout-with-flexbox","Page Layout With Flexbox",{"path":1617,"title":1618,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F09a-css-positioning-fixed-headers-and-body-offsets","CSS Positioning: Fixed Headers And Body Offsets",{"path":1620,"title":1621,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F10-selecting-and-changing-elements-with-javascript","Selecting And Changing Elements With JavaScript",{"path":1623,"title":1624,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F11-inline-validation-and-client-side-feedback","Inline Validation And Client-Side Feedback",{"path":1626,"title":1627,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F12-basic-web-accessibility-habits","Basic Web Accessibility Habits",{"path":1629,"title":1630,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F01-why-web-applications-need-a-database","Why Web Applications Need A Database",{"path":1632,"title":1633,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F02-relational-concepts-tables-rows-columns-and-primary-keys","Relational Concepts: Tables, Rows, Columns, And Primary Keys",{"path":1635,"title":1636,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F03-writing-sql-create-insert-select-update-delete","Writing SQL: CREATE, INSERT, SELECT, UPDATE, DELETE",{"path":1638,"title":1639,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F04-creating-tables-with-sql-scripts","Creating Tables With SQL Scripts",{"path":1641,"title":1642,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F05-connecting-php-to-mysql-with-pdo","Connecting PHP To MySQL With PDO",{"path":1644,"title":1645,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F06-parameterized-queries-and-sql-injection-prevention","Parameterized Queries And SQL Injection Prevention",{"path":1647,"title":1648,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F07-building-a-registration-page","Building A Registration Page",{"path":1650,"title":1651,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F08-hashing-passwords-with-password-hash","Hashing Passwords With password_hash()",{"path":1653,"title":1654,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F09-building-a-login-page","Building A Login Page",{"path":1656,"title":1657,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F10-sessions-remembering-the-logged-in-user","Sessions: Remembering The Logged-In User",{"path":1659,"title":1660,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F11-cookies-persistent-client-side-state","Cookies: Persistent Client-Side State",{"path":1662,"title":1663,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F12-navigation-that-responds-to-login-state","Navigation That Responds To Login State",{"path":1665,"title":1666,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F01-why-client-side-validation-is-not-enough","Why Client-Side Validation Is Not Enough",{"path":1668,"title":1669,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F02-sanitizing-and-escaping-user-input","Sanitizing And Escaping User Input",{"path":1671,"title":1672,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F03-required-fields-and-length-rules","Required Fields And Length Rules",{"path":1674,"title":1675,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F04-regular-expressions-for-pattern-matching","Regular Expressions For Pattern Matching",{"path":1677,"title":1678,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F05-server-side-validation-in-php","Server-Side Validation In PHP",{"path":1680,"title":1681,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F06-cross-site-scripting-xss-prevention","Cross-Site Scripting (XSS) Prevention",{"path":1683,"title":1684,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F07-flash-messages-and-persistent-feedback","Flash Messages And Persistent Feedback",{"path":1686,"title":1687,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F08-allowing-login-by-username-or-email","Allowing Login By Username Or Email",{"path":1689,"title":1690,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F09-building-a-profile-edit-page","Building A Profile Edit Page",{"path":1692,"title":1693,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F10-debugging-account-and-authentication-problems","Debugging Account And Authentication Problems",{"path":1695,"title":1696,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F11-review-the-full-account-system-so-far","Review: The Full Account System So Far",{"path":1698,"title":1699,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F01-role-based-access-control","Role-Based Access Control",{"path":1701,"title":1702,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F02-storing-roles-in-the-database","Storing Roles In The Database",{"path":1704,"title":1705,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F03-protecting-a-page-with-an-access-check","Protecting A Page With An Access Check",{"path":1707,"title":1708,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F04-safe-redirects-after-login-and-logout","Safe Redirects After Login And Logout",{"path":1710,"title":1711,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F05-listing-records-from-the-database","Listing Records From The Database",{"path":1713,"title":1714,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F06-creating-new-records-with-a-form","Creating New Records With A Form",{"path":1716,"title":1717,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F07-editing-existing-records","Editing Existing Records",{"path":1719,"title":1720,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F08-deleting-records-safely","Deleting Records Safely",{"path":1722,"title":1723,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F09-ownership-linking-records-to-users","Ownership: Linking Records To Users",{"path":1725,"title":1726,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F10-first-project-milestone-checklist","First Project Milestone Checklist",{"path":1728,"title":1729,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F11-organizing-growing-php-applications","Organizing Growing PHP Applications",{"path":1731,"title":1732,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F12-reading-a-growing-php-application","Reading A Growing PHP Application",{"path":1734,"title":1735,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F01-what-asynchronous-requests-ajax-solve","What Asynchronous Requests (AJAX) Solve",{"path":1737,"title":1738,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F02-json-a-common-data-format-for-the-web","JSON: A Common Data Format For The Web",{"path":1740,"title":1741,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F03-building-a-php-endpoint-that-returns-json","Building A PHP Endpoint That Returns JSON",{"path":1743,"title":1744,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F04-sending-requests-from-javascript-with-fetch","Sending Requests From JavaScript With Fetch",{"path":1746,"title":1747,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F05-handling-fetch-responses-and-errors","Handling Fetch Responses And Errors",{"path":1749,"title":1750,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F06-updating-the-page-with-returned-data","Updating The Page With Returned Data",{"path":1752,"title":1753,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F07-introduction-to-rest-apis","Introduction To REST APIs",{"path":1755,"title":1756,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F08-reading-api-documentation","Reading API Documentation",{"path":1758,"title":1759,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F09-making-authenticated-api-calls-from-php","Making Authenticated API Calls From PHP",{"path":1761,"title":1762,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F10-storing-and-caching-api-responses","Storing And Caching API Responses",{"path":1764,"title":1765,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F11-cors-and-cross-origin-request-basics","CORS And Cross-Origin Request Basics",{"path":1767,"title":1768,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F12-browser-devtools-for-web-application-debugging","Browser DevTools For Web Application Debugging",{"path":1770,"title":1771,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F01-jquery-simplified-dom-and-event-work","jQuery: Simplified DOM And Event Work",{"path":1773,"title":1774,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F02-selecting-elements-with-jquery","Selecting Elements With jQuery",{"path":1776,"title":1777,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F03-responding-to-events-clicks-inputs-and-submissions","Responding To Events: Clicks, Inputs, And Submissions",{"path":1779,"title":1780,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F04-updating-the-dom-after-a-user-action","Updating The DOM After A User Action",{"path":1782,"title":1783,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F05-sending-ajax-requests-with-jquery","Sending AJAX Requests With jQuery",{"path":1785,"title":1786,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F06-saving-external-api-data-through-php","Saving External API Data Through PHP",{"path":1788,"title":1789,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F07-saving-user-created-records","Saving User-Created Records",{"path":1791,"title":1792,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F08-building-a-project-listing-page","Building A Project Listing Page",{"path":1794,"title":1795,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F09-inline-editing-and-detail-views","Inline Editing And Detail Views",{"path":1797,"title":1798,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F10-second-project-milestone-checklist","Second Project Milestone Checklist",{"path":1800,"title":1801,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F01-foreign-keys-and-referential-integrity","Foreign Keys And Referential Integrity",{"path":1803,"title":1804,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F02-joining-tables-inner-join-left-join","Joining Tables: INNER JOIN, LEFT JOIN",{"path":1806,"title":1807,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F03-user-owned-records-and-access-enforcement","User-Owned Records And Access Enforcement",{"path":1809,"title":1810,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F04-connecting-api-data-to-user-records","Connecting API Data To User Records",{"path":1812,"title":1813,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F05-searching-and-filtering-with-sql","Searching And Filtering With SQL",{"path":1815,"title":1816,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F06-pagination-displaying-records-in-pages","Pagination: Displaying Records In Pages",{"path":1818,"title":1819,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F07-aggregate-functions-count-sum-avg","Aggregate Functions: COUNT, SUM, AVG",{"path":1821,"title":1822,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F08-simple-analytics-and-summary-views","Simple Analytics And Summary Views",{"path":1824,"title":1825,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F09-third-project-milestone-checklist","Third Project Milestone Checklist",{"path":1827,"title":1828,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F01-public-pages-and-unauthenticated-views","Public Pages And Unauthenticated Views",{"path":1830,"title":1831,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F02-user-profile-and-activity-pages","User Profile And Activity Pages",{"path":1833,"title":1834,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F03-refreshing-and-expiring-external-api-data","Refreshing And Expiring External API Data",{"path":1836,"title":1837,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F04-application-wide-security-audit","Application-Wide Security Audit",{"path":1839,"title":1840,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F05-cross-site-request-forgery-csrf-protection","Cross-Site Request Forgery (CSRF) Protection",{"path":1842,"title":1843,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F06-qa-testing-and-collecting-evidence","QA Testing And Collecting Evidence",{"path":1845,"title":1846,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F07-production-environment-checklist","Production Environment Checklist",{"path":1848,"title":1849,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F08-writing-a-project-readme","Writing A Project README",{"path":1851,"title":1852,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F09-final-presentation-and-code-walkthrough","Final Presentation And Code Walkthrough",{"path":1854,"title":1855,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F10-configuration-drift-and-secrets-checks","Configuration Drift And Secrets Checks",{"path":1857,"title":1858,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F01-what-this-course-is-building","Quiz - What Internet Applications Build","ready",{"path":1861,"title":1862,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F02-files-folders-and-project-structure","Quiz - Files, Folders, And Project Structure",{"path":1864,"title":1865,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F02a-basic-cli-commands-for-course-work","Quiz - Basic CLI Commands For Web Development",{"path":1867,"title":1868,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F02b-install-git-and-terminal-tools","Quiz - Install Git And Terminal Tools",{"path":1870,"title":1871,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F03-version-control-with-git-and-github","Quiz - Version Control With Git And GitHub",{"path":1873,"title":1874,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F03a-local-development-environment","Quiz - Set Up A Local Development Environment",{"path":1876,"title":1877,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F04-adding-the-instructor-template-to-your-repository","Quiz - Starting From A Starter Template",{"path":1879,"title":1880,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F05-editing-locally-and-seeing-changes-run","Quiz - Editing Locally And Seeing Changes Run",{"path":1882,"title":1883,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F06-building-a-local-ubuntu-web-server","Quiz - Building A Local Ubuntu Web Server",{"path":1885,"title":1886,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F07-git-recovery-and-common-mistakes","Quiz - Git Recovery And Common Mistakes",{"path":1888,"title":1889,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F08-installing-apache-and-php","Quiz - Installing Apache, PHP, And MySQL",{"path":1891,"title":1892,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F09-your-first-php-page-through-apache","Quiz - Your First PHP Page Through Apache",{"path":1894,"title":1895,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F10-how-http-works-requests-and-responses","Quiz - How HTTP Works: Requests And Responses",{"path":1897,"title":1898,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F11-http-methods-get-post-and-status-codes","Quiz - HTTP Methods: GET, POST, And Status Codes",{"path":1900,"title":1901,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F12-local-qa-and-production-environments","Quiz - Local, QA, And Production Environments",{"path":1903,"title":1904,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F01-how-php-runs-on-the-server","Quiz - How PHP Runs On The Server",{"path":1906,"title":1907,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F02-displaying-output-with-php","Quiz - Displaying Output With PHP",{"path":1909,"title":1910,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F03-displaying-output-with-javascript","Quiz - Displaying Output With JavaScript",{"path":1912,"title":1913,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F04-variables-storing-and-naming-values","Quiz - Variables: Storing And Naming Values",{"path":1915,"title":1916,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F05-data-types-strings-numbers-booleans-and-null","Quiz - Data Types: Strings, Numbers, Booleans, And Null",{"path":1918,"title":1919,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F06-arrays-storing-lists-of-values","Quiz - Arrays: Storing Lists Of Values",{"path":1921,"title":1922,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F07-conditional-statements-making-decisions","Quiz - Conditional Statements: Making Decisions",{"path":1924,"title":1925,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F08-loops-repeating-actions","Quiz - Loops: Repeating Actions",{"path":1927,"title":1928,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F09-functions-reusable-blocks-of-logic","Quiz - Functions: Reusable Blocks Of Logic",{"path":1930,"title":1931,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F10-reading-and-debugging-error-messages","Quiz - Reading And Debugging Error Messages",{"path":1933,"title":1934,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F01-html-structure-and-meaning","Quiz - HTML: Structure And Meaning",{"path":1936,"title":1937,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F02-writing-a-valid-html-document","Quiz - Writing A Valid HTML Document",{"path":1939,"title":1940,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F03-common-html-elements-and-semantic-tags","Quiz - Common HTML Elements And Semantic Tags",{"path":1942,"title":1943,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F04-building-forms-inputs-labels-and-buttons","Quiz - Building Forms: Inputs, Labels, And Buttons",{"path":1945,"title":1946,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F05-get-requests-and-query-string-data","Quiz - GET Requests And Query String Data",{"path":1948,"title":1949,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F06-post-requests-and-form-body-data","Quiz - POST Requests And Form Body Data",{"path":1951,"title":1952,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F07-css-fundamentals-selectors-properties-and-values","Quiz - CSS Fundamentals: Selectors, Properties, And Values",{"path":1954,"title":1955,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F08-the-box-model-margin-border-padding-and-content","Quiz - The Box Model: Margin, Border, Padding, And Content",{"path":1957,"title":1958,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F09-page-layout-with-flexbox","Quiz - Page Layout With Flexbox",{"path":1960,"title":1961,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F09a-css-positioning-fixed-headers-and-body-offsets","Quiz - CSS Positioning: Fixed Headers And Body Offsets",{"path":1963,"title":1964,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F10-selecting-and-changing-elements-with-javascript","Quiz - Selecting And Changing Elements With JavaScript",{"path":1966,"title":1967,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F11-inline-validation-and-client-side-feedback","Quiz - Inline Validation And Client-Side Feedback",{"path":1969,"title":1970,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F12-basic-web-accessibility-habits","Quiz - Basic Web Accessibility Habits",{"path":1972,"title":1973,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F04-databases-and-user-accounts\u002F01-why-web-applications-need-a-database","Quiz - Why Web Applications Need A Database",{"path":1975,"title":1976,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F04-databases-and-user-accounts\u002F02-relational-concepts-tables-rows-columns-and-primary-keys","Quiz - Relational Concepts: Tables, Rows, Columns, And Primary Keys",{"path":1978,"title":1979,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F04-databases-and-user-accounts\u002F03-writing-sql-create-insert-select-update-delete","Quiz - Writing SQL: CREATE, INSERT, SELECT, UPDATE, DELETE",{"path":1981,"title":1982,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F04-databases-and-user-accounts\u002F04-creating-tables-with-sql-scripts","Quiz - Creating Tables With SQL Scripts",{"path":1984,"title":1985,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F04-databases-and-user-accounts\u002F05-connecting-php-to-mysql-with-pdo","Quiz - Connecting PHP To MySQL With PDO",{"path":1987,"title":1988,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F04-databases-and-user-accounts\u002F06-parameterized-queries-and-sql-injection-prevention","Quiz - Parameterized Queries And SQL Injection Prevention",{"path":1990,"title":1991,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F04-databases-and-user-accounts\u002F07-building-a-registration-page","Quiz - Building A Registration Page",{"path":1993,"title":1994,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F04-databases-and-user-accounts\u002F08-hashing-passwords-with-password-hash","Quiz - Hashing Passwords With password_hash()",{"path":1996,"title":1997,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F04-databases-and-user-accounts\u002F09-building-a-login-page","Quiz - Building A Login Page",{"path":1999,"title":2000,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F04-databases-and-user-accounts\u002F10-sessions-remembering-the-logged-in-user","Quiz - Sessions: Remembering The Logged-In User",{"path":2002,"title":2003,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F04-databases-and-user-accounts\u002F11-cookies-persistent-client-side-state","Quiz - Cookies: Persistent Client-Side State",{"path":2005,"title":2006,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F04-databases-and-user-accounts\u002F12-navigation-that-responds-to-login-state","Quiz - Navigation That Responds To Login State",{"path":2008,"title":2009,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F01-why-client-side-validation-is-not-enough","Quiz - Why Client-Side Validation Is Not Enough",{"path":2011,"title":2012,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F02-sanitizing-and-escaping-user-input","Quiz - Sanitizing And Escaping User Input",{"path":2014,"title":2015,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F03-required-fields-and-length-rules","Quiz - Required Fields And Length Rules",{"path":2017,"title":2018,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F04-regular-expressions-for-pattern-matching","Quiz - Regular Expressions For Pattern Matching",{"path":2020,"title":2021,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F05-server-side-validation-in-php","Quiz - Server-Side Validation In PHP",{"path":2023,"title":2024,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F06-cross-site-scripting-xss-prevention","Quiz - Cross-Site Scripting (XSS) Prevention",{"path":2026,"title":2027,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F07-flash-messages-and-persistent-feedback","Quiz - Flash Messages And Persistent Feedback",{"path":2029,"title":2030,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F08-allowing-login-by-username-or-email","Quiz - Allowing Login By Username Or Email",{"path":2032,"title":2033,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F09-building-a-profile-edit-page","Quiz - Building A Profile Edit Page",{"path":2035,"title":2036,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F10-debugging-account-and-authentication-problems","Quiz - Debugging Account And Authentication Problems",{"path":2038,"title":2039,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F11-review-the-full-account-system-so-far","Quiz - Review: The Full Account System So Far",{"path":2041,"title":2042,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F01-role-based-access-control","Quiz - Role-Based Access Control",{"path":2044,"title":2045,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F02-storing-roles-in-the-database","Quiz - Storing Roles In The Database",{"path":2047,"title":2048,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F03-protecting-a-page-with-an-access-check","Quiz - Protecting A Page With An Access Check",{"path":2050,"title":2051,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F04-safe-redirects-after-login-and-logout","Quiz - Safe Redirects After Login And Logout",{"path":2053,"title":2054,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F05-listing-records-from-the-database","Quiz - Listing Records From The Database",{"path":2056,"title":2057,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F06-creating-new-records-with-a-form","Quiz - Creating New Records With A Form",{"path":2059,"title":2060,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F07-editing-existing-records","Quiz - Editing Existing Records",{"path":2062,"title":2063,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F08-deleting-records-safely","Quiz - Deleting Records Safely",{"path":2065,"title":2066,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F09-ownership-linking-records-to-users","Quiz - Ownership: Linking Records To Users",{"path":2068,"title":2069,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F10-first-project-milestone-checklist","Quiz - First Project Milestone Checklist",{"path":2071,"title":2072,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F11-organizing-growing-php-applications","Quiz - Organizing Growing PHP Applications",{"path":2074,"title":2075,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F12-reading-a-growing-php-application","Quiz - Reading A Growing PHP Application",{"path":2077,"title":2078,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F01-what-asynchronous-requests-ajax-solve","Quiz - What Asynchronous Requests (AJAX) Solve",{"path":2080,"title":2081,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F02-json-a-common-data-format-for-the-web","Quiz - JSON: A Common Data Format For The Web",{"path":2083,"title":2084,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F03-building-a-php-endpoint-that-returns-json","Quiz - Building A PHP Endpoint That Returns JSON",{"path":2086,"title":2087,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F04-sending-requests-from-javascript-with-fetch","Quiz - Sending Requests From JavaScript With Fetch",{"path":2089,"title":2090,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F05-handling-fetch-responses-and-errors","Quiz - Handling Fetch Responses And Errors",{"path":2092,"title":2093,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F06-updating-the-page-with-returned-data","Quiz - Updating The Page With Returned Data",{"path":2095,"title":2096,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F07-introduction-to-rest-apis","Quiz - Introduction To REST APIs",{"path":2098,"title":2099,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F08-reading-api-documentation","Quiz - Reading API Documentation",{"path":2101,"title":2102,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F09-making-authenticated-api-calls-from-php","Quiz - Making Authenticated API Calls From PHP",{"path":2104,"title":2105,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F10-storing-and-caching-api-responses","Quiz - Storing And Caching API Responses",{"path":2107,"title":2108,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F11-cors-and-cross-origin-request-basics","Quiz - CORS And Cross-Origin Request Basics",{"path":2110,"title":2111,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F12-browser-devtools-for-web-application-debugging","Quiz - Browser DevTools For Web Application Debugging",{"path":2113,"title":2114,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F01-jquery-simplified-dom-and-event-work","Quiz - jQuery: Simplified DOM And Event Work",{"path":2116,"title":2117,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F02-selecting-elements-with-jquery","Quiz - Selecting Elements With jQuery",{"path":2119,"title":2120,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F03-responding-to-events-clicks-inputs-and-submissions","Quiz - Responding To Events: Clicks, Inputs, And Submissions",{"path":2122,"title":2123,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F04-updating-the-dom-after-a-user-action","Quiz - Updating The DOM After A User Action",{"path":2125,"title":2126,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F05-sending-ajax-requests-with-jquery","Quiz - Sending AJAX Requests With jQuery",{"path":2128,"title":2129,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F06-saving-external-api-data-through-php","Quiz - Saving External API Data Through PHP",{"path":2131,"title":2132,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F07-saving-user-created-records","Quiz - Saving User-Created Records",{"path":2134,"title":2135,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F08-building-a-project-listing-page","Quiz - Building A Project Listing Page",{"path":2137,"title":2138,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F09-inline-editing-and-detail-views","Quiz - Inline Editing And Detail Views",{"path":2140,"title":2141,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F10-second-project-milestone-checklist","Quiz - Second Project Milestone Checklist",{"path":2143,"title":2144,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F01-foreign-keys-and-referential-integrity","Quiz - Foreign Keys And Referential Integrity",{"path":2146,"title":2147,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F02-joining-tables-inner-join-left-join","Quiz - Joining Tables: INNER JOIN, LEFT JOIN",{"path":2149,"title":2150,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F03-user-owned-records-and-access-enforcement","Quiz - User-Owned Records And Access Enforcement",{"path":2152,"title":2153,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F04-connecting-api-data-to-user-records","Quiz - Connecting API Data To User Records",{"path":2155,"title":2156,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F05-searching-and-filtering-with-sql","Quiz - Searching And Filtering With SQL",{"path":2158,"title":2159,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F06-pagination-displaying-records-in-pages","Quiz - Pagination: Displaying Records In Pages",{"path":2161,"title":2162,"order":1198,"module":1198,"status":1198},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F07-aggregate-functions-count-sum-avg","Quiz - Aggregate Functions: COUNT, SUM, AVG",{"path":2164,"title":2165,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F08-simple-analytics-and-summary-views","Quiz - Simple Analytics And Summary Views",{"path":2167,"title":2168,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F09-third-project-milestone-checklist","Quiz - Third Project Milestone Checklist",{"path":2170,"title":2171,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F01-public-pages-and-unauthenticated-views","Quiz - Public Pages And Unauthenticated Views",{"path":2173,"title":2174,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F02-user-profile-and-activity-pages","Quiz - User Profile And Activity Pages",{"path":2176,"title":2177,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F03-refreshing-and-expiring-external-api-data","Quiz - Refreshing And Expiring External API Data",{"path":2179,"title":2180,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F04-application-wide-security-audit","Quiz - Application-Wide Security Audit",{"path":2182,"title":2183,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F05-cross-site-request-forgery-csrf-protection","Quiz - Cross-Site Request Forgery (CSRF) Protection",{"path":2185,"title":2186,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F06-qa-testing-and-collecting-evidence","Quiz - QA Testing And Collecting Evidence",{"path":2188,"title":2189,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F07-production-environment-checklist","Quiz - Production Environment Checklist",{"path":2191,"title":2192,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F08-writing-a-project-readme","Quiz - Writing A Project README",{"path":2194,"title":2195,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F09-final-presentation-and-code-walkthrough","Quiz - Final Presentation And Code Walkthrough",{"path":2197,"title":2198,"order":1198,"module":1198,"status":1859},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F10-configuration-drift-and-secrets-checks","Quiz - Configuration Drift And Secrets Checks",{"path":2200,"title":2201,"order":1220,"module":1272,"status":1221},"\u002Finternet-applications\u002Fbook\u002Freference\u002Fa-command-line-basics","Command Line Basics",{"path":2203,"title":2204,"order":14,"module":1272,"status":1221},"\u002Finternet-applications\u002Fbook\u002Freference\u002Fb-git-and-github-recovery","Git And GitHub Recovery",{"path":2206,"title":2207,"order":1192,"module":1272,"status":1221},"\u002Finternet-applications\u002Fbook\u002Freference\u002Fc-apache-and-php-troubleshooting","Apache And PHP Troubleshooting",{"path":2209,"title":2210,"order":1241,"module":1272,"status":1221},"\u002Finternet-applications\u002Fbook\u002Freference\u002Fd-mysql-troubleshooting","MySQL Troubleshooting",{"path":2212,"title":2213,"order":1219,"module":1272,"status":1221},"\u002Finternet-applications\u002Fbook\u002Freference\u002Fe-http-request-and-response-reference","HTTP Request And Response Reference",{"path":2215,"title":2216,"order":1251,"module":1272,"status":1221},"\u002Finternet-applications\u002Fbook\u002Freference\u002Ff-common-security-mistakes","Common Security Mistakes",{"path":2218,"title":2219,"order":1467,"module":1272,"status":1221},"\u002Finternet-applications\u002Fbook\u002Freference\u002Fg-ai-collaboration-and-disclosure","AI Collaboration And Disclosure",{"path":2221,"title":2222,"order":1272,"module":1272,"status":1221},"\u002Finternet-applications\u002Fbook\u002Ftoc","Internet Applications: Table of Contents",{"path":2224,"title":2225,"order":1187,"module":1220,"status":1221},"\u002Finternet-applications\u002Flabs\u002F01-git-recovery-and-submission-evidence","Lab 1: Git Recovery And Submission Evidence",{"path":2227,"title":2228,"order":1228,"module":14,"status":1221},"\u002Finternet-applications\u002Flabs\u002F02-php-output-and-error-reading","Lab 2: PHP Output And Error Reading",{"path":2230,"title":2231,"order":1351,"module":1192,"status":1221},"\u002Finternet-applications\u002Flabs\u002F03-form-methods-and-sticky-values","Lab 3: Form Methods And Sticky Values",{"path":2233,"title":2234,"order":1347,"module":1241,"status":1221},"\u002Finternet-applications\u002Flabs\u002F04-pdo-query-and-sql-evidence","Lab 4: PDO Query And SQL Evidence",{"path":2236,"title":2237,"order":1367,"module":1219,"status":1221},"\u002Finternet-applications\u002Flabs\u002F05-validation-debugging-and-friendly-errors","Lab 5: Validation, Debugging, And Friendly Errors",{"path":2239,"title":2240,"order":1371,"module":1251,"status":1221},"\u002Finternet-applications\u002Flabs\u002F06-role-protected-crud-check","Lab 6: Role-Protected CRUD Check",{"path":2242,"title":2243,"order":2244,"module":1251,"status":1221},"\u002Finternet-applications\u002Flabs\u002F06a-relative-paths-includes-and-feature-trace","Lab 6A: Relative Paths, Includes, And Feature Tracing","61",{"path":2246,"title":2247,"order":1404,"module":1467,"status":1221},"\u002Finternet-applications\u002Flabs\u002F07-json-endpoint-and-fetch-check","Lab 7: JSON Endpoint And Fetch Check",{"path":2249,"title":2250,"order":1408,"module":1255,"status":1221},"\u002Finternet-applications\u002Flabs\u002F08-jquery-ajax-interface-check","Lab 8: jQuery AJAX Interface Check",{"path":2252,"title":2253,"order":1412,"module":1262,"status":1221},"\u002Finternet-applications\u002Flabs\u002F09-search-pagination-and-summary-check","Lab 9: Search, Pagination, And Summary Check",{"path":2255,"title":2256,"order":1416,"module":1187,"status":1221},"\u002Finternet-applications\u002Flabs\u002F10-final-security-and-readme-check","Lab 10: Final Security And README Check",{"path":2258,"title":2259,"order":1198,"module":1198,"status":1221},"\u002Finternet-applications\u002Fpresentations-revised\u002F00-revision-plan","Internet Applications Presentation Revision Plan",{"path":2261,"title":2262,"order":1198,"module":1198,"status":1221},"\u002Finternet-applications\u002Fpresentations-revised\u002F01-20-minute-recording-plan","Internet Applications Twenty-Minute Recording Plan",{"path":2264,"title":1382,"order":1272,"module":1220,"status":1200},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F00-learn-courses-and-discord",{"path":2266,"title":1385,"order":1187,"module":1220,"status":1200},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F01-basic-cli-commands",{"path":2268,"title":1388,"order":1228,"module":1220,"status":1200},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F02-install-git-tools",{"path":2270,"title":1391,"order":1351,"module":1220,"status":1200},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F03-setup-github-ssh",{"path":2272,"title":1394,"order":1347,"module":1220,"status":1200},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F04-git-commands-prs",{"path":2274,"title":1397,"order":1367,"module":1220,"status":1200},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F05-setup-local-development-environment",{"path":2276,"title":1400,"order":1371,"module":1220,"status":1200},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F06-add-instructor-template-to-your-repository",{"path":2278,"title":1403,"order":1404,"module":1220,"status":1200},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F07-qa-prod-branches",{"path":2280,"title":1407,"order":1408,"module":1220,"status":1200},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F08-render-setup",{"path":2282,"title":1411,"order":1412,"module":1220,"status":1200},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F09-local-ubuntu-web-server-virtualbox",{"path":2284,"title":1415,"order":1416,"module":1220,"status":1221},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F10-local-ubuntu-web-server-vmware",{"path":2286,"title":1419,"order":1187,"module":14,"status":1200},"\u002Finternet-applications\u002Fpresentations\u002F02-php-and-javascript-basics\u002F01-compare-php-and-javascript",{"path":2288,"title":1422,"order":1228,"module":14,"status":1200},"\u002Finternet-applications\u002Fpresentations\u002F02-php-and-javascript-basics\u002F02-conditions-loops-functions",{"path":1194,"title":5,"order":1187,"module":1192,"status":1200},{"path":2291,"title":1427,"order":1228,"module":1192,"status":1200},"\u002Finternet-applications\u002Fpresentations\u002F03-html-forms-css-and-dom\u002F02-intro-to-forms-and-get-post",{"path":2293,"title":1430,"order":1351,"module":1192,"status":1200},"\u002Finternet-applications\u002Fpresentations\u002F03-html-forms-css-and-dom\u002F03-understanding-css-js-selectors-and-dom-updates",{"path":2295,"title":1433,"order":1187,"module":1241,"status":1200},"\u002Finternet-applications\u002Fpresentations\u002F04-databases-and-user-accounts\u002F01-intro-to-sql",{"path":2297,"title":1436,"order":1228,"module":1241,"status":1200},"\u002Finternet-applications\u002Fpresentations\u002F04-databases-and-user-accounts\u002F02-project-database-setup",{"path":2299,"title":1439,"order":1351,"module":1241,"status":1200},"\u002Finternet-applications\u002Fpresentations\u002F04-databases-and-user-accounts\u002F03-user-registration",{"path":2301,"title":1442,"order":1347,"module":1241,"status":1200},"\u002Finternet-applications\u002Fpresentations\u002F04-databases-and-user-accounts\u002F04-user-login",{"path":2303,"title":1445,"order":1187,"module":1219,"status":1200},"\u002Finternet-applications\u002Fpresentations\u002F05-validation-and-user-profiles\u002F01-intro-to-regex",{"path":2305,"title":1448,"order":1228,"module":1219,"status":1200},"\u002Finternet-applications\u002Fpresentations\u002F05-validation-and-user-profiles\u002F02-project-shared-helpers",{"path":2307,"title":2308,"order":1351,"module":1219,"status":1200},"\u002Finternet-applications\u002Fpresentations\u002F05-validation-and-user-profiles\u002F03-flash-messages-and-redirect-feedback","Flash Messages And Redirect Feedback",{"path":2310,"title":1454,"order":1347,"module":1219,"status":1200},"\u002Finternet-applications\u002Fpresentations\u002F05-validation-and-user-profiles\u002F04-user-profile",{"path":2312,"title":1457,"order":1187,"module":1251,"status":1200},"\u002Finternet-applications\u002Fpresentations\u002F06-roles-and-crud-pages\u002F01-user-roles-authorization",{"path":2314,"title":1460,"order":1228,"module":1251,"status":1200},"\u002Finternet-applications\u002Fpresentations\u002F06-roles-and-crud-pages\u002F02-user-login-enhancement",{"path":2316,"title":1463,"order":1351,"module":1251,"status":1200},"\u002Finternet-applications\u002Fpresentations\u002F06-roles-and-crud-pages\u002F03-dynamic-content",{"path":2318,"title":1466,"order":1187,"module":1467,"status":1200},"\u002Finternet-applications\u002Fpresentations\u002F07-api-data-and-database-helpers\u002F01-working-with-api-data",{"path":2320,"title":1470,"order":1228,"module":1467,"status":1200},"\u002Finternet-applications\u002Fpresentations\u002F07-api-data-and-database-helpers\u002F02-api-integration",{"path":2322,"title":1473,"order":1351,"module":1467,"status":1200},"\u002Finternet-applications\u002Fpresentations\u002F07-api-data-and-database-helpers\u002F03-database-utility-functions",{"path":2324,"title":1476,"order":1187,"module":1255,"status":1200},"\u002Finternet-applications\u002Fpresentations\u002F08-reusable-components-jquery-and-ajax\u002F01-milestone-2-bootstrap-and-reusability",{"path":2326,"title":1479,"order":1228,"module":1255,"status":1200},"\u002Finternet-applications\u002Fpresentations\u002F08-reusable-components-jquery-and-ajax\u002F02-jquery-brief-intro",{"path":2328,"title":1482,"order":1351,"module":1255,"status":1200},"\u002Finternet-applications\u002Fpresentations\u002F08-reusable-components-jquery-and-ajax\u002F03-intro-to-ajax",{"path":2330,"title":1485,"order":1187,"module":1262,"status":1200},"\u002Finternet-applications\u002Fpresentations\u002F09-relational-data-search-and-pagination\u002F01-user-associations",{"path":2332,"title":1488,"order":1228,"module":1262,"status":1200},"\u002Finternet-applications\u002Fpresentations\u002F09-relational-data-search-and-pagination\u002F02-association-views-and-pagination",{"path":2334,"title":1491,"order":1187,"module":1187,"status":1200},"\u002Finternet-applications\u002Fpresentations\u002F10-association-assignment-and-security\u002F01-association-assignment-and-public-profiles",{"path":2336,"title":1494,"order":1228,"module":1187,"status":1200},"\u002Finternet-applications\u002Fpresentations\u002F10-association-assignment-and-security\u002F02-reusable-csrf-protection",{"path":2338,"title":1497,"order":1220,"module":1272,"status":1200},"\u002Finternet-applications\u002Fsyllabus\u002Fsummer-2026",{"path":2340,"title":2341,"order":2342,"module":1187,"status":1221},"\u002Finternet-applications\u002Fworksheets\u002Ffinal-project-submission-worksheet","Final Project Submission Worksheet","110",{"path":2344,"title":2345,"order":2346,"module":1251,"status":1221},"\u002Finternet-applications\u002Fworksheets\u002Flegacy-milestone-01-worksheet","Legacy Milestone 1 Worksheet","118",{"path":2348,"title":2349,"order":2350,"module":1251,"status":1221},"\u002Finternet-applications\u002Fworksheets\u002Flegacy-multi-dimension-php-problems-worksheet","Legacy Multi-Dimension PHP Problems Worksheet","119",{"path":2352,"title":2353,"order":2342,"module":1251,"status":1221},"\u002Finternet-applications\u002Fworksheets\u002Fmilestone-01-account-access-and-profile-worksheet","IT202 Milestone 1 - 2026",{"path":2355,"title":2356,"order":2357,"module":1255,"status":1221},"\u002Finternet-applications\u002Fworksheets\u002Fmilestone-02-api-data-and-crud-worksheet","IT202 Milestone 2 - 2026","120",{"path":2359,"title":2360,"order":2361,"module":1262,"status":1221},"\u002Finternet-applications\u002Fworksheets\u002Fmilestone-03-user-associations-worksheet","IT202 Milestone 3 - 2026","130",{"path":2363,"title":2364,"order":1187,"module":1220,"status":1221},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-01-git-and-local-server-worksheet","Module 1 Worksheet: Git, GitHub, And Local Server Evidence",{"path":2366,"title":2367,"order":1228,"module":14,"status":1221},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-02-php-and-debugging-worksheet","Module 2 Worksheet: PHP Challenge Scenarios",{"path":2369,"title":2370,"order":1351,"module":1192,"status":1221},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-03-forms-css-and-dom-worksheet","Module 3 Worksheet: HTML, CSS, JS Challenges",{"path":2372,"title":2373,"order":1347,"module":1241,"status":1221},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-04-database-auth-and-sessions-worksheet","Module 4 Worksheet: SQL Todo Challenge",{"path":2375,"title":2376,"order":1367,"module":1219,"status":1221},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-05-validation-and-debugging-worksheet","Module 5 Worksheet: Validation And Debugging Evidence",{"path":2378,"title":2379,"order":1371,"module":1251,"status":1221},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-06-authorization-and-crud-worksheet","Module 6 Worksheet: Authorization And CRUD Evidence",{"path":2381,"title":2382,"order":2383,"module":1251,"status":1221},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-06-multi-dimensional-php-arrays-worksheet","Module 06 Worksheet: Multi-Dimensional PHP Arrays","62",{"path":2385,"title":2386,"order":1404,"module":1467,"status":1221},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-07-api-testing-worksheet","Module 07 Worksheet: Project API Testing",{"path":2388,"title":2389,"order":1408,"module":1255,"status":1221},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-08-jquery-and-dynamic-ui-worksheet","Module 8 Worksheet: jQuery And Dynamic UI Evidence",{"path":2391,"title":2392,"order":1412,"module":1262,"status":1221},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-09-search-pagination-and-summary-worksheet","Module 9 Worksheet: Search, Pagination, And Summary Evidence",{"path":2394,"title":2395,"order":1416,"module":1187,"status":1221},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-10-final-project-readiness-worksheet","Module 10 Worksheet: Final Project Readiness Evidence",{"path":2397,"title":1385,"order":1187,"module":1220,"status":1221},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F01-module-1-course-setup\u002F01-basic-cli-commands",{"path":2399,"title":1388,"order":1228,"module":1220,"status":1221},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F01-module-1-course-setup\u002F02-install-git-tools",{"path":2401,"title":1391,"order":1351,"module":1220,"status":1221},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F01-module-1-course-setup\u002F03-setup-github-ssh",{"path":2403,"title":1394,"order":1347,"module":1220,"status":1221},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F01-module-1-course-setup\u002F04-git-commands-prs",{"path":2405,"title":2406,"order":1367,"module":1220,"status":1221},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F01-module-1-course-setup\u002F05-course-repo-setup","Course Repository Setup",{"path":2408,"title":2409,"order":1371,"module":1220,"status":1221},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F01-module-1-course-setup\u002F06-java-environment-setup","Java Development Environment Setup",{"path":2411,"title":2412,"order":1187,"module":14,"status":1221},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F02-module-2-java-basics\u002F01-java-basics","Java Basics",{"path":2414,"title":2415,"order":1228,"module":14,"status":1221},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F02-module-2-java-basics\u002F02-flow-control","Java Flow Control",{"path":2417,"title":2418,"order":1351,"module":14,"status":1221},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F02-module-2-java-basics\u002F03-loops","Java Loops",{"path":2420,"title":2421,"order":1347,"module":14,"status":1221},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F02-module-2-java-basics\u002F04-collections","Java Arrays, Queue, Stack, ArrayList",{"path":2423,"title":2424,"order":1187,"module":1192,"status":1221},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F03-module-3-java-io-and-oop\u002F01-user-input","Java User Input",{"path":2426,"title":2427,"order":1228,"module":1192,"status":1221},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F03-module-3-java-io-and-oop\u002F02-oop-modifiers","Java Intro to OOP - Modifiers",{"path":2429,"title":2430,"order":1351,"module":1192,"status":1221},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F03-module-3-java-io-and-oop\u002F03-file-io","Java File I\u002FO",{"path":2432,"title":2433,"order":1347,"module":1192,"status":1221},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F03-module-3-java-io-and-oop\u002F04-recursion-trees","Java Recursion and Trees",{"path":2435,"title":2436,"order":1187,"module":1241,"status":1221},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F04-module-4-sockets-and-oop\u002F01-sockets-overview","Java Sockets: Overview",{"path":2438,"title":2439,"order":1228,"module":1241,"status":1221},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F04-module-4-sockets-and-oop\u002F02-oop-intermediate","Java OOP Intermediate",{"path":2441,"title":2442,"order":1351,"module":1241,"status":1221},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F04-module-4-sockets-and-oop\u002F03-multi-client-chat-part-1","Java Sockets: Multi-Client Chat Server Part 1",{"path":2444,"title":2445,"order":1187,"module":1219,"status":1221},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F05-module-5-multi-client-sockets\u002F01-multi-client-chat-part-2","Java Sockets: Multi-Client Chat Server Part 2",{"path":2447,"title":2448,"order":1228,"module":1251,"status":1221},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F06-module-6-milestone-2-prep\u002F02-prepare-milestone-2-2026","Java Advanced Programming Preparing for Milestone 2",{"path":2450,"title":2451,"order":1351,"module":1251,"status":1221},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F06-module-6-milestone-2-prep\u002F03-gameserver-ready-check","Java Advanced Programming Milestone 2: GameServer Ready Check",{"path":2453,"title":2454,"order":1187,"module":1467,"status":1221},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F07-module-7-game-rooms-and-turns\u002F01-game-rooms-ready-check","Java Advanced Programming Milestone 2: GameRooms and Ready Check",{"path":2456,"title":2457,"order":1228,"module":1467,"status":1221},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F07-module-7-game-rooms-and-turns\u002F02-round-robin-turns","Java Advanced Programming Milestone 2: Turn-based Turns (Round-Robin)",{"path":2459,"title":2460,"order":1351,"module":1467,"status":1221},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F07-module-7-game-rooms-and-turns\u002F03-phase-based-turns","Java Advanced Programming Milestone 2: Phase-based Turns",{"path":2462,"title":2463,"order":1347,"module":1467,"status":1221},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F07-module-7-game-rooms-and-turns\u002F04-simultaneous-turns","Java Advanced Programming Milestone 2: Simultaneous Turns",{"path":2465,"title":2466,"order":1367,"module":1467,"status":1221},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F07-module-7-game-rooms-and-turns\u002F05-individual-turns","Java Advanced Programming Milestone 2: Individual Turns",{"path":2468,"title":2469,"order":1187,"module":1255,"status":1221},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F08-module-8-grids-cards-and-ui\u002F01-grid-integration","Java Advanced Programming Milestone 2: Grid Integration",{"path":2471,"title":2472,"order":1228,"module":1255,"status":1221},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F08-module-8-grids-cards-and-ui\u002F02-card-integration","Java Advanced Programming Milestone 2: Cards Integration",{"path":2474,"title":2475,"order":1351,"module":1255,"status":1221},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F08-module-8-grids-cards-and-ui\u002F03-equals-6-mini-project","Java Advanced Programming Milestone 2: Equals 6 Mini Project",{"path":2477,"title":2478,"order":1347,"module":1255,"status":1221},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F08-module-8-grids-cards-and-ui\u002F04-nice-day-for-fishin","Java Advanced Programming Milestone 2: Project \"Nice Day For Fishin'\"",{"path":2480,"title":2481,"order":1367,"module":1255,"status":1221},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F08-module-8-grids-cards-and-ui\u002F05-java-ui-intro","Java Advanced Programming Java UI 2025",{"path":2483,"title":2484,"order":1187,"module":1262,"status":1221},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F09-module-9-ui-integration\u002F01-ui-integration-2026","UI Integration 2026",{"path":2486,"title":2487,"order":1228,"module":1262,"status":1221},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F09-module-9-ui-integration\u002F02-ui-drawing","UI Drawing",{"path":2489,"title":2490,"order":1351,"module":1262,"status":1221},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F09-module-9-ui-integration\u002F03-baseline-ui-integration","Baseline UI Integration",{"path":2492,"title":2493,"order":1347,"module":1262,"status":1221},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F09-module-9-ui-integration\u002F04-ndff-ui-integration","NDFF UI Integration",{"path":2495,"title":2496,"order":1367,"module":1262,"status":1221},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F09-module-9-ui-integration\u002F05-equals-6-ui","Equals 6 UI",{"path":2498,"title":2499,"order":1371,"module":1262,"status":1221},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F09-module-9-ui-integration\u002F06-popularity-mini-project","Popularity Mini Project",{"path":2501,"title":2502,"order":1187,"module":1187,"status":1221},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F10-module-10-wrap-up-and-deployment\u002F01-milestone-3-wrapup","Milestone 3 Wrapup",{"path":2504,"title":2505,"order":1228,"module":1187,"status":1221},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F10-module-10-wrap-up-and-deployment\u002F02-deploying-java-apps","Deploying Java Apps",{"path":2507,"title":2508,"order":1351,"module":1187,"status":1221},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F10-module-10-wrap-up-and-deployment\u002F03-ndff-away-spectator","NDFF Away Spectator",{"path":2510,"title":2511,"order":1220,"module":1272,"status":1200},"\u002Fjava-advanced-programming\u002F2e\u002Fsyllabus\u002Ffall-2026","IT114 - Advanced Programming for Information Technology",{"path":2513,"title":2514,"order":1187,"module":1220,"status":1221},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F01-course-setup-and-workflow\u002F01-course-tools-and-workflow","Course Tools And Workflow",{"path":2516,"title":2517,"order":1228,"module":1220,"status":1221},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F01-course-setup-and-workflow\u002F02-terminal-git-and-github","Terminal, Git, And GitHub Basics",{"path":2519,"title":2520,"order":1351,"module":1220,"status":1221},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F01-course-setup-and-workflow\u002F03-java-development-environment","Java Development Environment",{"path":2522,"title":2523,"order":1187,"module":14,"status":1221},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F02-java-basics\u002F01-java-program-shape","The Shape Of A Java Program",{"path":2525,"title":2526,"order":1228,"module":14,"status":1221},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F02-java-basics\u002F02-values-types-and-expressions","Values, Types, And Expressions",{"path":2528,"title":2529,"order":1351,"module":14,"status":1221},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F02-java-basics\u002F03-conditions-loops-and-collections","Conditions, Loops, And Collections",{"path":2531,"title":2532,"order":1187,"module":1192,"status":1221},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F03-java-input-io-and-oop\u002F01-user-input-and-output","User Input And Program Output",{"path":2534,"title":2535,"order":1228,"module":1192,"status":1221},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F03-java-input-io-and-oop\u002F02-classes-objects-and-modifiers","Classes, Objects, And Modifiers",{"path":2537,"title":2538,"order":1351,"module":1192,"status":1221},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F03-java-input-io-and-oop\u002F03-file-io-paths-and-exceptions","File I\u002FO, Paths, And Exceptions",{"path":2540,"title":2541,"order":1347,"module":1192,"status":1221},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F03-java-input-io-and-oop\u002F04-recursion-and-trees","Recursion And Tree Thinking",{"path":2543,"title":2544,"order":1187,"module":1241,"status":1221},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F04-sockets-and-oop\u002F01-sockets-client-server","Sockets And Client\u002FServer Thinking",{"path":2546,"title":2547,"order":1228,"module":1241,"status":1221},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F04-sockets-and-oop\u002F02-server-socket-flow","The ServerSocket Flow",{"path":2549,"title":2550,"order":1351,"module":1241,"status":1221},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F04-sockets-and-oop\u002F03-oop-for-socket-apps","OOP For Socket Applications",{"path":2552,"title":2553,"order":1187,"module":1219,"status":1221},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F05-multi-client-sockets\u002F01-multi-client-server-shape","Multi-Client Server Shape",{"path":2555,"title":2556,"order":1228,"module":1219,"status":1221},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F05-multi-client-sockets\u002F02-threads-shared-state-and-message-routing","Threads, Shared State, And Message Routing",{"path":2558,"title":2559,"order":1351,"module":1219,"status":1221},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F05-multi-client-sockets\u002F03-debugging-socket-programs","Debugging Socket Programs",{"path":2561,"title":2562,"order":1272,"module":1272,"status":1221},"\u002Fjava-advanced-programming\u002Fbook\u002Ftoc","Java Advanced Programming: Table of Contents",{"path":2564,"title":2565,"order":1198,"module":1198,"status":1221},"\u002Fjava-advanced-programming\u002Fpresentations-revised\u002F00-revision-plan","Java Advanced Programming Presentation Revision Plan",{"path":2567,"title":2568,"order":1198,"module":1198,"status":1221},"\u002Fjava-advanced-programming\u002Fpresentations-revised\u002F01-20-minute-recording-plan","Java Advanced Programming Twenty-Minute Recording Plan",{"path":2570,"title":1385,"order":1187,"module":1220,"status":1221},"\u002Fjava-advanced-programming\u002Fpresentations\u002F01-module-1-course-setup\u002F01-basic-cli-commands",{"path":2572,"title":1388,"order":1228,"module":1220,"status":1221},"\u002Fjava-advanced-programming\u002Fpresentations\u002F01-module-1-course-setup\u002F02-install-git-tools",{"path":2574,"title":1391,"order":1351,"module":1220,"status":1221},"\u002Fjava-advanced-programming\u002Fpresentations\u002F01-module-1-course-setup\u002F03-setup-github-ssh",{"path":2576,"title":1394,"order":1347,"module":1220,"status":1221},"\u002Fjava-advanced-programming\u002Fpresentations\u002F01-module-1-course-setup\u002F04-git-commands-prs",{"path":2578,"title":2406,"order":1367,"module":1220,"status":1221},"\u002Fjava-advanced-programming\u002Fpresentations\u002F01-module-1-course-setup\u002F05-course-repo-setup",{"path":2580,"title":2409,"order":1371,"module":1220,"status":1221},"\u002Fjava-advanced-programming\u002Fpresentations\u002F01-module-1-course-setup\u002F06-java-environment-setup",{"path":2582,"title":2412,"order":1187,"module":14,"status":1221},"\u002Fjava-advanced-programming\u002Fpresentations\u002F02-module-2-java-basics\u002F01-java-basics",{"path":2584,"title":2415,"order":1228,"module":14,"status":1221},"\u002Fjava-advanced-programming\u002Fpresentations\u002F02-module-2-java-basics\u002F02-flow-control",{"path":2586,"title":2418,"order":1351,"module":14,"status":1221},"\u002Fjava-advanced-programming\u002Fpresentations\u002F02-module-2-java-basics\u002F03-loops",{"path":2588,"title":2421,"order":1347,"module":14,"status":1221},"\u002Fjava-advanced-programming\u002Fpresentations\u002F02-module-2-java-basics\u002F04-collections",{"path":2590,"title":2424,"order":1187,"module":1192,"status":1221},"\u002Fjava-advanced-programming\u002Fpresentations\u002F03-module-3-java-io-and-oop\u002F01-user-input",{"path":2592,"title":2427,"order":1228,"module":1192,"status":1221},"\u002Fjava-advanced-programming\u002Fpresentations\u002F03-module-3-java-io-and-oop\u002F02-oop-modifiers",{"path":2594,"title":2430,"order":1351,"module":1192,"status":1221},"\u002Fjava-advanced-programming\u002Fpresentations\u002F03-module-3-java-io-and-oop\u002F03-file-io",{"path":2596,"title":2433,"order":1347,"module":1192,"status":1221},"\u002Fjava-advanced-programming\u002Fpresentations\u002F03-module-3-java-io-and-oop\u002F04-recursion-trees",{"path":2598,"title":2436,"order":1187,"module":1241,"status":1221},"\u002Fjava-advanced-programming\u002Fpresentations\u002F04-module-4-sockets-and-oop\u002F01-sockets-overview",{"path":2600,"title":2439,"order":1228,"module":1241,"status":1221},"\u002Fjava-advanced-programming\u002Fpresentations\u002F04-module-4-sockets-and-oop\u002F02-oop-intermediate",{"path":2602,"title":2442,"order":1351,"module":1241,"status":1221},"\u002Fjava-advanced-programming\u002Fpresentations\u002F04-module-4-sockets-and-oop\u002F03-multi-client-chat-part-1",{"path":2604,"title":2445,"order":1187,"module":1219,"status":1221},"\u002Fjava-advanced-programming\u002Fpresentations\u002F05-module-5-multi-client-sockets\u002F01-multi-client-chat-part-2",{"path":2606,"title":2607,"order":1187,"module":1251,"status":1221},"\u002Fjava-advanced-programming\u002Fpresentations\u002F06-module-6-milestone-2-prep\u002F01-prepare-milestone-2-2025","Java Advanced Programming Preparing for Milestone2 2025",{"path":2609,"title":2448,"order":1228,"module":1251,"status":1221},"\u002Fjava-advanced-programming\u002Fpresentations\u002F06-module-6-milestone-2-prep\u002F02-prepare-milestone-2-2026",{"path":2611,"title":2451,"order":1351,"module":1251,"status":1221},"\u002Fjava-advanced-programming\u002Fpresentations\u002F06-module-6-milestone-2-prep\u002F03-gameserver-ready-check",{"path":2613,"title":2454,"order":1187,"module":1467,"status":1221},"\u002Fjava-advanced-programming\u002Fpresentations\u002F07-module-7-game-rooms-and-turns\u002F01-game-rooms-ready-check",{"path":2615,"title":2457,"order":1228,"module":1467,"status":1221},"\u002Fjava-advanced-programming\u002Fpresentations\u002F07-module-7-game-rooms-and-turns\u002F02-round-robin-turns",{"path":2617,"title":2460,"order":1351,"module":1467,"status":1221},"\u002Fjava-advanced-programming\u002Fpresentations\u002F07-module-7-game-rooms-and-turns\u002F03-phase-based-turns",{"path":2619,"title":2463,"order":1347,"module":1467,"status":1221},"\u002Fjava-advanced-programming\u002Fpresentations\u002F07-module-7-game-rooms-and-turns\u002F04-simultaneous-turns",{"path":2621,"title":2466,"order":1367,"module":1467,"status":1221},"\u002Fjava-advanced-programming\u002Fpresentations\u002F07-module-7-game-rooms-and-turns\u002F05-individual-turns",{"path":2623,"title":2469,"order":1187,"module":1255,"status":1221},"\u002Fjava-advanced-programming\u002Fpresentations\u002F08-module-8-grids-cards-and-ui\u002F01-grid-integration",{"path":2625,"title":2472,"order":1228,"module":1255,"status":1221},"\u002Fjava-advanced-programming\u002Fpresentations\u002F08-module-8-grids-cards-and-ui\u002F02-card-integration",{"path":2627,"title":2475,"order":1351,"module":1255,"status":1221},"\u002Fjava-advanced-programming\u002Fpresentations\u002F08-module-8-grids-cards-and-ui\u002F03-equals-6-mini-project",{"path":2629,"title":2478,"order":1347,"module":1255,"status":1221},"\u002Fjava-advanced-programming\u002Fpresentations\u002F08-module-8-grids-cards-and-ui\u002F04-nice-day-for-fishin",{"path":2631,"title":2481,"order":1367,"module":1255,"status":1221},"\u002Fjava-advanced-programming\u002Fpresentations\u002F08-module-8-grids-cards-and-ui\u002F05-java-ui-intro",{"path":2633,"title":2484,"order":1187,"module":1262,"status":1221},"\u002Fjava-advanced-programming\u002Fpresentations\u002F09-module-9-ui-integration\u002F01-ui-integration-2026",{"path":2635,"title":2487,"order":1228,"module":1262,"status":1221},"\u002Fjava-advanced-programming\u002Fpresentations\u002F09-module-9-ui-integration\u002F02-ui-drawing",{"path":2637,"title":2490,"order":1351,"module":1262,"status":1221},"\u002Fjava-advanced-programming\u002Fpresentations\u002F09-module-9-ui-integration\u002F03-baseline-ui-integration",{"path":2639,"title":2493,"order":1347,"module":1262,"status":1221},"\u002Fjava-advanced-programming\u002Fpresentations\u002F09-module-9-ui-integration\u002F04-ndff-ui-integration",{"path":2641,"title":2496,"order":1367,"module":1262,"status":1221},"\u002Fjava-advanced-programming\u002Fpresentations\u002F09-module-9-ui-integration\u002F05-equals-6-ui",{"path":2643,"title":2499,"order":1371,"module":1262,"status":1221},"\u002Fjava-advanced-programming\u002Fpresentations\u002F09-module-9-ui-integration\u002F06-popularity-mini-project",{"path":2645,"title":2502,"order":1187,"module":1187,"status":1221},"\u002Fjava-advanced-programming\u002Fpresentations\u002F10-module-10-wrap-up-and-deployment\u002F01-milestone-3-wrapup",{"path":2647,"title":2505,"order":1228,"module":1187,"status":1221},"\u002Fjava-advanced-programming\u002Fpresentations\u002F10-module-10-wrap-up-and-deployment\u002F02-deploying-java-apps",{"path":2649,"title":2508,"order":1351,"module":1187,"status":1221},"\u002Fjava-advanced-programming\u002Fpresentations\u002F10-module-10-wrap-up-and-deployment\u002F03-ndff-away-spectator",{"path":2651,"title":2652,"order":1187,"module":1220,"status":1221},"\u002Fsystems-integration\u002F2e\u002Fpresentations\u002F01-required-architecture-overview","Required Architecture Overview",{"path":2654,"title":2655,"order":1220,"module":1272,"status":1200},"\u002Fsystems-integration\u002F2e\u002Fsyllabus\u002Ffall-2026","IT490 - Systems Integration Syllabus",{"path":2657,"title":2658,"order":1220,"module":1272,"status":1200},"\u002Fsystems-integration","Systems Integration",{"path":2660,"title":2661,"order":1198,"module":1198,"status":1221},"\u002Fsystems-integration\u002Fpresentations-revised\u002F00-revision-plan","Systems Integration Presentation Revision Plan",{"path":2663,"title":2664,"order":1198,"module":1198,"status":1221},"\u002Fsystems-integration\u002Fpresentations-revised\u002F01-20-minute-recording-plan","Systems Integration Twenty-Minute Recording Plan",{"path":2666,"title":2652,"order":1187,"module":1220,"status":1200},"\u002Fsystems-integration\u002Fpresentations\u002F01-required-architecture-overview",{"path":2668,"title":2655,"order":1220,"module":1272,"status":1200},"\u002Fsystems-integration\u002Fsyllabus\u002Fsummer-2026",{"path":2670,"title":2671,"order":1198,"module":1198,"status":1198},"\u002Fsystems-integration\u002Fworksheets\u002Fit490-authentication-authorization-core-2026-draft","IT490 Authentication and Authorization Core Milestone (2026)",{"path":2673,"title":2674,"order":1198,"module":1198,"status":1198},"\u002Fsystems-integration\u002Fworksheets\u002Fit490-centralized-logging-milestone-draft","IT490 Centralized Logging Milestone",{"path":2676,"title":2677,"order":1198,"module":1198,"status":1198},"\u002Fsystems-integration\u002Fworksheets\u002Fit490-milestone-3-resiliency-2026-draft","IT490 Milestone 3 - Deployment, Promotion, And Recovery",{"path":2679,"title":2680,"order":1198,"module":1198,"status":1198},"\u002Fsystems-integration\u002Fworksheets\u002Fit490-milestone-4-availability-2026-draft","IT490 Milestone 4 - Availability, Load Balancing, And Recovery",{"path":2682,"title":2683,"order":1228,"module":1272,"status":1221},"\u002Fsystems-integration\u002Fworksheets\u002Fmeeting-minutes-template","IT490 Meeting Minutes Template",{"path":2685,"title":2686,"order":1351,"module":1272,"status":1221},"\u002Fsystems-integration\u002Fworksheets\u002Fproject-changelog-template","IT490 Project Change Log Template",{"path":2688,"title":2689,"order":1187,"module":1272,"status":1221},"\u002Fsystems-integration\u002Fworksheets\u002Fproject-proposal-template","IT490 Project Proposal Template",1788152085932]