[{"data":1,"prerenderedAt":2441},["ShallowReactive",2],{"content-page:\u002Finternet-applications\u002Fpresentations\u002F08-reusable-components-jquery-and-ajax\u002F03-intro-to-ajax":3,"content-page-quiz:none":954,"content-navigation-index":967},{"id":4,"title":5,"audience":6,"body":7,"contentType":939,"course":940,"description":941,"estimateBasis":942,"estimatedDiscussionMinutes":943,"estimatedLiveMinutes":944,"estimatedTotalMinutes":945,"extension":946,"meta":947,"module":949,"navigation":950,"order":951,"path":952,"presentationRole":953,"promptAssist":948,"revision":954,"semester":954,"seo":955,"status":956,"stem":957,"syllabus":954,"tags":958,"updated":954,"videoDuration":962,"videoId":963,"videoLink":964,"videoTitle":965,"week":949,"__hash__":966},"content\u002Finternet-applications\u002Fpresentations\u002F08-reusable-components-jquery-and-ajax\u002F03-intro-to-ajax.md","Intro To AJAX","student",{"type":8,"value":9,"toc":913},"minimark",[10,39,62,97,111,201,235,278,336,390,434,473,507,545,573,651,700,770,802,879],[11,12,15,19,23],"slide",{"id":13,"level":14},"session-goal","2",[16,17,18],"h2",{"id":13},"Session Goal",[20,21,22],"p",{},"Send one value to PHP without leaving the current page",[24,25,26,30,33,36],"ul",{},[27,28,29],"li",{},"Compare XMLHttpRequest, Fetch, and jQuery POST requests",[27,31,32],{},"Send each request to the same PHP endpoint",[27,34,35],{},"Read a predictable JSON response",[27,37,38],{},"Show a clear success or failure message",[11,40,42,45,48,59],{"id":41,"level":14},"the-problem",[16,43,44],{"id":41},"The Problem",[20,46,47],{},"A normal form submission asks the browser to navigate to the server response",[24,49,50,53,56],{},[27,51,52],{},"That is still the best choice for many create, update, and login forms",[27,54,55],{},"Some small interactions should keep the current page visible",[27,57,58],{},"Examples include live search, a status toggle, or a save action inside a larger page",[20,60,61],{},"AJAX is useful when the current page still matters after the request finishes.",[11,63,65,69,77,94],{"id":64,"level":14},"ajax-main-idea",[16,66,68],{"id":67},"ajax-keeps-the-page-in-place","AJAX Keeps The Page In Place",[20,70,71,72,76],{},"AJAX means ",[73,74,75],"strong",{},"Asynchronous JavaScript and XML",".",[24,78,79,82,85,88,91],{},[27,80,81],{},"The name is historical; JSON is the usual data format today",[27,83,84],{},"JavaScript starts an ordinary HTTP request in the background",[27,86,87],{},"PHP validates the input and returns a response",[27,89,90],{},"JavaScript updates one known part of the existing page after the response arrives",[27,92,93],{},"Other response formats can include text, HTML, or XML",[20,95,96],{},"AJAX lets JavaScript update part of the current page after the initial response arrives.",[11,98,100,104,108],{"id":99,"level":14},"request-flow",[16,101,103],{"id":102},"request-and-response-flow","Request And Response Flow",[105,106],"mermaid",{"code":107},"flowchart LR\n  A[Button click] --> B[JavaScript request function]\n  B --> C[POST request]\n  C --> D[PHP endpoint]\n  D --> E[Validate message]\n  E --> F[JSON response]\n  F --> G[Update status text]\n",[20,109,110],{},"The page reports completion only after the endpoint response is understood.",[11,112,114,118,121,198],{"id":113,"level":14},"request-contract",[16,115,117],{"id":116},"agree-on-the-request-contract","Agree On The Request Contract",[20,119,120],{},"Before writing browser code, decide what the endpoint accepts and returns.",[122,123,124,137],"table",{},[125,126,127],"thead",{},[128,129,130,134],"tr",{},[131,132,133],"th",{},"Part",[131,135,136],{},"This Practice Endpoint",[138,139,140,152,162,174,184],"tbody",{},[128,141,142,146],{},[143,144,145],"td",{},"URL",[143,147,148],{},[149,150,151],"code",{},"ajax-intro-endpoint.php",[128,153,154,157],{},[143,155,156],{},"Method",[143,158,159],{},[149,160,161],{},"POST",[128,163,164,167],{},[143,165,166],{},"Input",[143,168,169,170,173],{},"One ",[149,171,172],{},"message"," field",[128,175,176,179],{},[143,177,178],{},"Success response",[143,180,181],{},[149,182,183],{},"{\"ok\": true, \"message\": \"...\"}",[128,185,186,189],{},[143,187,188],{},"Validation response",[143,190,191,194,195],{},[149,192,193],{},"{\"ok\": false, \"message\": \"...\"}"," with HTTP ",[149,196,197],{},"400",[20,199,200],{},"A small, predictable response shape makes browser code easier to read and debug.",[11,202,204,208,229],{"id":203,"level":14},"get-and-post",[16,205,207],{"id":206},"choose-get-or-post","Choose GET Or POST",[24,209,210,213,216,219,226],{},[27,211,212],{},"Use GET for read-oriented requests; values appear in the URL query string",[27,214,215],{},"Use POST when a request changes server state or sends form-style data in the request body",[27,217,218],{},"Set a matching request content type when the body format requires one",[27,220,221,222,225],{},"Set ",[149,223,224],{},"Content-Type: application\u002Fjson"," on an endpoint that returns JSON",[27,227,228],{},"POST does not make data private; use HTTPS and never trust browser input",[20,230,231,232,234],{},"This practice request uses POST so the browser sends the ",[149,233,172],{}," field in the request body.",[11,236,238,242,245,270,273],{"id":237,"level":14},"request-api-options",[16,239,241],{"id":240},"browser-request-apis","Browser Request APIs",[20,243,244],{},"All of these APIs send HTTP requests. The endpoint contract stays the same.",[24,246,247,253,264],{},[27,248,249,252],{},[149,250,251],{},"XMLHttpRequest"," is the original browser API; you manage its request lifecycle directly",[27,254,255,258,259],{},[149,256,257],{},"fetch()"," is the modern built-in API; it returns a Promise\n",[24,260,261],{},[27,262,263],{},"A Promise represents a result that will be available later, after asynchronous work finishes",[27,265,266,269],{},[149,267,268],{},"$.post()"," is a concise jQuery helper for pages that already load jQuery",[20,271,272],{},"Use one request style for a feature. The combined demo uses the same POST endpoint and JSON response for all three approaches so their request code can be compared directly.",[24,274,275],{},[27,276,277],{},"See the slides below for each API's request and response pattern",[11,279,282,287],{"id":280,"level":281},"xmlhttprequest-core","3",[283,284,286],"h3",{"id":285},"xmlhttprequest-core-steps","XMLHttpRequest Core Steps",[288,289,292,328],"two-col",{"gap":290,"left-width":291,"right-width":291},"lg","1fr",[293,294,296],"template",{"v-slot:left":295},"",[24,297,298,304,311,318,325],{},[27,299,300,301],{},"Create a request with ",[149,302,303],{},"new XMLHttpRequest()",[27,305,306,307,310],{},"Use ",[149,308,309],{},"open()"," to set the HTTP method and endpoint URL",[27,312,313,314,317],{},"Add a ",[149,315,316],{},"load"," listener to handle the completed response",[27,319,320,321,324],{},"Set a request header and call ",[149,322,323],{},"send()"," when posting form-style data",[27,326,327],{},"Check the HTTP status before treating a response as successful",[293,329,330],{"v-slot:right":295},[331,332],"code-snippet",{"language":333,"src":334,"max-height":335},"html","\u002Fgenerated-snippets\u002Finternet-applications\u002Fpresentations\u002F08-reusable-components-jquery-and-ajax\u002F03-intro-to-ajax\u002Fxhr-example-02a.html","24rem",[11,337,339,343],{"id":338,"level":281},"fetch-core",[283,340,342],{"id":341},"fetch-core-steps","Fetch Core Steps",[288,344,345,385],{"gap":290,"left-width":291,"right-width":291},[293,346,347],{"v-slot:left":295},[24,348,349,355,358,368,375],{},[27,350,351,352,354],{},"Call ",[149,353,257],{}," with the endpoint URL and an options object",[27,356,357],{},"Put the method and request body in that options object",[27,359,306,360,363,364,367],{},[149,361,362],{},"await"," to wait for the response and ",[149,365,366],{},"response.json()"," to read JSON",[27,369,370,371,374],{},"Check ",[149,372,373],{},"response.ok"," because Fetch does not reject for HTTP error statuses",[27,376,306,377,380,381,384],{},[149,378,379],{},"try"," and ",[149,382,383],{},"catch"," for network and response-parsing failures",[293,386,387],{"v-slot:right":295},[331,388],{"language":333,"src":389,"max-height":335},"\u002Fgenerated-snippets\u002Finternet-applications\u002Fpresentations\u002F08-reusable-components-jquery-and-ajax\u002F03-intro-to-ajax\u002Ffetch-example-02b.html",[11,391,393,397],{"id":392,"level":281},"jquery-post-core",[283,394,396],{"id":395},"jquery-post-core-steps","jQuery POST Core Steps",[288,398,399,429],{"gap":290,"left-width":291,"right-width":291},[293,400,401],{"v-slot:left":295},[24,402,403,409,414,420,426],{},[27,404,405,406],{},"Load jQuery before code calls ",[149,407,408],{},"$()",[27,410,351,411,413],{},[149,412,268],{}," with the endpoint URL and a data object",[27,415,306,416,419],{},[149,417,418],{},".done()"," for a successful HTTP response",[27,421,306,422,425],{},[149,423,424],{},".fail()"," for network, HTTP, or JSON-parsing failures",[27,427,428],{},"Let the endpoint's JSON response decide the message shown to the user",[293,430,431],{"v-slot:right":295},[331,432],{"language":333,"src":433,"max-height":335},"\u002Fgenerated-snippets\u002Finternet-applications\u002Fpresentations\u002F08-reusable-components-jquery-and-ajax\u002F03-intro-to-ajax\u002Fjquery-post-example-02c.html",[11,435,437,441,447,451],{"id":436,"level":14},"build-endpoint",[16,438,440],{"id":439},"build-the-php-endpoint","Build The PHP Endpoint",[20,442,443,444],{},"File: ",[149,445,446],{},"public_html\u002Fm08\u002Flessons\u002Fajax-intro\u002Fajax-intro-endpoint.php",[331,448],{"language":449,"src":450},"php","\u002Fgenerated-snippets\u002Finternet-applications\u002Fpresentations\u002F08-reusable-components-jquery-and-ajax\u002F03-intro-to-ajax\u002Fajax-intro-endpoint-03.php",[24,452,453,456,461,470],{},[27,454,455],{},"The endpoint accepts only POST requests",[27,457,458,459,173],{},"The server validates the expected ",[149,460,172],{},[27,462,463,464,380,467,469],{},"Both success and failure responses use the same ",[149,465,466],{},"ok",[149,468,172],{}," keys",[27,471,472],{},"The browser receives JSON, not an HTML page",[11,474,476,480,485,489],{"id":475,"level":14},"build-page",[16,477,479],{"id":478},"combined-request-demo","Combined Request Demo",[20,481,443,482],{},[149,483,484],{},"public_html\u002Fm08\u002Flessons\u002Fajax-intro\u002Fajax-intro-page.html",[331,486],{"language":333,"src":487,"max-height":488},"\u002Fgenerated-snippets\u002Finternet-applications\u002Fpresentations\u002F08-reusable-components-jquery-and-ajax\u002F03-intro-to-ajax\u002Fajax-intro-page-06.html","28rem",[24,490,491,494,499,504],{},[27,492,493],{},"One input and three buttons use the same message value",[27,495,496,497],{},"Each button sends a POST request to ",[149,498,151],{},[27,500,501,502],{},"The full jQuery library loads before the inline script calls ",[149,503,408],{},[27,505,506],{},"Each approach reads the endpoint's JSON response and updates the same status element",[11,508,510,513,520,539],{"id":509,"level":281},"expected-success",[283,511,512],{"id":509},"Expected Success",[20,514,515,516,519],{},"Enter ",[149,517,518],{},"Hello AJAX"," and select any request button.",[24,521,522,525,530,536],{},[27,523,524],{},"The page stays in place",[27,526,527,528,173],{},"XMLHttpRequest, Fetch, and jQuery all send a POST request with the same ",[149,529,172],{},[27,531,532,533],{},"The status text becomes ",[149,534,535],{},"The server received: Hello AJAX",[27,537,538],{},"The input clears after a successful response",[20,540,541,542,544],{},"The Network panel shows one POST request to ",[149,543,151],{}," regardless of which button is selected.",[11,546,548,552,555,559],{"id":547,"level":14},"validation-failure",[16,549,551],{"id":550},"follow-the-failure-path","Follow The Failure Path",[20,553,554],{},"Submit only spaces while testing.",[331,556],{"language":557,"src":558},"json","\u002Fgenerated-snippets\u002Finternet-applications\u002Fpresentations\u002F08-reusable-components-jquery-and-ajax\u002F03-intro-to-ajax\u002Fvalidation-response-08.json",[24,560,561,564,567,570],{},[27,562,563],{},"Browser validation is helpful feedback, but it can be bypassed",[27,565,566],{},"Server validation remains the source of truth",[27,568,569],{},"The client reads the endpoint's friendly message and keeps the page visible",[27,571,572],{},"A state-changing endpoint should also enforce authorization and CSRF protection",[11,574,576,580,635],{"id":575,"level":14},"json-boundary",[16,577,579],{"id":578},"json-at-the-boundary","JSON At The Boundary",[122,581,582,592],{},[125,583,584],{},[128,585,586,589],{},[131,587,588],{},"PHP",[131,590,591],{},"JavaScript",[138,593,594,608,622],{},[128,595,596,602],{},[143,597,598,601],{},[149,599,600],{},"json_encode($value)"," converts a PHP value to JSON text",[143,603,604,607],{},[149,605,606],{},"JSON.stringify(value)"," converts a JavaScript value to JSON text",[128,609,610,616],{},[143,611,612,615],{},[149,613,614],{},"json_decode($json, true)"," reads JSON into an associative array",[143,617,618,621],{},[149,619,620],{},"JSON.parse(json)"," reads JSON text into a JavaScript value",[128,623,624,630],{},[143,625,626,629],{},[149,627,628],{},"header(\"Content-Type: application\u002Fjson\")"," identifies JSON output",[143,631,632,634],{},[149,633,366],{}," reads a Fetch response as JSON",[20,636,637,638,641,642,644,645,647,648,76],{},"The XMLHttpRequest example uses ",[149,639,640],{},"JSON.parse()",". Fetch uses ",[149,643,366],{},", and jQuery reads JSON automatically from the endpoint response header before ",[149,646,418],{}," receives ",[149,649,650],{},"data",[11,652,654,658,661,697],{"id":653,"level":14},"check-network",[16,655,657],{"id":656},"check-the-network-panel","Check The Network Panel",[20,659,660],{},"Open DevTools Network, select a request button, and inspect the request.",[24,662,663,668,673,678,687,694],{},[27,664,665,666],{},"Request method is ",[149,667,161],{},[27,669,670,671],{},"Request URL ends in ",[149,672,151],{},[27,674,675,676,173],{},"Payload contains the expected ",[149,677,172],{},[27,679,680,681,684,685],{},"Success status is ",[149,682,683],{},"200","; validation failure status is ",[149,686,197],{},[27,688,689,690,380,692],{},"Response is clean JSON with ",[149,691,466],{},[149,693,172],{},[27,695,696],{},"The document request did not reload",[20,698,699],{},"Check Console too when no request appears or JavaScript stops early.",[11,701,703,706,767],{"id":702,"level":14},"common-failures",[16,704,705],{"id":702},"Common Failures",[122,707,708,718],{},[125,709,710],{},[128,711,712,715],{},[131,713,714],{},"Symptom",[131,716,717],{},"First Check",[138,719,720,728,740,751,759],{},[128,721,722,725],{},[143,723,724],{},"No response appears",[143,726,727],{},"Confirm the button listener is attached and inspect Console for errors",[128,729,730,735],{},[143,731,732],{},[149,733,734],{},"$ is not defined",[143,736,737,738],{},"Confirm jQuery loads before the inline script calls ",[149,739,408],{},[128,741,742,748],{},[143,743,744,747],{},[149,745,746],{},"405"," response",[143,749,750],{},"Confirm the request method is POST",[128,752,753,756],{},[143,754,755],{},"JSON parsing fails",[143,757,758],{},"Inspect the raw response for PHP warnings or HTML",[128,760,761,764],{},[143,762,763],{},"The status never changes",[143,765,766],{},"Inspect Console and the Network response body",[20,768,769],{},"Fix the first failed boundary: browser event, request, endpoint, or response.",[11,771,773,776],{"id":772,"level":14},"knowledge-check",[16,774,775],{"id":772},"Knowledge Check",[24,777,778,781,787,793,796,799],{},[27,779,780],{},"When is a normal form submission a better choice than AJAX?",[27,782,783,784,786],{},"How do XMLHttpRequest, Fetch, and ",[149,785,268],{}," send the same message to one endpoint?",[27,788,789,790,792],{},"Why does the Fetch example check ",[149,791,373],{}," after receiving a response?",[27,794,795],{},"Which request details must match the endpoint contract?",[27,797,798],{},"Why should the server validate a message after browser validation succeeds?",[27,800,801],{},"Which Network panel details identify an AJAX validation failure?",[11,803,805,809],{"id":804,"level":14},"terms-and-learning",[16,806,808],{"id":807},"key-terms-and-further-learning","Key Terms And Further Learning",[288,810,811,841],{"gap":290,"left-width":291,"right-width":291},[293,812,813,817,823,829,835],{"v-slot:left":295},[283,814,816],{"id":815},"key-terms","Key Terms",[20,818,819,822],{},[73,820,821],{},"Asynchronous"," - Work that can finish later while the page remains available",[20,824,825,828],{},[73,826,827],{},"Endpoint"," - Server URL that receives a request and returns a response",[20,830,831,834],{},[73,832,833],{},"HTTP status"," - Number that reports the request outcome",[20,836,837,840],{},[73,838,839],{},"Response body"," - Data returned by the endpoint",[293,842,843,847],{"v-slot:right":295},[283,844,846],{"id":845},"further-learning","Further Learning",[24,848,849,858,865,872],{},[27,850,851],{},[852,853,857],"a",{"href":854,"rel":855},"https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FFetch_API",[856],"nofollow","MDN Fetch API",[27,859,860],{},[852,861,864],{"href":862,"rel":863},"https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FXMLHttpRequest",[856],"MDN XMLHttpRequest",[27,866,867],{},[852,868,871],{"href":869,"rel":870},"https:\u002F\u002Fapi.jquery.com\u002FjQuery.ajax\u002F",[856],"jQuery AJAX",[27,873,874],{},[852,875,878],{"href":876,"rel":877},"https:\u002F\u002Fwww.php.net\u002Fmanual\u002Fen\u002Fref.json.php",[856],"PHP JSON functions",[11,880,882,885,905],{"id":881,"level":14},"summary",[16,883,884],{"id":881},"Summary",[24,886,887,890,893,899,902],{},[27,888,889],{},"AJAX sends an HTTP request without navigating the current page",[27,891,892],{},"A clear endpoint contract keeps method, input, status, and JSON response aligned",[27,894,895,896,898],{},"XMLHttpRequest, Fetch, and ",[149,897,268],{}," can send the same request contract in different styles",[27,900,901],{},"PHP validates input and returns a predictable response",[27,903,904],{},"DevTools Network reveals the request payload, status, and raw response",[20,906,907,908],{},"GitHub reference checkpoint: ",[852,909,912],{"href":910,"rel":911},"https:\u002F\u002Fgithub.com\u002FMattToegel\u002FIT202-2026\u002Ftree\u002FModule08-Ajax-Intro",[856],"Module08-Ajax-Intro branch",{"title":295,"searchDepth":914,"depth":914,"links":915},2,[916,917,918,919,920,921,922,928,929,932,933,934,935,936,937,938],{"id":13,"depth":914,"text":18},{"id":41,"depth":914,"text":44},{"id":67,"depth":914,"text":68},{"id":102,"depth":914,"text":103},{"id":116,"depth":914,"text":117},{"id":206,"depth":914,"text":207},{"id":240,"depth":914,"text":241,"children":923},[924,926,927],{"id":285,"depth":925,"text":286},3,{"id":341,"depth":925,"text":342},{"id":395,"depth":925,"text":396},{"id":439,"depth":914,"text":440},{"id":478,"depth":914,"text":479,"children":930},[931],{"id":509,"depth":925,"text":512},{"id":550,"depth":914,"text":551},{"id":578,"depth":914,"text":579},{"id":656,"depth":914,"text":657},{"id":702,"depth":914,"text":705},{"id":772,"depth":914,"text":775},{"id":807,"depth":914,"text":808},{"id":881,"depth":914,"text":884},"presentation","Internet Applications","Compare XMLHttpRequest, Fetch, and jQuery POST requests that send data to one PHP endpoint and update the current page from a JSON response.","Face-to-face class of about 40 students; based on a complete endpoint-to-browser exercise, guided debugging, and discussion.","10","60","70","md",{"requiresLessonBranchCheckpoint":948},false,"8",true,"30","\u002Finternet-applications\u002Fpresentations\u002F08-reusable-components-jquery-and-ajax\u002F03-intro-to-ajax","Core",null,{"title":5,"description":941},"published","internet-applications\u002Fpresentations\u002F08-reusable-components-jquery-and-ajax\u002F03-intro-to-ajax",[959,960,961,557],"ajax","http","jquery","32:57","RQEjcvJWxEk","https:\u002F\u002Fyoutu.be\u002FRQEjcvJWxEk","AJAX Intro","fgVKTQjeMrG94o9G81fMJb7f3tmTK2BsuixKDD4NluU",[968,971,977,980,984,987,990,993,997,1000,1003,1007,1010,1013,1017,1020,1023,1027,1030,1033,1036,1038,1040,1042,1044,1046,1048,1050,1053,1056,1059,1062,1065,1067,1070,1073,1077,1081,1085,1089,1092,1095,1098,1102,1105,1108,1111,1114,1117,1121,1124,1127,1129,1132,1135,1138,1141,1144,1147,1150,1153,1156,1160,1164,1168,1171,1174,1177,1180,1183,1186,1189,1192,1195,1198,1201,1204,1207,1210,1213,1216,1220,1223,1226,1229,1232,1234,1237,1240,1243,1246,1249,1253,1256,1259,1262,1265,1268,1271,1274,1277,1280,1283,1286,1289,1292,1295,1298,1301,1304,1307,1310,1313,1316,1319,1322,1325,1328,1331,1334,1337,1340,1343,1346,1349,1352,1355,1358,1361,1364,1367,1370,1373,1376,1379,1382,1385,1388,1391,1394,1397,1400,1403,1406,1409,1412,1415,1418,1421,1424,1427,1430,1433,1436,1439,1442,1445,1448,1451,1454,1457,1460,1463,1466,1469,1472,1475,1478,1481,1484,1487,1490,1493,1496,1499,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,1611,1614,1617,1620,1623,1626,1629,1632,1635,1638,1641,1644,1647,1650,1653,1656,1659,1662,1665,1668,1671,1674,1677,1680,1683,1686,1689,1692,1695,1698,1701,1704,1707,1710,1713,1716,1719,1722,1725,1728,1731,1734,1737,1740,1743,1746,1749,1752,1755,1758,1761,1764,1767,1770,1773,1776,1779,1782,1785,1788,1791,1794,1797,1800,1803,1806,1809,1812,1815,1818,1821,1824,1827,1830,1833,1836,1839,1842,1845,1848,1851,1854,1857,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,1996,1999,2002,2005,2008,2011,2014,2016,2018,2020,2022,2024,2026,2028,2030,2032,2034,2036,2038,2040,2042,2044,2046,2048,2050,2052,2054,2056,2058,2061,2063,2065,2067,2069,2071,2073,2075,2077,2079,2080,2082,2084,2086,2088,2090,2094,2098,2102,2105,2109,2113,2116,2119,2122,2125,2128,2131,2135,2138,2141,2144,2147,2149,2151,2153,2155,2158,2161,2164,2167,2170,2173,2176,2179,2182,2185,2188,2191,2194,2197,2200,2203,2206,2209,2212,2215,2218,2221,2224,2227,2230,2233,2236,2239,2242,2245,2248,2251,2254,2257,2260,2263,2266,2269,2272,2275,2278,2281,2284,2287,2290,2293,2296,2299,2302,2305,2308,2311,2314,2317,2320,2322,2324,2326,2328,2330,2332,2334,2336,2338,2340,2342,2344,2346,2348,2350,2352,2354,2356,2359,2361,2363,2365,2367,2369,2371,2373,2375,2377,2379,2381,2383,2385,2387,2389,2391,2393,2395,2397,2399,2401,2404,2407,2410,2413,2416,2418,2420,2423,2426,2429,2432,2435,2438],{"path":969,"title":970,"order":954,"module":954,"status":954},"\u002Fabout","About Content Version 3",{"path":972,"title":973,"order":974,"module":975,"status":976},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F01-introduction\u002F01-first-concept","First Concept","5","1","draft",{"path":978,"title":979,"order":943,"module":975,"status":976},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F01-introduction\u002F01-what-is-a-game","What is a Game?",{"path":981,"title":982,"order":983,"module":975,"status":976},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F01-introduction\u002F02-what-is-gameplay","What is Gameplay?","20",{"path":985,"title":986,"order":943,"module":14,"status":976},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F02-game-balance\u002F01-game-balance","Game Balance",{"path":988,"title":989,"order":943,"module":281,"status":976},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F03-look-and-feel\u002F01-color-theory","Game Design: Color Theory",{"path":991,"title":992,"order":983,"module":281,"status":976},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F03-look-and-feel\u002F02-look-and-feel","Game Design - Look and Feel",{"path":994,"title":995,"order":943,"module":996,"status":976},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F04-game-mechanics\u002F01-game-mechanics","Game Mechanics","4",{"path":998,"title":999,"order":983,"module":996,"status":976},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F04-game-mechanics\u002F02-decks","Technical: Decks and Cards",{"path":1001,"title":1002,"order":943,"module":974,"status":976},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F05-depth-complexity-and-randomness\u002F01-depth-vs-complexity-and-randomness","Depth, Complexity, And Randomness",{"path":1004,"title":1005,"order":983,"module":1006,"status":976},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F06-first-game-planning\u002F02-planning-and-management","Planning From Concept To Prototype","6",{"path":1008,"title":1009,"order":943,"module":949,"status":976},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F08-game-architecture\u002F01-concepts-and-design","Game Architecture: Concepts And Design",{"path":1011,"title":1012,"order":983,"module":949,"status":976},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F08-game-architecture\u002F02-features-of-a-game-engine","Game Engine Features And Browser Feasibility",{"path":1014,"title":1015,"order":943,"module":1016,"status":976},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F09-entity-based-systems\u002F01-ecs","Entity-Based Systems","9",{"path":1018,"title":1019,"order":943,"module":943,"status":976},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F10-player-facing-feature-systems\u002F01-spatial-rules-levels-and-interface","Spatial Rules, Levels, And Interface",{"path":1021,"title":1022,"order":983,"module":943,"status":976},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F10-player-facing-feature-systems\u002F02-actors-behavior-and-effects","Actors, Behavior, And Effects",{"path":1024,"title":1025,"order":975,"module":1026,"status":956},"\u002Fgame-architecture-and-design\u002F2e\u002Fsyllabus\u002Ffall-2026","Course Syllabus: IT265 - Game Architecture and Design","0",{"path":1028,"title":1029,"order":975,"module":1026,"status":976},"\u002Fgame-architecture-and-design","Game Architecture and Design",{"path":1031,"title":1032,"order":954,"module":954,"status":976},"\u002Fgame-architecture-and-design\u002Fpresentations-revised\u002F00-revision-plan","Game Architecture And Design Presentation Revision Plan",{"path":1034,"title":1035,"order":954,"module":954,"status":976},"\u002Fgame-architecture-and-design\u002Fpresentations-revised\u002F01-20-minute-recording-plan","Game Architecture And Design Twenty-Minute Recording Plan",{"path":1037,"title":979,"order":943,"module":975,"status":976},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F01-introduction\u002F01-what-is-a-game",{"path":1039,"title":982,"order":983,"module":975,"status":976},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F01-introduction\u002F02-what-is-gameplay",{"path":1041,"title":986,"order":943,"module":14,"status":976},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F02-game-balance\u002F01-game-balance",{"path":1043,"title":989,"order":943,"module":281,"status":976},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F03-look-and-feel\u002F01-color-theory",{"path":1045,"title":992,"order":983,"module":281,"status":976},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F03-look-and-feel\u002F02-look-and-feel",{"path":1047,"title":995,"order":943,"module":996,"status":976},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F04-game-mechanics\u002F01-game-mechanics",{"path":1049,"title":999,"order":983,"module":996,"status":976},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F04-game-mechanics\u002F02-decks",{"path":1051,"title":1052,"order":943,"module":974,"status":976},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F05-depth-complexity-and-randomness\u002F01-depth-vs-complexity-and-randomness","Depth vs Complexity and Randomness",{"path":1054,"title":1055,"order":943,"module":1006,"status":976},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F06-first-game-planning\u002F01-first-concept","First Concept: Updated Lesson",{"path":1057,"title":1058,"order":983,"module":1006,"status":976},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F06-first-game-planning\u002F02-planning-and-management","Planning and Management",{"path":1060,"title":1061,"order":943,"module":949,"status":976},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F08-game-architecture\u002F01-concepts-and-design","Game Architecture: Concepts and Design",{"path":1063,"title":1064,"order":983,"module":949,"status":976},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F08-game-architecture\u002F02-features-of-a-game-engine","Game Architecture: Features of a Game Engine",{"path":1066,"title":1015,"order":943,"module":1016,"status":976},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F09-entity-based-systems\u002F01-ecs",{"path":1068,"title":1069,"order":943,"module":943,"status":976},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F10-level-mechanics\u002F01-level-mechanics","Game Design: Introduction to Level Mechanics",{"path":1071,"title":1072,"order":983,"module":943,"status":976},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F10-level-mechanics\u002F02-grids","Technical: Square vs Hex Grids in Board Games",{"path":1074,"title":1075,"order":943,"module":1076,"status":976},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F11-user-interfaces\u002F01-user-interfaces","Game Design: User Interfaces","11",{"path":1078,"title":1079,"order":943,"module":1080,"status":976},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F12-actor-representations\u002F01-actors","Game Design: Actor Representations","12",{"path":1082,"title":1083,"order":943,"module":1084,"status":976},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F13-artificial-intelligence\u002F01-ai","Game Design: AI","13",{"path":1086,"title":1087,"order":943,"module":1088,"status":976},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F14-particles-and-physics\u002F01-particles-and-physics","IT265: Particle Systems and Physics Engine","14",{"path":1090,"title":1091,"order":975,"module":1026,"status":976},"\u002Fgame-architecture-and-design\u002Fsyllabus\u002Fspring-2026","Course Syllabus: IT265 - Game Architecture",{"path":1093,"title":1094,"order":943,"module":1026,"status":976},"\u002Fgame-architecture-and-design\u002Fworksheets\u002Fcase-study-1-atari-worksheet","Case Study 1 - Atari",{"path":1096,"title":1097,"order":983,"module":1026,"status":976},"\u002Fgame-architecture-and-design\u002Fworksheets\u002Fit265-case-study-color-theory-worksheet","IT265 Case Study - Color Theory",{"path":1099,"title":1100,"order":1101,"module":1026,"status":976},"\u002Fgame-architecture-and-design\u002Fworksheets\u002Fit265-case-study-personal-choice-worksheet","IT265 Case Study - Personal Choice","40",{"path":1103,"title":1104,"order":951,"module":1026,"status":976},"\u002Fgame-architecture-and-design\u002Fworksheets\u002Fit265-design-treatment-checkpoint-worksheet","IT265 Design Treatment Checkpoint",{"path":1106,"title":1107,"order":943,"module":975,"status":976},"\u002Fgeneral\u002F2e\u002Fpresentations\u002F01-git-and-terminal-setup","Git And Terminal Setup",{"path":1109,"title":1110,"order":983,"module":975,"status":976},"\u002Fgeneral\u002F2e\u002Fpresentations\u002F02-cli-foundations","CLI Foundations",{"path":1112,"title":1113,"order":951,"module":975,"status":976},"\u002Fgeneral\u002F2e\u002Fpresentations\u002F03-github-setup-and-ssh","GitHub Setup And SSH",{"path":1115,"title":1116,"order":1101,"module":975,"status":976},"\u002Fgeneral\u002F2e\u002Fpresentations\u002F04-local-git-workflow-and-course-repositories","Local Git Workflow And Course Repositories",{"path":1118,"title":1119,"order":1120,"module":975,"status":976},"\u002Fgeneral\u002F2e\u002Fpresentations\u002F05-vscode-setup-and-course-extensions","VS Code Setup And Course Extensions","50",{"path":1122,"title":1123,"order":944,"module":975,"status":976},"\u002Fgeneral\u002F2e\u002Fpresentations\u002F06-trace-learning-journal","TRACE Learning Journal Foundations",{"path":1125,"title":1126,"order":954,"module":954,"status":954},"\u002Fgeneral\u002Fbasic-cli","Basic Command Line",{"path":1128,"title":1126,"order":943,"module":975,"status":954},"\u002Fgeneral\u002Fbasic-command-line",{"path":1130,"title":1131,"order":954,"module":954,"status":956},"\u002F","Ethereal Lab Course Materials",{"path":1133,"title":1134,"order":1026,"module":975,"status":976},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F00-learn-courses-and-discord","Learn Courses Platform And Discord",{"path":1136,"title":1137,"order":943,"module":975,"status":976},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F01-basic-cli-commands","Basic CLI Commands",{"path":1139,"title":1140,"order":983,"module":975,"status":976},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F02-install-git-tools","Git Tools",{"path":1142,"title":1143,"order":951,"module":975,"status":976},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F03-setup-github-ssh","Set Up GitHub SSH",{"path":1145,"title":1146,"order":1101,"module":975,"status":976},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F04-git-commands-prs","Git Commands And Pull Requests",{"path":1148,"title":1149,"order":1120,"module":975,"status":976},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F05-setup-local-development-environment","Local Development Environment Setup",{"path":1151,"title":1152,"order":944,"module":975,"status":976},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F06-add-instructor-template-to-your-repository","Add Instructor Template To Your Repository",{"path":1154,"title":1155,"order":945,"module":975,"status":976},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F07-qa-prod-branches","QA And Prod Branches",{"path":1157,"title":1158,"order":1159,"module":975,"status":976},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F08-render-setup","Render Setup","80",{"path":1161,"title":1162,"order":1163,"module":975,"status":976},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F09-local-ubuntu-web-server-virtualbox","Local Ubuntu Web Server With VirtualBox","90",{"path":1165,"title":1166,"order":1167,"module":975,"status":976},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F10-local-ubuntu-web-server-vmware","Local Ubuntu Web Server With VMware","100",{"path":1169,"title":1170,"order":943,"module":14,"status":976},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F02-php-and-javascript-basics\u002F01-compare-php-and-javascript","Compare PHP And JavaScript",{"path":1172,"title":1173,"order":983,"module":14,"status":976},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F02-php-and-javascript-basics\u002F02-conditions-loops-functions","Use Conditions Loops And Functions",{"path":1175,"title":1176,"order":943,"module":281,"status":976},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F03-html-forms-css-and-dom\u002F01-intro-to-html","Intro To HTML",{"path":1178,"title":1179,"order":983,"module":281,"status":976},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F03-html-forms-css-and-dom\u002F02-intro-to-forms-and-get-post","Intro To Forms And GET\u002FPOST",{"path":1181,"title":1182,"order":951,"module":281,"status":976},"\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":1184,"title":1185,"order":943,"module":996,"status":976},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F04-databases-and-user-accounts\u002F01-intro-to-sql","Intro To SQL",{"path":1187,"title":1188,"order":983,"module":996,"status":976},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F04-databases-and-user-accounts\u002F02-project-database-setup","Project Database Setup",{"path":1190,"title":1191,"order":951,"module":996,"status":976},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F04-databases-and-user-accounts\u002F03-user-registration","User Registration",{"path":1193,"title":1194,"order":1101,"module":996,"status":976},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F04-databases-and-user-accounts\u002F04-user-login","User Login",{"path":1196,"title":1197,"order":943,"module":974,"status":976},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F05-validation-and-user-profiles\u002F01-intro-to-regex","Intro To Regex",{"path":1199,"title":1200,"order":983,"module":974,"status":976},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F05-validation-and-user-profiles\u002F02-project-shared-helpers","Project Shared Helpers",{"path":1202,"title":1203,"order":951,"module":974,"status":976},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F05-validation-and-user-profiles\u002F03-flash-messages-and-redirect-feedback","User Feedback After Redirects",{"path":1205,"title":1206,"order":1101,"module":974,"status":976},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F05-validation-and-user-profiles\u002F04-user-profile","User Profile",{"path":1208,"title":1209,"order":943,"module":1006,"status":976},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F06-roles-and-crud-pages\u002F01-user-roles-authorization","User Roles Authorization",{"path":1211,"title":1212,"order":983,"module":1006,"status":976},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F06-roles-and-crud-pages\u002F02-user-login-enhancement","User Login Enhancement",{"path":1214,"title":1215,"order":951,"module":1006,"status":976},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F06-roles-and-crud-pages\u002F03-dynamic-content","Dynamic Content",{"path":1217,"title":1218,"order":943,"module":1219,"status":976},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F07-api-data-and-database-helpers\u002F01-working-with-api-data","Working With API Data","7",{"path":1221,"title":1222,"order":983,"module":1219,"status":976},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F07-api-data-and-database-helpers\u002F02-api-integration","API Integration",{"path":1224,"title":1225,"order":951,"module":1219,"status":976},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F07-api-data-and-database-helpers\u002F03-database-utility-functions","Database Utility Functions",{"path":1227,"title":1228,"order":943,"module":949,"status":976},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F08-reusable-components-jquery-and-ajax\u002F01-milestone-2-bootstrap-and-reusability","Milestone 2 Bootstrap And Reusability",{"path":1230,"title":1231,"order":983,"module":949,"status":976},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F08-reusable-components-jquery-and-ajax\u002F02-jquery-brief-intro","jQuery Brief Intro",{"path":1233,"title":5,"order":951,"module":949,"status":976},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F08-reusable-components-jquery-and-ajax\u002F03-intro-to-ajax",{"path":1235,"title":1236,"order":943,"module":1016,"status":976},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F09-relational-data-search-and-pagination\u002F01-user-associations","Add User Associations",{"path":1238,"title":1239,"order":983,"module":1016,"status":976},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F09-relational-data-search-and-pagination\u002F02-association-views-and-pagination","Add Association Views And Pagination",{"path":1241,"title":1242,"order":943,"module":943,"status":976},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F10-association-assignment-and-security\u002F01-association-assignment-and-public-profiles","Association Management And Public Profiles",{"path":1244,"title":1245,"order":983,"module":943,"status":976},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F10-association-assignment-and-security\u002F02-reusable-csrf-protection","Reusable CSRF Protection",{"path":1247,"title":1248,"order":975,"module":1026,"status":956},"\u002Finternet-applications\u002F2e\u002Fsyllabus\u002Ffall-2026","IT202 - Internet Applications Syllabus",{"path":1250,"title":1251,"order":1101,"module":943,"status":1252},"\u002Finternet-applications\u002Fassignments\u002Ffinal-project-submission","Final Project Submission","review",{"path":1254,"title":1255,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fassignments\u002Fmilestones\u002F01-account-access-and-profile-system","Milestone 1: Account, Access, And Profile System",{"path":1257,"title":1258,"order":983,"module":949,"status":1252},"\u002Finternet-applications\u002Fassignments\u002Fmilestones\u002F02-api-data-and-project-crud","Milestone 2: API Data And Project CRUD",{"path":1260,"title":1261,"order":951,"module":1016,"status":1252},"\u002Finternet-applications\u002Fassignments\u002Fmilestones\u002F03-user-associations-search-and-summary","Milestone 3: User Associations, Search, And Summary Views",{"path":1263,"title":1264,"order":974,"module":996,"status":956},"\u002Finternet-applications\u002Fassignments\u002Fproject-proposal","IT 202 Project Proposal",{"path":1266,"title":1267,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F01-what-this-course-is-building","What Internet Applications Build",{"path":1269,"title":1270,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F02-files-folders-and-project-structure","Files, Folders, And Project Structure",{"path":1272,"title":1273,"order":954,"module":954,"status":954},"\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":1275,"title":1276,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F02b-install-git-and-terminal-tools","Install Git And Terminal Tools",{"path":1278,"title":1279,"order":954,"module":954,"status":954},"\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":1281,"title":1282,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F03a-local-development-environment","Set Up A Local Development Environment",{"path":1284,"title":1285,"order":954,"module":954,"status":954},"\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":1287,"title":1288,"order":954,"module":954,"status":954},"\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":1290,"title":1291,"order":954,"module":954,"status":954},"\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":1293,"title":1294,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F07-git-recovery-and-common-mistakes","Git Recovery And Common Mistakes",{"path":1296,"title":1297,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F08-installing-apache-and-php","Installing Apache, PHP, And MySQL",{"path":1299,"title":1300,"order":954,"module":954,"status":954},"\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":1302,"title":1303,"order":954,"module":954,"status":954},"\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":1305,"title":1306,"order":954,"module":954,"status":954},"\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":1308,"title":1309,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F12-local-qa-and-production-environments","Local, QA, And Production Environments",{"path":1311,"title":1312,"order":954,"module":954,"status":954},"\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":1314,"title":1315,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F02-displaying-output-with-php","Displaying Output With PHP",{"path":1317,"title":1318,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F03-displaying-output-with-javascript","Displaying Output With JavaScript",{"path":1320,"title":1321,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F04-variables-storing-and-naming-values","Variables: Storing And Naming Values",{"path":1323,"title":1324,"order":954,"module":954,"status":954},"\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":1326,"title":1327,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F06-arrays-storing-lists-of-values","Arrays: Storing Lists Of Values",{"path":1329,"title":1330,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F07-conditional-statements-making-decisions","Conditional Statements: Making Decisions",{"path":1332,"title":1333,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F08-loops-repeating-actions","Loops: Repeating Actions",{"path":1335,"title":1336,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F09-functions-reusable-blocks-of-logic","Functions: Reusable Blocks Of Logic",{"path":1338,"title":1339,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F10-reading-and-debugging-error-messages","Reading And Debugging Error Messages",{"path":1341,"title":1342,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F01-html-structure-and-meaning","HTML: Structure And Meaning",{"path":1344,"title":1345,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F02-writing-a-valid-html-document","Writing A Valid HTML Document",{"path":1347,"title":1348,"order":954,"module":954,"status":954},"\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":1350,"title":1351,"order":954,"module":954,"status":954},"\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":1353,"title":1354,"order":954,"module":954,"status":954},"\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":1356,"title":1357,"order":954,"module":954,"status":954},"\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":1359,"title":1360,"order":954,"module":954,"status":954},"\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":1362,"title":1363,"order":954,"module":954,"status":954},"\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":1365,"title":1366,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F09-page-layout-with-flexbox","Page Layout With Flexbox",{"path":1368,"title":1369,"order":954,"module":954,"status":954},"\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":1371,"title":1372,"order":954,"module":954,"status":954},"\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":1374,"title":1375,"order":954,"module":954,"status":954},"\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":1377,"title":1378,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F12-basic-web-accessibility-habits","Basic Web Accessibility Habits",{"path":1380,"title":1381,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F01-why-web-applications-need-a-database","Why Web Applications Need A Database",{"path":1383,"title":1384,"order":954,"module":954,"status":954},"\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":1386,"title":1387,"order":954,"module":954,"status":954},"\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":1389,"title":1390,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F04-creating-tables-with-sql-scripts","Creating Tables With SQL Scripts",{"path":1392,"title":1393,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F05-connecting-php-to-mysql-with-pdo","Connecting PHP To MySQL With PDO",{"path":1395,"title":1396,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F06-parameterized-queries-and-sql-injection-prevention","Parameterized Queries And SQL Injection Prevention",{"path":1398,"title":1399,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F07-building-a-registration-page","Building A Registration Page",{"path":1401,"title":1402,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F08-hashing-passwords-with-password-hash","Hashing Passwords With password_hash()",{"path":1404,"title":1405,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F09-building-a-login-page","Building A Login Page",{"path":1407,"title":1408,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F10-sessions-remembering-the-logged-in-user","Sessions: Remembering The Logged-In User",{"path":1410,"title":1411,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F11-cookies-persistent-client-side-state","Cookies: Persistent Client-Side State",{"path":1413,"title":1414,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F12-navigation-that-responds-to-login-state","Navigation That Responds To Login State",{"path":1416,"title":1417,"order":954,"module":954,"status":954},"\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":1419,"title":1420,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F02-sanitizing-and-escaping-user-input","Sanitizing And Escaping User Input",{"path":1422,"title":1423,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F03-required-fields-and-length-rules","Required Fields And Length Rules",{"path":1425,"title":1426,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F04-regular-expressions-for-pattern-matching","Regular Expressions For Pattern Matching",{"path":1428,"title":1429,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F05-server-side-validation-in-php","Server-Side Validation In PHP",{"path":1431,"title":1432,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F06-cross-site-scripting-xss-prevention","Cross-Site Scripting (XSS) Prevention",{"path":1434,"title":1435,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F07-flash-messages-and-persistent-feedback","Flash Messages And Persistent Feedback",{"path":1437,"title":1438,"order":954,"module":954,"status":954},"\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":1440,"title":1441,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F09-building-a-profile-edit-page","Building A Profile Edit Page",{"path":1443,"title":1444,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F10-debugging-account-and-authentication-problems","Debugging Account And Authentication Problems",{"path":1446,"title":1447,"order":954,"module":954,"status":954},"\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":1449,"title":1450,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F01-role-based-access-control","Role-Based Access Control",{"path":1452,"title":1453,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F02-storing-roles-in-the-database","Storing Roles In The Database",{"path":1455,"title":1456,"order":954,"module":954,"status":954},"\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":1458,"title":1459,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F04-safe-redirects-after-login-and-logout","Safe Redirects After Login And Logout",{"path":1461,"title":1462,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F05-listing-records-from-the-database","Listing Records From The Database",{"path":1464,"title":1465,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F06-creating-new-records-with-a-form","Creating New Records With A Form",{"path":1467,"title":1468,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F07-editing-existing-records","Editing Existing Records",{"path":1470,"title":1471,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F08-deleting-records-safely","Deleting Records Safely",{"path":1473,"title":1474,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F09-ownership-linking-records-to-users","Ownership: Linking Records To Users",{"path":1476,"title":1477,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F10-first-project-milestone-checklist","First Project Milestone Checklist",{"path":1479,"title":1480,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F11-organizing-growing-php-applications","Organizing Growing PHP Applications",{"path":1482,"title":1483,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F12-reading-a-growing-php-application","Reading A Growing PHP Application",{"path":1485,"title":1486,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F01-what-asynchronous-requests-ajax-solve","What Asynchronous Requests (AJAX) Solve",{"path":1488,"title":1489,"order":954,"module":954,"status":954},"\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":1491,"title":1492,"order":954,"module":954,"status":954},"\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":1494,"title":1495,"order":954,"module":954,"status":954},"\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":1497,"title":1498,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F05-handling-fetch-responses-and-errors","Handling Fetch Responses And Errors",{"path":1500,"title":1501,"order":954,"module":954,"status":954},"\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":1503,"title":1504,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F07-introduction-to-rest-apis","Introduction To REST APIs",{"path":1506,"title":1507,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F08-reading-api-documentation","Reading API Documentation",{"path":1509,"title":1510,"order":954,"module":954,"status":954},"\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":1512,"title":1513,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F10-storing-and-caching-api-responses","Storing And Caching API Responses",{"path":1515,"title":1516,"order":954,"module":954,"status":954},"\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":1518,"title":1519,"order":954,"module":954,"status":954},"\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":1521,"title":1522,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F01-jquery-simplified-dom-and-event-work","jQuery: Simplified DOM And Event Work",{"path":1524,"title":1525,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F02-selecting-elements-with-jquery","Selecting Elements With jQuery",{"path":1527,"title":1528,"order":954,"module":954,"status":954},"\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":1530,"title":1531,"order":954,"module":954,"status":954},"\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":1533,"title":1534,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F05-sending-ajax-requests-with-jquery","Sending AJAX Requests With jQuery",{"path":1536,"title":1537,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F06-saving-external-api-data-through-php","Saving External API Data Through PHP",{"path":1539,"title":1540,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F07-saving-user-created-records","Saving User-Created Records",{"path":1542,"title":1543,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F08-building-a-project-listing-page","Building A Project Listing Page",{"path":1545,"title":1546,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F09-inline-editing-and-detail-views","Inline Editing And Detail Views",{"path":1548,"title":1549,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F10-second-project-milestone-checklist","Second Project Milestone Checklist",{"path":1551,"title":1552,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F01-foreign-keys-and-referential-integrity","Foreign Keys And Referential Integrity",{"path":1554,"title":1555,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F02-joining-tables-inner-join-left-join","Joining Tables: INNER JOIN, LEFT JOIN",{"path":1557,"title":1558,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F03-user-owned-records-and-access-enforcement","User-Owned Records And Access Enforcement",{"path":1560,"title":1561,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F04-connecting-api-data-to-user-records","Connecting API Data To User Records",{"path":1563,"title":1564,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F05-searching-and-filtering-with-sql","Searching And Filtering With SQL",{"path":1566,"title":1567,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F06-pagination-displaying-records-in-pages","Pagination: Displaying Records In Pages",{"path":1569,"title":1570,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F07-aggregate-functions-count-sum-avg","Aggregate Functions: COUNT, SUM, AVG",{"path":1572,"title":1573,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F08-simple-analytics-and-summary-views","Simple Analytics And Summary Views",{"path":1575,"title":1576,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F09-third-project-milestone-checklist","Third Project Milestone Checklist",{"path":1578,"title":1579,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F01-public-pages-and-unauthenticated-views","Public Pages And Unauthenticated Views",{"path":1581,"title":1582,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F02-user-profile-and-activity-pages","User Profile And Activity Pages",{"path":1584,"title":1585,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F03-refreshing-and-expiring-external-api-data","Refreshing And Expiring External API Data",{"path":1587,"title":1588,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F04-application-wide-security-audit","Application-Wide Security Audit",{"path":1590,"title":1591,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F05-cross-site-request-forgery-csrf-protection","Cross-Site Request Forgery (CSRF) Protection",{"path":1593,"title":1594,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F06-qa-testing-and-collecting-evidence","QA Testing And Collecting Evidence",{"path":1596,"title":1597,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F07-production-environment-checklist","Production Environment Checklist",{"path":1599,"title":1600,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F08-writing-a-project-readme","Writing A Project README",{"path":1602,"title":1603,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F09-final-presentation-and-code-walkthrough","Final Presentation And Code Walkthrough",{"path":1605,"title":1606,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F10-configuration-drift-and-secrets-checks","Configuration Drift And Secrets Checks",{"path":1608,"title":1609,"order":954,"module":954,"status":1610},"\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":1612,"title":1613,"order":954,"module":954,"status":1610},"\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":1615,"title":1616,"order":954,"module":954,"status":1610},"\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":1618,"title":1619,"order":954,"module":954,"status":1610},"\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":1621,"title":1622,"order":954,"module":954,"status":1610},"\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":1624,"title":1625,"order":954,"module":954,"status":1610},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F03a-local-development-environment","Quiz - Set Up A Local Development Environment",{"path":1627,"title":1628,"order":954,"module":954,"status":1610},"\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":1630,"title":1631,"order":954,"module":954,"status":1610},"\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":1633,"title":1634,"order":954,"module":954,"status":1610},"\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":1636,"title":1637,"order":954,"module":954,"status":1610},"\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":1639,"title":1640,"order":954,"module":954,"status":1610},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F08-installing-apache-and-php","Quiz - Installing Apache, PHP, And MySQL",{"path":1642,"title":1643,"order":954,"module":954,"status":1610},"\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":1645,"title":1646,"order":954,"module":954,"status":1610},"\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":1648,"title":1649,"order":954,"module":954,"status":954},"\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":1651,"title":1652,"order":954,"module":954,"status":1610},"\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":1654,"title":1655,"order":954,"module":954,"status":1610},"\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":1657,"title":1658,"order":954,"module":954,"status":1610},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F02-displaying-output-with-php","Quiz - Displaying Output With PHP",{"path":1660,"title":1661,"order":954,"module":954,"status":1610},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F03-displaying-output-with-javascript","Quiz - Displaying Output With JavaScript",{"path":1663,"title":1664,"order":954,"module":954,"status":954},"\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":1666,"title":1667,"order":954,"module":954,"status":954},"\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":1669,"title":1670,"order":954,"module":954,"status":1610},"\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":1672,"title":1673,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F07-conditional-statements-making-decisions","Quiz - Conditional Statements: Making Decisions",{"path":1675,"title":1676,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F08-loops-repeating-actions","Quiz - Loops: Repeating Actions",{"path":1678,"title":1679,"order":954,"module":954,"status":954},"\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":1681,"title":1682,"order":954,"module":954,"status":1610},"\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":1684,"title":1685,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F01-html-structure-and-meaning","Quiz - HTML: Structure And Meaning",{"path":1687,"title":1688,"order":954,"module":954,"status":1610},"\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":1690,"title":1691,"order":954,"module":954,"status":1610},"\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":1693,"title":1694,"order":954,"module":954,"status":954},"\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":1696,"title":1697,"order":954,"module":954,"status":1610},"\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":1699,"title":1700,"order":954,"module":954,"status":1610},"\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":1702,"title":1703,"order":954,"module":954,"status":954},"\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":1705,"title":1706,"order":954,"module":954,"status":954},"\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":1708,"title":1709,"order":954,"module":954,"status":1610},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F09-page-layout-with-flexbox","Quiz - Page Layout With Flexbox",{"path":1711,"title":1712,"order":954,"module":954,"status":1610},"\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":1714,"title":1715,"order":954,"module":954,"status":1610},"\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":1717,"title":1718,"order":954,"module":954,"status":1610},"\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":1720,"title":1721,"order":954,"module":954,"status":1610},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F12-basic-web-accessibility-habits","Quiz - Basic Web Accessibility Habits",{"path":1723,"title":1724,"order":954,"module":954,"status":1610},"\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":1726,"title":1727,"order":954,"module":954,"status":954},"\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":1729,"title":1730,"order":954,"module":954,"status":954},"\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":1732,"title":1733,"order":954,"module":954,"status":1610},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F04-databases-and-user-accounts\u002F04-creating-tables-with-sql-scripts","Quiz - Creating Tables With SQL Scripts",{"path":1735,"title":1736,"order":954,"module":954,"status":1610},"\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":1738,"title":1739,"order":954,"module":954,"status":1610},"\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":1741,"title":1742,"order":954,"module":954,"status":1610},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F04-databases-and-user-accounts\u002F07-building-a-registration-page","Quiz - Building A Registration Page",{"path":1744,"title":1745,"order":954,"module":954,"status":1610},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F04-databases-and-user-accounts\u002F08-hashing-passwords-with-password-hash","Quiz - Hashing Passwords With password_hash()",{"path":1747,"title":1748,"order":954,"module":954,"status":1610},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F04-databases-and-user-accounts\u002F09-building-a-login-page","Quiz - Building A Login Page",{"path":1750,"title":1751,"order":954,"module":954,"status":954},"\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":1753,"title":1754,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F04-databases-and-user-accounts\u002F11-cookies-persistent-client-side-state","Quiz - Cookies: Persistent Client-Side State",{"path":1756,"title":1757,"order":954,"module":954,"status":1610},"\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":1759,"title":1760,"order":954,"module":954,"status":1610},"\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":1762,"title":1763,"order":954,"module":954,"status":1610},"\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":1765,"title":1766,"order":954,"module":954,"status":1610},"\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":1768,"title":1769,"order":954,"module":954,"status":1610},"\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":1771,"title":1772,"order":954,"module":954,"status":1610},"\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":1774,"title":1775,"order":954,"module":954,"status":1610},"\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":1777,"title":1778,"order":954,"module":954,"status":1610},"\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":1780,"title":1781,"order":954,"module":954,"status":1610},"\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":1783,"title":1784,"order":954,"module":954,"status":1610},"\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":1786,"title":1787,"order":954,"module":954,"status":1610},"\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":1789,"title":1790,"order":954,"module":954,"status":954},"\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":1792,"title":1793,"order":954,"module":954,"status":1610},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F01-role-based-access-control","Quiz - Role-Based Access Control",{"path":1795,"title":1796,"order":954,"module":954,"status":1610},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F02-storing-roles-in-the-database","Quiz - Storing Roles In The Database",{"path":1798,"title":1799,"order":954,"module":954,"status":1610},"\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":1801,"title":1802,"order":954,"module":954,"status":1610},"\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":1804,"title":1805,"order":954,"module":954,"status":1610},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F05-listing-records-from-the-database","Quiz - Listing Records From The Database",{"path":1807,"title":1808,"order":954,"module":954,"status":1610},"\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":1810,"title":1811,"order":954,"module":954,"status":1610},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F07-editing-existing-records","Quiz - Editing Existing Records",{"path":1813,"title":1814,"order":954,"module":954,"status":1610},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F08-deleting-records-safely","Quiz - Deleting Records Safely",{"path":1816,"title":1817,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F09-ownership-linking-records-to-users","Quiz - Ownership: Linking Records To Users",{"path":1819,"title":1820,"order":954,"module":954,"status":1610},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F10-first-project-milestone-checklist","Quiz - First Project Milestone Checklist",{"path":1822,"title":1823,"order":954,"module":954,"status":1610},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F11-organizing-growing-php-applications","Quiz - Organizing Growing PHP Applications",{"path":1825,"title":1826,"order":954,"module":954,"status":1610},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F12-reading-a-growing-php-application","Quiz - Reading A Growing PHP Application",{"path":1828,"title":1829,"order":954,"module":954,"status":1610},"\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":1831,"title":1832,"order":954,"module":954,"status":1610},"\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":1834,"title":1835,"order":954,"module":954,"status":1610},"\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":1837,"title":1838,"order":954,"module":954,"status":1610},"\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":1840,"title":1841,"order":954,"module":954,"status":1610},"\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":1843,"title":1844,"order":954,"module":954,"status":1610},"\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":1846,"title":1847,"order":954,"module":954,"status":1610},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F07-introduction-to-rest-apis","Quiz - Introduction To REST APIs",{"path":1849,"title":1850,"order":954,"module":954,"status":1610},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F08-reading-api-documentation","Quiz - Reading API Documentation",{"path":1852,"title":1853,"order":954,"module":954,"status":1610},"\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":1855,"title":1856,"order":954,"module":954,"status":1610},"\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":1858,"title":1859,"order":954,"module":954,"status":1610},"\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":1861,"title":1862,"order":954,"module":954,"status":1610},"\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":1864,"title":1865,"order":954,"module":954,"status":954},"\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":1867,"title":1868,"order":954,"module":954,"status":1610},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F02-selecting-elements-with-jquery","Quiz - Selecting Elements With jQuery",{"path":1870,"title":1871,"order":954,"module":954,"status":954},"\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":1873,"title":1874,"order":954,"module":954,"status":1610},"\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":1876,"title":1877,"order":954,"module":954,"status":1610},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F05-sending-ajax-requests-with-jquery","Quiz - Sending AJAX Requests With jQuery",{"path":1879,"title":1880,"order":954,"module":954,"status":1610},"\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":1882,"title":1883,"order":954,"module":954,"status":1610},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F07-saving-user-created-records","Quiz - Saving User-Created Records",{"path":1885,"title":1886,"order":954,"module":954,"status":1610},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F08-building-a-project-listing-page","Quiz - Building A Project Listing Page",{"path":1888,"title":1889,"order":954,"module":954,"status":1610},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F09-inline-editing-and-detail-views","Quiz - Inline Editing And Detail Views",{"path":1891,"title":1892,"order":954,"module":954,"status":1610},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F10-second-project-milestone-checklist","Quiz - Second Project Milestone Checklist",{"path":1894,"title":1895,"order":954,"module":954,"status":1610},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F01-foreign-keys-and-referential-integrity","Quiz - Foreign Keys And Referential Integrity",{"path":1897,"title":1898,"order":954,"module":954,"status":1610},"\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":1900,"title":1901,"order":954,"module":954,"status":1610},"\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":1903,"title":1904,"order":954,"module":954,"status":1610},"\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":1906,"title":1907,"order":954,"module":954,"status":1610},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F05-searching-and-filtering-with-sql","Quiz - Searching And Filtering With SQL",{"path":1909,"title":1910,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F06-pagination-displaying-records-in-pages","Quiz - Pagination: Displaying Records In Pages",{"path":1912,"title":1913,"order":954,"module":954,"status":954},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F07-aggregate-functions-count-sum-avg","Quiz - Aggregate Functions: COUNT, SUM, AVG",{"path":1915,"title":1916,"order":954,"module":954,"status":1610},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F08-simple-analytics-and-summary-views","Quiz - Simple Analytics And Summary Views",{"path":1918,"title":1919,"order":954,"module":954,"status":1610},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F09-third-project-milestone-checklist","Quiz - Third Project Milestone Checklist",{"path":1921,"title":1922,"order":954,"module":954,"status":1610},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F01-public-pages-and-unauthenticated-views","Quiz - Public Pages And Unauthenticated Views",{"path":1924,"title":1925,"order":954,"module":954,"status":1610},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F02-user-profile-and-activity-pages","Quiz - User Profile And Activity Pages",{"path":1927,"title":1928,"order":954,"module":954,"status":1610},"\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":1930,"title":1931,"order":954,"module":954,"status":1610},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F04-application-wide-security-audit","Quiz - Application-Wide Security Audit",{"path":1933,"title":1934,"order":954,"module":954,"status":1610},"\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":1936,"title":1937,"order":954,"module":954,"status":1610},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F06-qa-testing-and-collecting-evidence","Quiz - QA Testing And Collecting Evidence",{"path":1939,"title":1940,"order":954,"module":954,"status":1610},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F07-production-environment-checklist","Quiz - Production Environment Checklist",{"path":1942,"title":1943,"order":954,"module":954,"status":1610},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F08-writing-a-project-readme","Quiz - Writing A Project README",{"path":1945,"title":1946,"order":954,"module":954,"status":1610},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F09-final-presentation-and-code-walkthrough","Quiz - Final Presentation And Code Walkthrough",{"path":1948,"title":1949,"order":954,"module":954,"status":1610},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F10-configuration-drift-and-secrets-checks","Quiz - Configuration Drift And Secrets Checks",{"path":1951,"title":1952,"order":975,"module":1026,"status":976},"\u002Finternet-applications\u002Fbook\u002Freference\u002Fa-command-line-basics","Command Line Basics",{"path":1954,"title":1955,"order":14,"module":1026,"status":976},"\u002Finternet-applications\u002Fbook\u002Freference\u002Fb-git-and-github-recovery","Git And GitHub Recovery",{"path":1957,"title":1958,"order":281,"module":1026,"status":976},"\u002Finternet-applications\u002Fbook\u002Freference\u002Fc-apache-and-php-troubleshooting","Apache And PHP Troubleshooting",{"path":1960,"title":1961,"order":996,"module":1026,"status":976},"\u002Finternet-applications\u002Fbook\u002Freference\u002Fd-mysql-troubleshooting","MySQL Troubleshooting",{"path":1963,"title":1964,"order":974,"module":1026,"status":976},"\u002Finternet-applications\u002Fbook\u002Freference\u002Fe-http-request-and-response-reference","HTTP Request And Response Reference",{"path":1966,"title":1967,"order":1006,"module":1026,"status":976},"\u002Finternet-applications\u002Fbook\u002Freference\u002Ff-common-security-mistakes","Common Security Mistakes",{"path":1969,"title":1970,"order":1219,"module":1026,"status":976},"\u002Finternet-applications\u002Fbook\u002Freference\u002Fg-ai-collaboration-and-disclosure","AI Collaboration And Disclosure",{"path":1972,"title":1973,"order":1026,"module":1026,"status":976},"\u002Finternet-applications\u002Fbook\u002Ftoc","Internet Applications: Table of Contents",{"path":1975,"title":1976,"order":943,"module":975,"status":976},"\u002Finternet-applications\u002Flabs\u002F01-git-recovery-and-submission-evidence","Lab 1: Git Recovery And Submission Evidence",{"path":1978,"title":1979,"order":983,"module":14,"status":976},"\u002Finternet-applications\u002Flabs\u002F02-php-output-and-error-reading","Lab 2: PHP Output And Error Reading",{"path":1981,"title":1982,"order":951,"module":281,"status":976},"\u002Finternet-applications\u002Flabs\u002F03-form-methods-and-sticky-values","Lab 3: Form Methods And Sticky Values",{"path":1984,"title":1985,"order":1101,"module":996,"status":976},"\u002Finternet-applications\u002Flabs\u002F04-pdo-query-and-sql-evidence","Lab 4: PDO Query And SQL Evidence",{"path":1987,"title":1988,"order":1120,"module":974,"status":976},"\u002Finternet-applications\u002Flabs\u002F05-validation-debugging-and-friendly-errors","Lab 5: Validation, Debugging, And Friendly Errors",{"path":1990,"title":1991,"order":944,"module":1006,"status":976},"\u002Finternet-applications\u002Flabs\u002F06-role-protected-crud-check","Lab 6: Role-Protected CRUD Check",{"path":1993,"title":1994,"order":1995,"module":1006,"status":976},"\u002Finternet-applications\u002Flabs\u002F06a-relative-paths-includes-and-feature-trace","Lab 6A: Relative Paths, Includes, And Feature Tracing","61",{"path":1997,"title":1998,"order":945,"module":1219,"status":976},"\u002Finternet-applications\u002Flabs\u002F07-json-endpoint-and-fetch-check","Lab 7: JSON Endpoint And Fetch Check",{"path":2000,"title":2001,"order":1159,"module":949,"status":976},"\u002Finternet-applications\u002Flabs\u002F08-jquery-ajax-interface-check","Lab 8: jQuery AJAX Interface Check",{"path":2003,"title":2004,"order":1163,"module":1016,"status":976},"\u002Finternet-applications\u002Flabs\u002F09-search-pagination-and-summary-check","Lab 9: Search, Pagination, And Summary Check",{"path":2006,"title":2007,"order":1167,"module":943,"status":976},"\u002Finternet-applications\u002Flabs\u002F10-final-security-and-readme-check","Lab 10: Final Security And README Check",{"path":2009,"title":2010,"order":954,"module":954,"status":976},"\u002Finternet-applications\u002Fpresentations-revised\u002F00-revision-plan","Internet Applications Presentation Revision Plan",{"path":2012,"title":2013,"order":954,"module":954,"status":976},"\u002Finternet-applications\u002Fpresentations-revised\u002F01-20-minute-recording-plan","Internet Applications Twenty-Minute Recording Plan",{"path":2015,"title":1134,"order":1026,"module":975,"status":956},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F00-learn-courses-and-discord",{"path":2017,"title":1137,"order":943,"module":975,"status":956},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F01-basic-cli-commands",{"path":2019,"title":1140,"order":983,"module":975,"status":956},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F02-install-git-tools",{"path":2021,"title":1143,"order":951,"module":975,"status":956},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F03-setup-github-ssh",{"path":2023,"title":1146,"order":1101,"module":975,"status":956},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F04-git-commands-prs",{"path":2025,"title":1149,"order":1120,"module":975,"status":956},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F05-setup-local-development-environment",{"path":2027,"title":1152,"order":944,"module":975,"status":956},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F06-add-instructor-template-to-your-repository",{"path":2029,"title":1155,"order":945,"module":975,"status":956},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F07-qa-prod-branches",{"path":2031,"title":1158,"order":1159,"module":975,"status":956},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F08-render-setup",{"path":2033,"title":1162,"order":1163,"module":975,"status":956},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F09-local-ubuntu-web-server-virtualbox",{"path":2035,"title":1166,"order":1167,"module":975,"status":976},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F10-local-ubuntu-web-server-vmware",{"path":2037,"title":1170,"order":943,"module":14,"status":956},"\u002Finternet-applications\u002Fpresentations\u002F02-php-and-javascript-basics\u002F01-compare-php-and-javascript",{"path":2039,"title":1173,"order":983,"module":14,"status":956},"\u002Finternet-applications\u002Fpresentations\u002F02-php-and-javascript-basics\u002F02-conditions-loops-functions",{"path":2041,"title":1176,"order":943,"module":281,"status":956},"\u002Finternet-applications\u002Fpresentations\u002F03-html-forms-css-and-dom\u002F01-intro-to-html",{"path":2043,"title":1179,"order":983,"module":281,"status":956},"\u002Finternet-applications\u002Fpresentations\u002F03-html-forms-css-and-dom\u002F02-intro-to-forms-and-get-post",{"path":2045,"title":1182,"order":951,"module":281,"status":956},"\u002Finternet-applications\u002Fpresentations\u002F03-html-forms-css-and-dom\u002F03-understanding-css-js-selectors-and-dom-updates",{"path":2047,"title":1185,"order":943,"module":996,"status":956},"\u002Finternet-applications\u002Fpresentations\u002F04-databases-and-user-accounts\u002F01-intro-to-sql",{"path":2049,"title":1188,"order":983,"module":996,"status":956},"\u002Finternet-applications\u002Fpresentations\u002F04-databases-and-user-accounts\u002F02-project-database-setup",{"path":2051,"title":1191,"order":951,"module":996,"status":956},"\u002Finternet-applications\u002Fpresentations\u002F04-databases-and-user-accounts\u002F03-user-registration",{"path":2053,"title":1194,"order":1101,"module":996,"status":956},"\u002Finternet-applications\u002Fpresentations\u002F04-databases-and-user-accounts\u002F04-user-login",{"path":2055,"title":1197,"order":943,"module":974,"status":956},"\u002Finternet-applications\u002Fpresentations\u002F05-validation-and-user-profiles\u002F01-intro-to-regex",{"path":2057,"title":1200,"order":983,"module":974,"status":956},"\u002Finternet-applications\u002Fpresentations\u002F05-validation-and-user-profiles\u002F02-project-shared-helpers",{"path":2059,"title":2060,"order":951,"module":974,"status":956},"\u002Finternet-applications\u002Fpresentations\u002F05-validation-and-user-profiles\u002F03-flash-messages-and-redirect-feedback","Flash Messages And Redirect Feedback",{"path":2062,"title":1206,"order":1101,"module":974,"status":956},"\u002Finternet-applications\u002Fpresentations\u002F05-validation-and-user-profiles\u002F04-user-profile",{"path":2064,"title":1209,"order":943,"module":1006,"status":956},"\u002Finternet-applications\u002Fpresentations\u002F06-roles-and-crud-pages\u002F01-user-roles-authorization",{"path":2066,"title":1212,"order":983,"module":1006,"status":956},"\u002Finternet-applications\u002Fpresentations\u002F06-roles-and-crud-pages\u002F02-user-login-enhancement",{"path":2068,"title":1215,"order":951,"module":1006,"status":956},"\u002Finternet-applications\u002Fpresentations\u002F06-roles-and-crud-pages\u002F03-dynamic-content",{"path":2070,"title":1218,"order":943,"module":1219,"status":956},"\u002Finternet-applications\u002Fpresentations\u002F07-api-data-and-database-helpers\u002F01-working-with-api-data",{"path":2072,"title":1222,"order":983,"module":1219,"status":956},"\u002Finternet-applications\u002Fpresentations\u002F07-api-data-and-database-helpers\u002F02-api-integration",{"path":2074,"title":1225,"order":951,"module":1219,"status":956},"\u002Finternet-applications\u002Fpresentations\u002F07-api-data-and-database-helpers\u002F03-database-utility-functions",{"path":2076,"title":1228,"order":943,"module":949,"status":956},"\u002Finternet-applications\u002Fpresentations\u002F08-reusable-components-jquery-and-ajax\u002F01-milestone-2-bootstrap-and-reusability",{"path":2078,"title":1231,"order":983,"module":949,"status":956},"\u002Finternet-applications\u002Fpresentations\u002F08-reusable-components-jquery-and-ajax\u002F02-jquery-brief-intro",{"path":952,"title":5,"order":951,"module":949,"status":956},{"path":2081,"title":1236,"order":943,"module":1016,"status":956},"\u002Finternet-applications\u002Fpresentations\u002F09-relational-data-search-and-pagination\u002F01-user-associations",{"path":2083,"title":1239,"order":983,"module":1016,"status":956},"\u002Finternet-applications\u002Fpresentations\u002F09-relational-data-search-and-pagination\u002F02-association-views-and-pagination",{"path":2085,"title":1242,"order":943,"module":943,"status":956},"\u002Finternet-applications\u002Fpresentations\u002F10-association-assignment-and-security\u002F01-association-assignment-and-public-profiles",{"path":2087,"title":1245,"order":983,"module":943,"status":956},"\u002Finternet-applications\u002Fpresentations\u002F10-association-assignment-and-security\u002F02-reusable-csrf-protection",{"path":2089,"title":1248,"order":975,"module":1026,"status":956},"\u002Finternet-applications\u002Fsyllabus\u002Fsummer-2026",{"path":2091,"title":2092,"order":2093,"module":943,"status":976},"\u002Finternet-applications\u002Fworksheets\u002Ffinal-project-submission-worksheet","Final Project Submission Worksheet","110",{"path":2095,"title":2096,"order":2097,"module":1006,"status":976},"\u002Finternet-applications\u002Fworksheets\u002Flegacy-milestone-01-worksheet","Legacy Milestone 1 Worksheet","118",{"path":2099,"title":2100,"order":2101,"module":1006,"status":976},"\u002Finternet-applications\u002Fworksheets\u002Flegacy-multi-dimension-php-problems-worksheet","Legacy Multi-Dimension PHP Problems Worksheet","119",{"path":2103,"title":2104,"order":2093,"module":1006,"status":976},"\u002Finternet-applications\u002Fworksheets\u002Fmilestone-01-account-access-and-profile-worksheet","IT202 Milestone 1 - 2026",{"path":2106,"title":2107,"order":2108,"module":949,"status":976},"\u002Finternet-applications\u002Fworksheets\u002Fmilestone-02-api-data-and-crud-worksheet","IT202 Milestone 2 - 2026","120",{"path":2110,"title":2111,"order":2112,"module":1016,"status":976},"\u002Finternet-applications\u002Fworksheets\u002Fmilestone-03-user-associations-worksheet","IT202 Milestone 3 - 2026","130",{"path":2114,"title":2115,"order":943,"module":975,"status":976},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-01-git-and-local-server-worksheet","Module 1 Worksheet: Git, GitHub, And Local Server Evidence",{"path":2117,"title":2118,"order":983,"module":14,"status":976},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-02-php-and-debugging-worksheet","Module 2 Worksheet: PHP Challenge Scenarios",{"path":2120,"title":2121,"order":951,"module":281,"status":976},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-03-forms-css-and-dom-worksheet","Module 3 Worksheet: HTML, CSS, JS Challenges",{"path":2123,"title":2124,"order":1101,"module":996,"status":976},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-04-database-auth-and-sessions-worksheet","Module 4 Worksheet: SQL Todo Challenge",{"path":2126,"title":2127,"order":1120,"module":974,"status":976},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-05-validation-and-debugging-worksheet","Module 5 Worksheet: Validation And Debugging Evidence",{"path":2129,"title":2130,"order":944,"module":1006,"status":976},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-06-authorization-and-crud-worksheet","Module 6 Worksheet: Authorization And CRUD Evidence",{"path":2132,"title":2133,"order":2134,"module":1006,"status":976},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-06-multi-dimensional-php-arrays-worksheet","Module 06 Worksheet: Multi-Dimensional PHP Arrays","62",{"path":2136,"title":2137,"order":945,"module":1219,"status":976},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-07-api-testing-worksheet","Module 07 Worksheet: Project API Testing",{"path":2139,"title":2140,"order":1159,"module":949,"status":976},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-08-jquery-and-dynamic-ui-worksheet","Module 8 Worksheet: jQuery And Dynamic UI Evidence",{"path":2142,"title":2143,"order":1163,"module":1016,"status":976},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-09-search-pagination-and-summary-worksheet","Module 9 Worksheet: Search, Pagination, And Summary Evidence",{"path":2145,"title":2146,"order":1167,"module":943,"status":976},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-10-final-project-readiness-worksheet","Module 10 Worksheet: Final Project Readiness Evidence",{"path":2148,"title":1137,"order":943,"module":975,"status":976},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F01-module-1-course-setup\u002F01-basic-cli-commands",{"path":2150,"title":1140,"order":983,"module":975,"status":976},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F01-module-1-course-setup\u002F02-install-git-tools",{"path":2152,"title":1143,"order":951,"module":975,"status":976},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F01-module-1-course-setup\u002F03-setup-github-ssh",{"path":2154,"title":1146,"order":1101,"module":975,"status":976},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F01-module-1-course-setup\u002F04-git-commands-prs",{"path":2156,"title":2157,"order":1120,"module":975,"status":976},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F01-module-1-course-setup\u002F05-course-repo-setup","Course Repository Setup",{"path":2159,"title":2160,"order":944,"module":975,"status":976},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F01-module-1-course-setup\u002F06-java-environment-setup","Java Development Environment Setup",{"path":2162,"title":2163,"order":943,"module":14,"status":976},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F02-module-2-java-basics\u002F01-java-basics","Java Basics",{"path":2165,"title":2166,"order":983,"module":14,"status":976},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F02-module-2-java-basics\u002F02-flow-control","Java Flow Control",{"path":2168,"title":2169,"order":951,"module":14,"status":976},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F02-module-2-java-basics\u002F03-loops","Java Loops",{"path":2171,"title":2172,"order":1101,"module":14,"status":976},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F02-module-2-java-basics\u002F04-collections","Java Arrays, Queue, Stack, ArrayList",{"path":2174,"title":2175,"order":943,"module":281,"status":976},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F03-module-3-java-io-and-oop\u002F01-user-input","Java User Input",{"path":2177,"title":2178,"order":983,"module":281,"status":976},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F03-module-3-java-io-and-oop\u002F02-oop-modifiers","Java Intro to OOP - Modifiers",{"path":2180,"title":2181,"order":951,"module":281,"status":976},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F03-module-3-java-io-and-oop\u002F03-file-io","Java File I\u002FO",{"path":2183,"title":2184,"order":1101,"module":281,"status":976},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F03-module-3-java-io-and-oop\u002F04-recursion-trees","Java Recursion and Trees",{"path":2186,"title":2187,"order":943,"module":996,"status":976},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F04-module-4-sockets-and-oop\u002F01-sockets-overview","Java Sockets: Overview",{"path":2189,"title":2190,"order":983,"module":996,"status":976},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F04-module-4-sockets-and-oop\u002F02-oop-intermediate","Java OOP Intermediate",{"path":2192,"title":2193,"order":951,"module":996,"status":976},"\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":2195,"title":2196,"order":943,"module":974,"status":976},"\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":2198,"title":2199,"order":983,"module":1006,"status":976},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F06-module-6-milestone-2-prep\u002F02-prepare-milestone-2-2026","Java Advanced Programming Preparing for Milestone 2",{"path":2201,"title":2202,"order":951,"module":1006,"status":976},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F06-module-6-milestone-2-prep\u002F03-gameserver-ready-check","Java Advanced Programming Milestone 2: GameServer Ready Check",{"path":2204,"title":2205,"order":943,"module":1219,"status":976},"\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":2207,"title":2208,"order":983,"module":1219,"status":976},"\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":2210,"title":2211,"order":951,"module":1219,"status":976},"\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":2213,"title":2214,"order":1101,"module":1219,"status":976},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F07-module-7-game-rooms-and-turns\u002F04-simultaneous-turns","Java Advanced Programming Milestone 2: Simultaneous Turns",{"path":2216,"title":2217,"order":1120,"module":1219,"status":976},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F07-module-7-game-rooms-and-turns\u002F05-individual-turns","Java Advanced Programming Milestone 2: Individual Turns",{"path":2219,"title":2220,"order":943,"module":949,"status":976},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F08-module-8-grids-cards-and-ui\u002F01-grid-integration","Java Advanced Programming Milestone 2: Grid Integration",{"path":2222,"title":2223,"order":983,"module":949,"status":976},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F08-module-8-grids-cards-and-ui\u002F02-card-integration","Java Advanced Programming Milestone 2: Cards Integration",{"path":2225,"title":2226,"order":951,"module":949,"status":976},"\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":2228,"title":2229,"order":1101,"module":949,"status":976},"\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":2231,"title":2232,"order":1120,"module":949,"status":976},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F08-module-8-grids-cards-and-ui\u002F05-java-ui-intro","Java Advanced Programming Java UI 2025",{"path":2234,"title":2235,"order":943,"module":1016,"status":976},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F09-module-9-ui-integration\u002F01-ui-integration-2026","UI Integration 2026",{"path":2237,"title":2238,"order":983,"module":1016,"status":976},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F09-module-9-ui-integration\u002F02-ui-drawing","UI Drawing",{"path":2240,"title":2241,"order":951,"module":1016,"status":976},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F09-module-9-ui-integration\u002F03-baseline-ui-integration","Baseline UI Integration",{"path":2243,"title":2244,"order":1101,"module":1016,"status":976},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F09-module-9-ui-integration\u002F04-ndff-ui-integration","NDFF UI Integration",{"path":2246,"title":2247,"order":1120,"module":1016,"status":976},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F09-module-9-ui-integration\u002F05-equals-6-ui","Equals 6 UI",{"path":2249,"title":2250,"order":944,"module":1016,"status":976},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F09-module-9-ui-integration\u002F06-popularity-mini-project","Popularity Mini Project",{"path":2252,"title":2253,"order":943,"module":943,"status":976},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F10-module-10-wrap-up-and-deployment\u002F01-milestone-3-wrapup","Milestone 3 Wrapup",{"path":2255,"title":2256,"order":983,"module":943,"status":976},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F10-module-10-wrap-up-and-deployment\u002F02-deploying-java-apps","Deploying Java Apps",{"path":2258,"title":2259,"order":951,"module":943,"status":976},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F10-module-10-wrap-up-and-deployment\u002F03-ndff-away-spectator","NDFF Away Spectator",{"path":2261,"title":2262,"order":975,"module":1026,"status":956},"\u002Fjava-advanced-programming\u002F2e\u002Fsyllabus\u002Ffall-2026","IT114 - Advanced Programming for Information Technology",{"path":2264,"title":2265,"order":943,"module":975,"status":976},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F01-course-setup-and-workflow\u002F01-course-tools-and-workflow","Course Tools And Workflow",{"path":2267,"title":2268,"order":983,"module":975,"status":976},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F01-course-setup-and-workflow\u002F02-terminal-git-and-github","Terminal, Git, And GitHub Basics",{"path":2270,"title":2271,"order":951,"module":975,"status":976},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F01-course-setup-and-workflow\u002F03-java-development-environment","Java Development Environment",{"path":2273,"title":2274,"order":943,"module":14,"status":976},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F02-java-basics\u002F01-java-program-shape","The Shape Of A Java Program",{"path":2276,"title":2277,"order":983,"module":14,"status":976},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F02-java-basics\u002F02-values-types-and-expressions","Values, Types, And Expressions",{"path":2279,"title":2280,"order":951,"module":14,"status":976},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F02-java-basics\u002F03-conditions-loops-and-collections","Conditions, Loops, And Collections",{"path":2282,"title":2283,"order":943,"module":281,"status":976},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F03-java-input-io-and-oop\u002F01-user-input-and-output","User Input And Program Output",{"path":2285,"title":2286,"order":983,"module":281,"status":976},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F03-java-input-io-and-oop\u002F02-classes-objects-and-modifiers","Classes, Objects, And Modifiers",{"path":2288,"title":2289,"order":951,"module":281,"status":976},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F03-java-input-io-and-oop\u002F03-file-io-paths-and-exceptions","File I\u002FO, Paths, And Exceptions",{"path":2291,"title":2292,"order":1101,"module":281,"status":976},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F03-java-input-io-and-oop\u002F04-recursion-and-trees","Recursion And Tree Thinking",{"path":2294,"title":2295,"order":943,"module":996,"status":976},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F04-sockets-and-oop\u002F01-sockets-client-server","Sockets And Client\u002FServer Thinking",{"path":2297,"title":2298,"order":983,"module":996,"status":976},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F04-sockets-and-oop\u002F02-server-socket-flow","The ServerSocket Flow",{"path":2300,"title":2301,"order":951,"module":996,"status":976},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F04-sockets-and-oop\u002F03-oop-for-socket-apps","OOP For Socket Applications",{"path":2303,"title":2304,"order":943,"module":974,"status":976},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F05-multi-client-sockets\u002F01-multi-client-server-shape","Multi-Client Server Shape",{"path":2306,"title":2307,"order":983,"module":974,"status":976},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F05-multi-client-sockets\u002F02-threads-shared-state-and-message-routing","Threads, Shared State, And Message Routing",{"path":2309,"title":2310,"order":951,"module":974,"status":976},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F05-multi-client-sockets\u002F03-debugging-socket-programs","Debugging Socket Programs",{"path":2312,"title":2313,"order":1026,"module":1026,"status":976},"\u002Fjava-advanced-programming\u002Fbook\u002Ftoc","Java Advanced Programming: Table of Contents",{"path":2315,"title":2316,"order":954,"module":954,"status":976},"\u002Fjava-advanced-programming\u002Fpresentations-revised\u002F00-revision-plan","Java Advanced Programming Presentation Revision Plan",{"path":2318,"title":2319,"order":954,"module":954,"status":976},"\u002Fjava-advanced-programming\u002Fpresentations-revised\u002F01-20-minute-recording-plan","Java Advanced Programming Twenty-Minute Recording Plan",{"path":2321,"title":1137,"order":943,"module":975,"status":976},"\u002Fjava-advanced-programming\u002Fpresentations\u002F01-module-1-course-setup\u002F01-basic-cli-commands",{"path":2323,"title":1140,"order":983,"module":975,"status":976},"\u002Fjava-advanced-programming\u002Fpresentations\u002F01-module-1-course-setup\u002F02-install-git-tools",{"path":2325,"title":1143,"order":951,"module":975,"status":976},"\u002Fjava-advanced-programming\u002Fpresentations\u002F01-module-1-course-setup\u002F03-setup-github-ssh",{"path":2327,"title":1146,"order":1101,"module":975,"status":976},"\u002Fjava-advanced-programming\u002Fpresentations\u002F01-module-1-course-setup\u002F04-git-commands-prs",{"path":2329,"title":2157,"order":1120,"module":975,"status":976},"\u002Fjava-advanced-programming\u002Fpresentations\u002F01-module-1-course-setup\u002F05-course-repo-setup",{"path":2331,"title":2160,"order":944,"module":975,"status":976},"\u002Fjava-advanced-programming\u002Fpresentations\u002F01-module-1-course-setup\u002F06-java-environment-setup",{"path":2333,"title":2163,"order":943,"module":14,"status":976},"\u002Fjava-advanced-programming\u002Fpresentations\u002F02-module-2-java-basics\u002F01-java-basics",{"path":2335,"title":2166,"order":983,"module":14,"status":976},"\u002Fjava-advanced-programming\u002Fpresentations\u002F02-module-2-java-basics\u002F02-flow-control",{"path":2337,"title":2169,"order":951,"module":14,"status":976},"\u002Fjava-advanced-programming\u002Fpresentations\u002F02-module-2-java-basics\u002F03-loops",{"path":2339,"title":2172,"order":1101,"module":14,"status":976},"\u002Fjava-advanced-programming\u002Fpresentations\u002F02-module-2-java-basics\u002F04-collections",{"path":2341,"title":2175,"order":943,"module":281,"status":976},"\u002Fjava-advanced-programming\u002Fpresentations\u002F03-module-3-java-io-and-oop\u002F01-user-input",{"path":2343,"title":2178,"order":983,"module":281,"status":976},"\u002Fjava-advanced-programming\u002Fpresentations\u002F03-module-3-java-io-and-oop\u002F02-oop-modifiers",{"path":2345,"title":2181,"order":951,"module":281,"status":976},"\u002Fjava-advanced-programming\u002Fpresentations\u002F03-module-3-java-io-and-oop\u002F03-file-io",{"path":2347,"title":2184,"order":1101,"module":281,"status":976},"\u002Fjava-advanced-programming\u002Fpresentations\u002F03-module-3-java-io-and-oop\u002F04-recursion-trees",{"path":2349,"title":2187,"order":943,"module":996,"status":976},"\u002Fjava-advanced-programming\u002Fpresentations\u002F04-module-4-sockets-and-oop\u002F01-sockets-overview",{"path":2351,"title":2190,"order":983,"module":996,"status":976},"\u002Fjava-advanced-programming\u002Fpresentations\u002F04-module-4-sockets-and-oop\u002F02-oop-intermediate",{"path":2353,"title":2193,"order":951,"module":996,"status":976},"\u002Fjava-advanced-programming\u002Fpresentations\u002F04-module-4-sockets-and-oop\u002F03-multi-client-chat-part-1",{"path":2355,"title":2196,"order":943,"module":974,"status":976},"\u002Fjava-advanced-programming\u002Fpresentations\u002F05-module-5-multi-client-sockets\u002F01-multi-client-chat-part-2",{"path":2357,"title":2358,"order":943,"module":1006,"status":976},"\u002Fjava-advanced-programming\u002Fpresentations\u002F06-module-6-milestone-2-prep\u002F01-prepare-milestone-2-2025","Java Advanced Programming Preparing for Milestone2 2025",{"path":2360,"title":2199,"order":983,"module":1006,"status":976},"\u002Fjava-advanced-programming\u002Fpresentations\u002F06-module-6-milestone-2-prep\u002F02-prepare-milestone-2-2026",{"path":2362,"title":2202,"order":951,"module":1006,"status":976},"\u002Fjava-advanced-programming\u002Fpresentations\u002F06-module-6-milestone-2-prep\u002F03-gameserver-ready-check",{"path":2364,"title":2205,"order":943,"module":1219,"status":976},"\u002Fjava-advanced-programming\u002Fpresentations\u002F07-module-7-game-rooms-and-turns\u002F01-game-rooms-ready-check",{"path":2366,"title":2208,"order":983,"module":1219,"status":976},"\u002Fjava-advanced-programming\u002Fpresentations\u002F07-module-7-game-rooms-and-turns\u002F02-round-robin-turns",{"path":2368,"title":2211,"order":951,"module":1219,"status":976},"\u002Fjava-advanced-programming\u002Fpresentations\u002F07-module-7-game-rooms-and-turns\u002F03-phase-based-turns",{"path":2370,"title":2214,"order":1101,"module":1219,"status":976},"\u002Fjava-advanced-programming\u002Fpresentations\u002F07-module-7-game-rooms-and-turns\u002F04-simultaneous-turns",{"path":2372,"title":2217,"order":1120,"module":1219,"status":976},"\u002Fjava-advanced-programming\u002Fpresentations\u002F07-module-7-game-rooms-and-turns\u002F05-individual-turns",{"path":2374,"title":2220,"order":943,"module":949,"status":976},"\u002Fjava-advanced-programming\u002Fpresentations\u002F08-module-8-grids-cards-and-ui\u002F01-grid-integration",{"path":2376,"title":2223,"order":983,"module":949,"status":976},"\u002Fjava-advanced-programming\u002Fpresentations\u002F08-module-8-grids-cards-and-ui\u002F02-card-integration",{"path":2378,"title":2226,"order":951,"module":949,"status":976},"\u002Fjava-advanced-programming\u002Fpresentations\u002F08-module-8-grids-cards-and-ui\u002F03-equals-6-mini-project",{"path":2380,"title":2229,"order":1101,"module":949,"status":976},"\u002Fjava-advanced-programming\u002Fpresentations\u002F08-module-8-grids-cards-and-ui\u002F04-nice-day-for-fishin",{"path":2382,"title":2232,"order":1120,"module":949,"status":976},"\u002Fjava-advanced-programming\u002Fpresentations\u002F08-module-8-grids-cards-and-ui\u002F05-java-ui-intro",{"path":2384,"title":2235,"order":943,"module":1016,"status":976},"\u002Fjava-advanced-programming\u002Fpresentations\u002F09-module-9-ui-integration\u002F01-ui-integration-2026",{"path":2386,"title":2238,"order":983,"module":1016,"status":976},"\u002Fjava-advanced-programming\u002Fpresentations\u002F09-module-9-ui-integration\u002F02-ui-drawing",{"path":2388,"title":2241,"order":951,"module":1016,"status":976},"\u002Fjava-advanced-programming\u002Fpresentations\u002F09-module-9-ui-integration\u002F03-baseline-ui-integration",{"path":2390,"title":2244,"order":1101,"module":1016,"status":976},"\u002Fjava-advanced-programming\u002Fpresentations\u002F09-module-9-ui-integration\u002F04-ndff-ui-integration",{"path":2392,"title":2247,"order":1120,"module":1016,"status":976},"\u002Fjava-advanced-programming\u002Fpresentations\u002F09-module-9-ui-integration\u002F05-equals-6-ui",{"path":2394,"title":2250,"order":944,"module":1016,"status":976},"\u002Fjava-advanced-programming\u002Fpresentations\u002F09-module-9-ui-integration\u002F06-popularity-mini-project",{"path":2396,"title":2253,"order":943,"module":943,"status":976},"\u002Fjava-advanced-programming\u002Fpresentations\u002F10-module-10-wrap-up-and-deployment\u002F01-milestone-3-wrapup",{"path":2398,"title":2256,"order":983,"module":943,"status":976},"\u002Fjava-advanced-programming\u002Fpresentations\u002F10-module-10-wrap-up-and-deployment\u002F02-deploying-java-apps",{"path":2400,"title":2259,"order":951,"module":943,"status":976},"\u002Fjava-advanced-programming\u002Fpresentations\u002F10-module-10-wrap-up-and-deployment\u002F03-ndff-away-spectator",{"path":2402,"title":2403,"order":943,"module":975,"status":976},"\u002Fsystems-integration\u002F2e\u002Fpresentations\u002F01-required-architecture-overview","Required Architecture Overview",{"path":2405,"title":2406,"order":975,"module":1026,"status":956},"\u002Fsystems-integration\u002F2e\u002Fsyllabus\u002Ffall-2026","IT490 - Systems Integration Syllabus",{"path":2408,"title":2409,"order":975,"module":1026,"status":956},"\u002Fsystems-integration","Systems Integration",{"path":2411,"title":2412,"order":954,"module":954,"status":976},"\u002Fsystems-integration\u002Fpresentations-revised\u002F00-revision-plan","Systems Integration Presentation Revision Plan",{"path":2414,"title":2415,"order":954,"module":954,"status":976},"\u002Fsystems-integration\u002Fpresentations-revised\u002F01-20-minute-recording-plan","Systems Integration Twenty-Minute Recording Plan",{"path":2417,"title":2403,"order":943,"module":975,"status":956},"\u002Fsystems-integration\u002Fpresentations\u002F01-required-architecture-overview",{"path":2419,"title":2406,"order":975,"module":1026,"status":956},"\u002Fsystems-integration\u002Fsyllabus\u002Fsummer-2026",{"path":2421,"title":2422,"order":954,"module":954,"status":954},"\u002Fsystems-integration\u002Fworksheets\u002Fit490-authentication-authorization-core-2026-draft","IT490 Authentication and Authorization Core Milestone (2026)",{"path":2424,"title":2425,"order":954,"module":954,"status":954},"\u002Fsystems-integration\u002Fworksheets\u002Fit490-centralized-logging-milestone-draft","IT490 Centralized Logging Milestone",{"path":2427,"title":2428,"order":954,"module":954,"status":954},"\u002Fsystems-integration\u002Fworksheets\u002Fit490-milestone-3-resiliency-2026-draft","IT490 Milestone 3 - Deployment, Promotion, And Recovery",{"path":2430,"title":2431,"order":954,"module":954,"status":954},"\u002Fsystems-integration\u002Fworksheets\u002Fit490-milestone-4-availability-2026-draft","IT490 Milestone 4 - Availability, Load Balancing, And Recovery",{"path":2433,"title":2434,"order":983,"module":1026,"status":976},"\u002Fsystems-integration\u002Fworksheets\u002Fmeeting-minutes-template","IT490 Meeting Minutes Template",{"path":2436,"title":2437,"order":951,"module":1026,"status":976},"\u002Fsystems-integration\u002Fworksheets\u002Fproject-changelog-template","IT490 Project Change Log Template",{"path":2439,"title":2440,"order":943,"module":1026,"status":976},"\u002Fsystems-integration\u002Fworksheets\u002Fproject-proposal-template","IT490 Project Proposal Template",1788152086864]