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