[{"data":1,"prerenderedAt":2882},["ShallowReactive",2],{"content-page:\u002Fgeneral\u002F2e\u002Fpresentations\u002F05-vscode-setup-and-course-extensions":3,"content-page-quiz:none":774,"content-navigation-index":804,"toc-page:\u002Fgeneral\u002F2e\u002Fpresentations\u002F05-vscode-setup-and-course-extensions":2359},{"id":4,"title":5,"audience":6,"body":7,"contentType":772,"course":773,"courseId":774,"description":775,"estimateBasis":776,"estimatedDiscussionMinutes":777,"estimatedLiveMinutes":778,"estimatedRecordingMinutes":779,"estimatedTitleSeconds":774,"estimatedTotalMinutes":780,"estimatedTraceMinutes":774,"extension":781,"meta":782,"module":788,"navigation":789,"order":790,"path":791,"presentationRole":792,"promptAssist":783,"revision":793,"semester":774,"seo":794,"status":795,"stem":796,"syllabus":774,"tags":797,"updated":802,"videoDuration":774,"videoId":774,"videoLink":774,"videoTitle":774,"week":788,"__hash__":803},"content\u002Fgeneral\u002F2e\u002Fpresentations\u002F05-vscode-setup-and-course-extensions.md","VS Code Setup And Course Extensions","student",{"type":8,"value":9,"toc":747},"minimark",[10,36,62,103,162,197,230,261,274,334,372,403,433,500,554,619,665,714],[11,12,15,20],"slide",{"id":13,"level":14},"outcome","2",[16,17,19],"h2",{"id":18},"objectives","Objectives",[21,22,23,27,30,33],"ul",{},[24,25,26],"li",{},"Open the repository root as the VS Code workspace",[24,28,29],{},"Use a course profile to keep extensions and settings organized",[24,31,32],{},"Run course commands from the integrated terminal",[24,34,35],{},"Install only the extensions established for the enrolled course",[11,37,39,43],{"id":38,"level":14},"core-idea",[16,40,42],{"id":41},"install-and-open-vs-code","Install And Open VS Code",[21,44,45,56,59],{},[24,46,47,48,55],{},"Download the desktop application from ",[49,50,54],"a",{"href":51,"rel":52},"https:\u002F\u002Fcode.visualstudio.com\u002FDownload",[53],"nofollow","code.visualstudio.com"," if it is not already installed",[24,57,58],{},"Install VS Code outside the course repository folder",[24,60,61],{},"Open VS Code Desktop; browser-based VS Code does not provide every local extension, runtime, or terminal capability",[11,63,66,71],{"id":64,"level":65},"workspace","3",[67,68,70],"h3",{"id":69},"open-the-repository-root","Open The Repository Root",[21,72,73,81,93,100],{},[24,74,75,76,80],{},"Open the folder where ",[77,78,79],"code",{},"git status"," succeeds, not a nested module or one individual file",[24,82,83,84,88,89,92],{},"Select ",[85,86,87],"strong",{},"File -> Open Folder",", choose the repository root, then select ",[85,90,91],{},"Trust"," only when it is a repository you cloned or created",[24,94,95,96,99],{},"You can also run ",[77,97,98],{},"code ."," from the repository root",[24,101,102],{},"VS Code Explorer should show the repository files and Source Control should show the repository branch",[11,104,106,110,158],{"id":105,"level":14},"profile",[16,107,109],{"id":108},"create-a-course-profile","Create A Course Profile",[111,112,113,123,128,145,155],"ol",{},[24,114,115,116,119,120],{},"Open the ",[85,117,118],{},"Manage"," gear in the lower-left corner, then select ",[85,121,122],{},"Profiles",[24,124,83,125],{},[85,126,127],{},"New Profile",[24,129,130,131,134,135,134,138,141,142],{},"Name the profile for the course or technology stack, such as ",[77,132,133],{},"IT202",", ",[77,136,137],{},"IT114",[77,139,140],{},"PHP",", or ",[77,143,144],{},"Java",[24,146,147,148,151,152],{},"Choose ",[85,149,150],{},"Empty Profile"," for a clean course setup, then select ",[85,153,154],{},"Create",[24,156,157],{},"Install the course extensions only after that profile is active",[159,160,161],"p",{},"A profile keeps course extensions and settings separate from unrelated projects",[11,163,165,169],{"id":164,"level":65},"profile-check",[67,166,168],{"id":167},"confirm-the-active-profile","Confirm The Active Profile",[21,170,171,178,181,184,191,194],{},[24,172,173,174,177],{},"Open ",[85,175,176],{},"Manage -> Profiles"," to see the active profile",[24,179,180],{},"The active profile can also appear as a label or icon on the Manage button",[24,182,183],{},"The selected profile is associated with the repository folder currently open in VS Code",[24,185,186,187,190],{},"Use ",[85,188,189],{},"Profiles: Switch Profile"," from the Command Palette to change profiles later",[24,192,193],{},"An extension improves editor feedback or workflow; it does not replace course commands, testing, or review",[24,195,196],{},"Do not store passwords, private keys, or other secrets in tracked workspace settings",[11,198,200,204,227],{"id":199,"level":14},"terminal",[16,201,203],{"id":202},"set-the-integrated-terminal","Set The Integrated Terminal",[111,205,206,212,218,221],{},[24,207,173,208,211],{},[85,209,210],{},"Terminal -> Select Default Profile"," or use the dropdown beside the new terminal button",[24,213,214,215],{},"On Windows, choose ",[85,216,217],{},"Git Bash",[24,219,220],{},"On macOS and Linux, keep the detected built-in terminal unless the setup instructions say otherwise",[24,222,83,223,226],{},[85,224,225],{},"Terminal -> New Terminal"," to open a terminal inside VS Code",[159,228,229],{},"This changes the terminal used inside VS Code, not the system-wide default terminal",[11,231,233,237,242],{"id":232,"level":65},"terminal-verify",[67,234,236],{"id":235},"verify-the-terminal-and-workspace","Verify The Terminal And Workspace",[238,239],"code-snippet",{"language":240,"src":241},"bash","\u002Fgenerated-snippets\u002Fgeneral\u002F2e\u002Fpresentations\u002F05-vscode-setup-and-course-extensions\u002Fverify-the-terminal-and--01.sh",[21,243,244,250,255,258],{},[24,245,246,249],{},[77,247,248],{},"pwd"," should show the repository root",[24,251,252,254],{},[77,253,79],{}," should report the current branch or a clean working tree",[24,256,257],{},"Commands behave the same as they do in another local terminal",[24,259,260],{},"The editor, terminal, runtime, and remote environment are separate tools; an extension does not install every dependency",[11,262,264,268,271],{"id":263,"level":14},"worked-example",[16,265,267],{"id":266},"choose-the-course-extension-set","Choose The Course Extension Set",[159,269,270],{},"Install required extensions in the active VS Code profile. Recommended extensions are helpful but are not a grading requirement.",[159,272,273],{},"Use the vertical course slides as the current shared reference. A course setup page may add a tool later when a unit needs it.",[11,275,277,281,286,297,302,307,312,331],{"id":276,"level":65},"it202",[16,278,280],{"id":279},"it202-internet-applications","IT202: Internet Applications",[159,282,283],{},[85,284,285],{},"Required",[21,287,288,291,294],{},[24,289,290],{},"GitLens (GitKraken) for in-editor Git history, blame, and branch visibility",[24,292,293],{},"PHP Intelephense for PHP language support, syntax checks, and warnings",[24,295,296],{},"WakaTime for the activity evidence required with homework submissions",[159,298,299],{},[85,300,301],{},"Required Before Database Work",[21,303,304],{},[24,305,306],{},"MySQL (cweijan) to connect to and inspect the course database",[159,308,309],{},[85,310,311],{},"Recommended",[21,313,314,317,320],{},[24,315,316],{},"Auto Rename Tag for matching HTML tags while editing",[24,318,319],{},"Bracket Lens for matching and closing-bracket cues",[24,321,322,323,326,327,330],{},"Todo Tree for finding ",[77,324,325],{},"TODO"," and ",[77,328,329],{},"FIXME"," comments",[159,332,333],{},"Host PHP is optional; later VM and hosted paths can run PHP. Keep database credentials out of tracked files.",[11,335,337,341,345,355,359,369],{"id":336,"level":65},"it114",[16,338,340],{"id":339},"it114-java-advanced-programming","IT114: Java Advanced Programming",[159,342,343],{},[85,344,285],{},[21,346,347,350,353],{},[24,348,349],{},"Extension Pack for Java (Microsoft) for Java language support, debugging, and tests",[24,351,352],{},"GitLens for in-editor Git history and branch visibility",[24,354,296],{},[159,356,357],{},[85,358,311],{},[21,360,361,363],{},[24,362,319],{},[24,364,322,365,326,367,330],{},[77,366,325],{},[77,368,329],{},[159,370,371],{},"Compile and run through the command-line course workflow even when VS Code offers a launch button. Browser-based VS Code does not supply every local extension or runtime capability.",[11,373,375,379,383,391,395],{"id":374,"level":65},"it490",[16,376,378],{"id":377},"it490-systems-integration","IT490: Systems Integration",[159,380,381],{},[85,382,285],{},[21,384,385,388],{},[24,386,387],{},"No course-specific VS Code extension is prescribed",[24,389,390],{},"Use the repository root workspace and the editor or remote tools named by each current setup or milestone instruction",[159,392,393],{},[85,394,311],{},[21,396,397,400],{},[24,398,399],{},"Add an extension only when it supports the assigned system or team workflow",[24,401,402],{},"Do not assume a local extension replaces validation on the assigned systems",[11,404,406,410,414,421,425],{"id":405,"level":65},"it265",[16,407,409],{"id":408},"it265-game-architecture-and-design","IT265: Game Architecture And Design",[159,411,412],{},[85,413,285],{},[21,415,416,418],{},[24,417,387],{},[24,419,420],{},"Use the repository root workspace and the tools required by the selected project technology",[159,422,423],{},[85,424,311],{},[21,426,427,430],{},[24,428,429],{},"Add tools only when the current IT265 instructions recommend them",[24,431,432],{},"Keep design files, notes, and project assets organized within the course repository",[11,434,436,440,497],{"id":435,"level":14},"mysql-extension",[16,437,439],{"id":438},"set-up-the-it202-mysql-extension","Set Up The IT202 MySQL Extension",[111,441,442,456,459,471,494],{},[24,443,444,445,448,449,452,453],{},"In the active IT202 profile, open ",[85,446,447],{},"Extensions",", search for ",[85,450,451],{},"MySQL",", and install ",[85,454,455],{},"MySQL (cweijan)",[24,457,458],{},"Open the MySQL panel in the VS Code sidebar and create a new connection",[24,460,461,462,465,466],{},"Get the generated ",[77,463,464],{},"DB_URL"," from ",[49,467,470],{"href":468,"rel":469},"https:\u002F\u002Fcourses.ethereallab.app\u002Fdatabase",[53],"courses.ethereallab.app\u002Fdatabase",[24,472,473,474],{},"Enter its separate values in the connection form:\n",[21,475,476,482,488,491],{},[24,477,478,479],{},"Host: ",[77,480,481],{},"db.ethereallab.app",[24,483,484,485],{},"Port: ",[77,486,487],{},"3306",[24,489,490],{},"Username and database: your UCID",[24,492,493],{},"Password: the generated database password from the course database page",[24,495,496],{},"Save the connection for later database lessons",[159,498,499],{},"The extension is for IT202 database inspection and query practice. Do not commit the connection password or place it in tracked VS Code settings.",[11,501,503,507,510,551],{"id":502,"level":14},"wakatime",[16,504,506],{"id":505},"set-up-wakatime-for-it202-and-it114","Set Up WakaTime For IT202 And IT114",[159,508,509],{},"WakaTime is required for activity evidence submitted with IT202 and IT114 homework. It uses your own WakaTime account and API key.",[111,511,512,520,523,530,541,548],{},[24,513,514,515],{},"Create or open an account at ",[49,516,519],{"href":517,"rel":518},"https:\u002F\u002Fwakatime.com\u002Fsignup",[53],"wakatime.com\u002Fsignup",[24,521,522],{},"Copy the API key from the WakaTime account settings",[24,524,525,526,529],{},"In the active IT202 or IT114 profile, install the ",[85,527,528],{},"WakaTime"," extension",[24,531,532,533,536,537,540],{},"Open the Command Palette with ",[77,534,535],{},"Ctrl+Shift+P"," on Windows\u002FLinux or ",[77,538,539],{},"Cmd+Shift+P"," on macOS",[24,542,543,544,547],{},"Run ",[85,545,546],{},"WakaTime: API Key",", then paste the key",[24,549,550],{},"Open and edit a repository file; restart VS Code if activity does not appear",[159,552,553],{},"Keep the API key private. WakaTime activity complements Git history; it does not replace commits or homework evidence.",[11,555,557,561],{"id":556,"level":14},"check",[16,558,560],{"id":559},"common-troubleshooting","Common Troubleshooting",[562,563,564,577],"table",{},[565,566,567],"thead",{},[568,569,570,574],"tr",{},[571,572,573],"th",{},"Problem",[571,575,576],{},"Solution",[578,579,580,589,603,611],"tbody",{},[568,581,582,586],{},[583,584,585],"td",{},"Source Control does not show the course branch",[583,587,588],{},"Reopen the repository root instead of a nested folder, then open a new terminal",[568,590,591,594],{},[583,592,593],{},"Terminal opens PowerShell on Windows",[583,595,543,596,599,600,602],{},[85,597,598],{},"Terminal: Select Default Profile",", choose ",[85,601,217],{},", then create a new terminal",[568,604,605,608],{},[583,606,607],{},"An extension is missing",[583,609,610],{},"Confirm the intended course profile is active, install the extension there, then reload VS Code",[568,612,613,616],{},[583,614,615],{},"An extension reports a runtime error",[583,617,618],{},"Verify the course runtime or remote system instead of assuming the editor extension is the source of truth",[11,620,622,625],{"id":621,"level":14},"knowledge-check",[16,623,624],{"id":621},"Knowledge Check",[621,626,627,645],{},[628,629,631],"template",{"v-slot:questions":630},"",[111,632,633,636,639,642],{},[24,634,635],{},"Which folder should be opened as the VS Code workspace?",[24,637,638],{},"Where do you create or switch a VS Code profile?",[24,640,641],{},"Which integrated terminal should Windows users select for these courses?",[24,643,644],{},"Which commands verify the terminal location and Git repository state?",[628,646,647,654,657,659],{"v-slot:answers":630},[648,649,650,651,653],"knowledge-answer",{},"The repository root: its folder name matches the repository name, and ",[77,652,79],{}," succeeds there",[648,655,656],{},"Use Manage -> Profiles, or run Profiles: Switch Profile from the Command Palette",[648,658,217],{},[648,660,661,326,663],{},[77,662,248],{},[77,664,79],{},[11,666,668,672,695,698],{"id":667,"level":14},"review-resources",[16,669,671],{"id":670},"key-terms-and-further-learning","Key Terms And Further Learning",[21,673,674,683,689],{},[24,675,676,679,680,682],{},[85,677,678],{},"Workspace root:"," The opened repository folder where ",[77,681,79],{}," succeeds.",[24,684,685,688],{},[85,686,687],{},"Profile:"," A named set of VS Code settings and extensions for a course or task.",[24,690,691,694],{},[85,692,693],{},"Integrated terminal:"," A shell opened inside VS Code at the current workspace.",[159,696,697],{},"Further Learning:",[21,699,700,707],{},[24,701,702],{},[49,703,706],{"href":704,"rel":705},"https:\u002F\u002Fcode.visualstudio.com\u002Fdocs\u002Fconfigure\u002Fprofiles",[53],"VS Code profiles",[24,708,709],{},[49,710,713],{"href":711,"rel":712},"https:\u002F\u002Fcode.visualstudio.com\u002Fdocs\u002Fterminal\u002Fprofiles",[53],"VS Code terminal profiles",[11,715,717,720],{"id":716,"level":14},"summary",[16,718,719],{"id":716},"Summary",[21,721,722,728,731,738,741,744],{},[24,723,724,725,727],{},"The repository root is the folder whose name matches the repository and where ",[77,726,79],{}," succeeds",[24,729,730],{},"A VS Code profile keeps each course or technology stack's extensions and settings together",[24,732,733,734,326,736],{},"On Windows, use Git Bash in the integrated terminal and verify the workspace with ",[77,735,248],{},[77,737,79],{},[24,739,740],{},"Course extension lists distinguish required tools from helpful recommendations",[24,742,743],{},"IT202 uses the course database connection from the course database page; IT202 and IT114 use WakaTime for homework activity evidence",[24,745,746],{},"Extensions support the course workflow but do not replace commands, testing, Git history, or required evidence",{"title":630,"searchDepth":748,"depth":748,"links":749},2,[750,751,755,758,761,762,763,764,765,766,767,768,769,770,771],{"id":18,"depth":748,"text":19},{"id":41,"depth":748,"text":42,"children":752},[753],{"id":69,"depth":754,"text":70},3,{"id":108,"depth":748,"text":109,"children":756},[757],{"id":167,"depth":754,"text":168},{"id":202,"depth":748,"text":203,"children":759},[760],{"id":235,"depth":754,"text":236},{"id":266,"depth":748,"text":267},{"id":279,"depth":748,"text":280},{"id":339,"depth":748,"text":340},{"id":377,"depth":748,"text":378},{"id":408,"depth":748,"text":409},{"id":438,"depth":748,"text":439},{"id":505,"depth":748,"text":506},{"id":559,"depth":748,"text":560},{"id":621,"depth":748,"text":624},{"id":670,"depth":748,"text":671},{"id":716,"depth":748,"text":719},"presentation","general",null,"Use VS Code from the repository root and install the tools each course actually requires or recommends.","Shared VS Code orientation with course-specific extension lists plus MySQL and WakaTime setup.","10","37","22","47","md",{"requiresLessonBranchCheckpoint":783,"sourcePresentations":784,"revisionStatus":787},false,[785,786],"internet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F05-setup-local-development-environment.md","java-advanced-programming\u002F2e\u002Fpresentations\u002F01-module-1-course-setup\u002F06-java-environment-setup.md","reviewed","1",true,"50","\u002Fgeneral\u002F2e\u002Fpresentations\u002F05-vscode-setup-and-course-extensions","Core","4",{"title":5,"description":775},"published","general\u002F2e\u002Fpresentations\u002F05-vscode-setup-and-course-extensions",[798,799,800,801],"vscode","extensions","shared-foundations","second-edition","2026-09-24","0pjhP_xh7bZA-1ZN9PGXrLDgA1EJqhKWDsuR_AkVKtw",[805,808,811,815,818,821,824,827,830,833,837,840,844,848,852,856,859,863,867,870,874,878,881,885,889,892,895,899,902,905,908,910,912,914,916,918,920,922,925,928,931,935,938,941,944,947,950,953,956,959,962,965,968,972,975,978,981,984,987,990,991,995,998,1000,1003,1006,1009,1012,1015,1018,1021,1024,1028,1032,1036,1039,1042,1045,1048,1051,1054,1057,1060,1063,1066,1069,1072,1075,1078,1081,1084,1087,1090,1093,1096,1099,1102,1105,1108,1111,1114,1117,1120,1123,1127,1130,1133,1136,1139,1142,1145,1148,1151,1154,1157,1160,1163,1166,1169,1172,1175,1178,1181,1184,1187,1190,1193,1196,1199,1202,1205,1208,1211,1214,1217,1220,1223,1226,1229,1232,1235,1238,1241,1244,1247,1250,1253,1256,1259,1262,1265,1268,1271,1274,1277,1280,1283,1286,1289,1292,1295,1298,1301,1304,1307,1310,1313,1316,1319,1322,1325,1328,1331,1334,1337,1340,1343,1346,1349,1352,1355,1358,1361,1364,1367,1370,1373,1376,1379,1382,1385,1388,1391,1394,1397,1400,1403,1406,1409,1412,1415,1418,1421,1424,1427,1430,1433,1436,1439,1442,1445,1448,1451,1454,1457,1460,1463,1466,1469,1472,1475,1478,1481,1485,1488,1491,1494,1497,1500,1503,1506,1509,1512,1515,1518,1521,1524,1527,1530,1533,1536,1539,1542,1545,1548,1551,1554,1557,1560,1563,1566,1569,1572,1575,1578,1581,1584,1587,1590,1593,1596,1599,1602,1605,1608,1611,1614,1617,1620,1623,1626,1629,1632,1635,1638,1641,1644,1647,1650,1653,1656,1659,1662,1665,1668,1671,1674,1677,1680,1683,1686,1689,1692,1695,1698,1701,1704,1707,1710,1713,1716,1719,1722,1725,1728,1731,1734,1737,1740,1743,1746,1749,1752,1755,1758,1761,1764,1767,1770,1773,1776,1779,1782,1785,1788,1791,1794,1797,1800,1803,1806,1809,1812,1815,1818,1821,1824,1827,1830,1833,1836,1839,1842,1845,1848,1851,1854,1857,1860,1863,1866,1870,1873,1876,1879,1882,1885,1888,1890,1893,1896,1899,1902,1905,1907,1909,1911,1914,1916,1918,1920,1922,1924,1926,1928,1930,1932,1934,1936,1938,1941,1943,1945,1947,1949,1951,1953,1955,1957,1959,1961,1963,1965,1967,1969,1971,1975,1979,1983,1986,1990,1994,1997,2000,2003,2006,2009,2012,2016,2019,2022,2025,2028,2031,2034,2037,2040,2043,2046,2049,2052,2055,2058,2061,2064,2067,2070,2073,2076,2079,2082,2085,2088,2091,2094,2097,2100,2103,2106,2109,2112,2115,2118,2121,2124,2127,2130,2133,2136,2139,2142,2145,2148,2151,2154,2157,2159,2162,2165,2168,2171,2174,2177,2180,2183,2186,2189,2192,2195,2198,2201,2204,2207,2210,2213,2216,2219,2221,2223,2225,2227,2230,2233,2235,2237,2239,2241,2243,2245,2247,2249,2251,2253,2255,2257,2260,2263,2266,2268,2270,2272,2274,2276,2278,2280,2282,2284,2286,2288,2290,2292,2294,2296,2298,2300,2302,2304,2307,2310,2313,2316,2319,2322,2325,2328,2331,2334,2336,2338,2341,2344,2347,2350,2353,2356],{"path":806,"title":807,"order":774,"module":774,"status":774},"\u002Fabout","About Content Version 3",{"path":809,"title":810,"order":777,"module":788,"status":795},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F01-introduction\u002F01-what-is-a-game","What is a Game?",{"path":812,"title":813,"order":814,"module":788,"status":795},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F01-introduction\u002F02-what-is-gameplay","What is Gameplay?","20",{"path":816,"title":817,"order":777,"module":14,"status":795},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F02-design-journal-and-treatment\u002F01-first-concept","First Concept, Journal, and Treatments",{"path":819,"title":820,"order":814,"module":14,"status":795},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F02-design-journal-and-treatment\u002F02-concept-workshop","Concept Workshop: Pitch, Feedback, and Selection",{"path":822,"title":823,"order":777,"module":65,"status":795},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F03-game-balance\u002F01-game-balance","Game Balance",{"path":825,"title":826,"order":814,"module":65,"status":795},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F03-game-balance\u002F02-case-study-evaluation","Case Study Evaluation",{"path":828,"title":829,"order":777,"module":793,"status":795},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F04-look-and-feel\u002F01-color-theory","Game Design: Color Theory",{"path":831,"title":832,"order":814,"module":793,"status":795},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F04-look-and-feel\u002F02-look-and-feel","Game Design - Look and Feel",{"path":834,"title":835,"order":777,"module":836,"status":795},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F05-game-mechanics\u002F01-game-mechanics","Game Mechanics","5",{"path":838,"title":839,"order":814,"module":836,"status":795},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F05-game-mechanics\u002F02-decks","Technical: Decks and Cards",{"path":841,"title":842,"order":843,"module":836,"status":795},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F05-game-mechanics\u002F03-boards-and-movement","Boards and Movement","30",{"path":845,"title":846,"order":777,"module":847,"status":795},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F06-depth-complexity-and-randomness\u002F01-depth-vs-complexity-and-randomness","Depth, Complexity, And Randomness","6",{"path":849,"title":850,"order":777,"module":851,"status":795},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F07-making-your-first-game\u002F01-planning-and-management","Planning And Managing Your Game","7",{"path":853,"title":854,"order":777,"module":777,"status":855},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F10-game-architecture\u002F01-concepts-and-design","Game Architecture: Concepts And Design","draft",{"path":857,"title":858,"order":814,"module":777,"status":855},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F10-game-architecture\u002F02-features-of-a-game-engine","Game Engine Features And Browser Feasibility",{"path":860,"title":861,"order":777,"module":862,"status":855},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F11-entity-based-systems\u002F01-ecs","Entity-Based Systems","11",{"path":864,"title":865,"order":777,"module":866,"status":855},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F12-level-mechanics-and-user-interfaces\u002F01-spatial-rules-levels-and-interface","Spatial Rules, Levels, And Interface","12",{"path":868,"title":869,"order":814,"module":866,"status":855},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F12-level-mechanics-and-user-interfaces\u002F02-digital-prototype-presentation","Digital Prototype Presentation Deck",{"path":871,"title":872,"order":777,"module":873,"status":855},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F13-actor-representations-and-artificial-intelligence\u002F01-actors-behavior-and-ai","Actors, Behavior, And AI","13",{"path":875,"title":876,"order":777,"module":877,"status":855},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F14-particles-physics-and-digital-prototype-studio\u002F01-effects-particles-and-physics","Effects, Particle Systems, And Physics","14",{"path":879,"title":880,"order":814,"module":877,"status":855},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F14-particles-physics-and-digital-prototype-studio\u002F02-recorded-project-showcase","Recorded Project Showcase",{"path":882,"title":883,"order":777,"module":884,"status":855},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F15-finale\u002F01-final-evaluation-and-postmortem","Final Evaluation And Postmortem","15",{"path":886,"title":887,"order":788,"module":888,"status":795},"\u002Fgame-architecture-and-design\u002F2e\u002Fsyllabus\u002Ffall-2026","Course Syllabus: IT265 - Game Architecture and Design","0",{"path":890,"title":891,"order":777,"module":14,"status":795},"\u002Fgame-architecture-and-design\u002F2e\u002Fworksheets\u002Fmodule-02-design-journal","Module 2 Design And Development Journal",{"path":893,"title":894,"order":814,"module":14,"status":795},"\u002Fgame-architecture-and-design\u002F2e\u002Fworksheets\u002Fmodule-02-one-page-treatment","Module 2 One-Page Treatment",{"path":896,"title":897,"order":898,"module":851,"status":795},"\u002Fgame-architecture-and-design\u002F2e\u002Fworksheets\u002Fmodule-07-game-design-treatment","Full Game Design Treatment","70",{"path":900,"title":901,"order":788,"module":888,"status":855},"\u002Fgame-architecture-and-design","Game Architecture and Design",{"path":903,"title":904,"order":774,"module":774,"status":855},"\u002Fgame-architecture-and-design\u002Fpresentations-revised\u002F00-revision-plan","Game Architecture And Design Revision Plan - Superseded Historical Baseline",{"path":906,"title":907,"order":774,"module":774,"status":855},"\u002Fgame-architecture-and-design\u002Fpresentations-revised\u002F01-20-minute-recording-plan","Game Architecture And Design Recording Plan - Superseded Historical Baseline",{"path":909,"title":810,"order":777,"module":788,"status":855},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F01-introduction\u002F01-what-is-a-game",{"path":911,"title":813,"order":814,"module":788,"status":855},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F01-introduction\u002F02-what-is-gameplay",{"path":913,"title":823,"order":777,"module":14,"status":855},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F02-game-balance\u002F01-game-balance",{"path":915,"title":829,"order":777,"module":65,"status":855},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F03-look-and-feel\u002F01-color-theory",{"path":917,"title":832,"order":814,"module":65,"status":855},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F03-look-and-feel\u002F02-look-and-feel",{"path":919,"title":835,"order":777,"module":793,"status":855},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F04-game-mechanics\u002F01-game-mechanics",{"path":921,"title":839,"order":814,"module":793,"status":855},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F04-game-mechanics\u002F02-decks",{"path":923,"title":924,"order":777,"module":836,"status":855},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F05-depth-complexity-and-randomness\u002F01-depth-vs-complexity-and-randomness","Depth vs Complexity and Randomness",{"path":926,"title":927,"order":777,"module":847,"status":855},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F06-first-game-planning\u002F01-first-concept","First Concept: Updated Lesson",{"path":929,"title":930,"order":814,"module":847,"status":855},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F06-first-game-planning\u002F02-planning-and-management","Planning and Management",{"path":932,"title":933,"order":777,"module":934,"status":855},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F08-game-architecture\u002F01-concepts-and-design","Game Architecture: Concepts and Design","8",{"path":936,"title":937,"order":814,"module":934,"status":855},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F08-game-architecture\u002F02-features-of-a-game-engine","Game Architecture: Features of a Game Engine",{"path":939,"title":861,"order":777,"module":940,"status":855},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F09-entity-based-systems\u002F01-ecs","9",{"path":942,"title":943,"order":777,"module":777,"status":855},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F10-level-mechanics\u002F01-level-mechanics","Game Design: Introduction to Level Mechanics",{"path":945,"title":946,"order":814,"module":777,"status":855},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F10-level-mechanics\u002F02-grids","Technical: Square vs Hex Grids in Board Games",{"path":948,"title":949,"order":777,"module":862,"status":855},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F11-user-interfaces\u002F01-user-interfaces","Game Design: User Interfaces",{"path":951,"title":952,"order":777,"module":866,"status":855},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F12-actor-representations\u002F01-actors","Game Design: Actor Representations",{"path":954,"title":955,"order":777,"module":873,"status":855},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F13-artificial-intelligence\u002F01-ai","Game Design: AI",{"path":957,"title":958,"order":777,"module":877,"status":855},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F14-particles-and-physics\u002F01-particles-and-physics","IT265: Particle Systems and Physics Engine",{"path":960,"title":961,"order":788,"module":888,"status":855},"\u002Fgame-architecture-and-design\u002Fsyllabus\u002Fspring-2026","Course Syllabus: IT265 - Game Architecture",{"path":963,"title":964,"order":777,"module":888,"status":855},"\u002Fgame-architecture-and-design\u002Fworksheets\u002Fcase-study-1-atari-worksheet","Case Study 1 - Atari",{"path":966,"title":967,"order":814,"module":888,"status":855},"\u002Fgame-architecture-and-design\u002Fworksheets\u002Fit265-case-study-color-theory-worksheet","IT265 Case Study - Color Theory",{"path":969,"title":970,"order":971,"module":888,"status":855},"\u002Fgame-architecture-and-design\u002Fworksheets\u002Fit265-case-study-personal-choice-worksheet","IT265 Case Study - Personal Choice","40",{"path":973,"title":974,"order":843,"module":888,"status":855},"\u002Fgame-architecture-and-design\u002Fworksheets\u002Fit265-design-treatment-checkpoint-worksheet","IT265 Design Treatment Checkpoint",{"path":976,"title":977,"order":888,"module":788,"status":795},"\u002Fgeneral\u002F2e\u002Fpresentations\u002F00-learn-courses-platform-and-discord","Learn Courses Platform And Discord",{"path":979,"title":980,"order":777,"module":788,"status":795},"\u002Fgeneral\u002F2e\u002Fpresentations\u002F01-git-and-terminal-setup","Git And Terminal Setup",{"path":982,"title":983,"order":814,"module":788,"status":795},"\u002Fgeneral\u002F2e\u002Fpresentations\u002F02-cli-foundations","CLI Foundations",{"path":985,"title":986,"order":843,"module":788,"status":795},"\u002Fgeneral\u002F2e\u002Fpresentations\u002F03-github-setup-and-ssh","GitHub Setup And SSH",{"path":988,"title":989,"order":971,"module":788,"status":795},"\u002Fgeneral\u002F2e\u002Fpresentations\u002F04-local-git-workflow-and-course-repositories","Local Git Workflow And Course Repositories",{"path":791,"title":5,"order":790,"module":788,"status":795},{"path":992,"title":993,"order":994,"module":788,"status":795},"\u002Fgeneral\u002F2e\u002Fpresentations\u002F06-trace-learning-journal","TRACE Learning Journal Foundations","60",{"path":996,"title":997,"order":774,"module":774,"status":774},"\u002Fgeneral\u002Fbasic-cli","Basic Command Line",{"path":999,"title":997,"order":777,"module":788,"status":774},"\u002Fgeneral\u002Fbasic-command-line",{"path":1001,"title":1002,"order":774,"module":774,"status":795},"\u002F","Ethereal Lab Course Materials",{"path":1004,"title":1005,"order":777,"module":788,"status":855},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F01-basic-cli-commands","IT202 Setup Path And CLI Readiness",{"path":1007,"title":1008,"order":814,"module":788,"status":855},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F02-install-git-tools","IT202 Git And Terminal Handoff",{"path":1010,"title":1011,"order":843,"module":788,"status":855},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F03-setup-github-ssh","IT202 Repository And SSH Extension",{"path":1013,"title":1014,"order":971,"module":788,"status":855},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F04-git-commands-prs","IT202 Git Workflow Handoff",{"path":1016,"title":1017,"order":790,"module":788,"status":795},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F05-setup-local-development-environment","Standalone PHP Setup",{"path":1019,"title":1020,"order":994,"module":788,"status":795},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F06-add-instructor-template-to-your-repository","Add Instructor Template To Your Repository",{"path":1022,"title":1023,"order":898,"module":788,"status":795},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F07-qa-prod-branches","QA And Prod Branches",{"path":1025,"title":1026,"order":1027,"module":788,"status":795},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F08-render-setup","Render Setup","80",{"path":1029,"title":1030,"order":1031,"module":788,"status":795},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F09-local-ubuntu-web-server-virtualbox","Local Ubuntu Web Server With VirtualBox Or UTM","90",{"path":1033,"title":1034,"order":1035,"module":788,"status":855},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F10-local-ubuntu-web-server-vmware","Local Ubuntu Web Server With VMware","100",{"path":1037,"title":1038,"order":777,"module":14,"status":795},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F02-php-and-javascript-basics\u002F01-compare-php-and-javascript","Compare PHP And JavaScript",{"path":1040,"title":1041,"order":814,"module":14,"status":795},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F02-php-and-javascript-basics\u002F02-conditions-loops-functions","Use Conditions Loops And Functions",{"path":1043,"title":1044,"order":777,"module":65,"status":795},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F03-html-forms-css-and-dom\u002F01-intro-to-html","Intro To HTML",{"path":1046,"title":1047,"order":814,"module":65,"status":795},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F03-html-forms-css-and-dom\u002F02-intro-to-forms-and-get-post","Intro To Forms And GET\u002FPOST",{"path":1049,"title":1050,"order":843,"module":65,"status":795},"\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":1052,"title":1053,"order":777,"module":793,"status":795},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F04-databases-and-user-accounts\u002F01-intro-to-sql","Intro To SQL",{"path":1055,"title":1056,"order":814,"module":793,"status":795},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F04-databases-and-user-accounts\u002F02-project-database-setup","Project Database Setup",{"path":1058,"title":1059,"order":843,"module":793,"status":795},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F04-databases-and-user-accounts\u002F03-user-registration","User Registration",{"path":1061,"title":1062,"order":971,"module":793,"status":795},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F04-databases-and-user-accounts\u002F04-user-login","User Login",{"path":1064,"title":1065,"order":777,"module":836,"status":855},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F05-validation-and-user-profiles\u002F01-intro-to-regex","Intro To Regex",{"path":1067,"title":1068,"order":814,"module":836,"status":855},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F05-validation-and-user-profiles\u002F02-project-shared-helpers","Project Shared Helpers",{"path":1070,"title":1071,"order":843,"module":836,"status":855},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F05-validation-and-user-profiles\u002F03-flash-messages-and-redirect-feedback","User Feedback After Redirects",{"path":1073,"title":1074,"order":971,"module":836,"status":855},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F05-validation-and-user-profiles\u002F04-user-profile","User Profile",{"path":1076,"title":1077,"order":777,"module":847,"status":855},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F06-roles-and-crud-pages\u002F01-user-roles-authorization","User Roles Authorization",{"path":1079,"title":1080,"order":814,"module":847,"status":855},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F06-roles-and-crud-pages\u002F02-user-login-enhancement","User Login Enhancement",{"path":1082,"title":1083,"order":843,"module":847,"status":855},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F06-roles-and-crud-pages\u002F03-dynamic-content","Dynamic Content",{"path":1085,"title":1086,"order":777,"module":851,"status":855},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F07-api-data-and-database-helpers\u002F01-working-with-api-data","Working With API Data",{"path":1088,"title":1089,"order":814,"module":851,"status":855},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F07-api-data-and-database-helpers\u002F02-api-integration","API Integration",{"path":1091,"title":1092,"order":843,"module":851,"status":855},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F07-api-data-and-database-helpers\u002F03-database-utility-functions","Database Utility Functions",{"path":1094,"title":1095,"order":777,"module":934,"status":855},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F08-reusable-components-jquery-and-ajax\u002F01-milestone-2-bootstrap-and-reusability","Milestone 2 Bootstrap And Reusability",{"path":1097,"title":1098,"order":814,"module":934,"status":855},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F08-reusable-components-jquery-and-ajax\u002F02-jquery-brief-intro","jQuery Brief Intro",{"path":1100,"title":1101,"order":843,"module":934,"status":855},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F08-reusable-components-jquery-and-ajax\u002F03-intro-to-ajax","Intro To AJAX",{"path":1103,"title":1104,"order":777,"module":940,"status":855},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F09-relational-data-search-and-pagination\u002F01-user-associations","Add User Associations",{"path":1106,"title":1107,"order":814,"module":940,"status":855},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F09-relational-data-search-and-pagination\u002F02-association-views-and-pagination","Add Association Views And Pagination",{"path":1109,"title":1110,"order":777,"module":777,"status":855},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F10-association-assignment-and-security\u002F01-association-assignment-and-public-profiles","Association Management And Public Profiles",{"path":1112,"title":1113,"order":814,"module":777,"status":855},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F10-association-assignment-and-security\u002F02-reusable-csrf-protection","Reusable CSRF Protection",{"path":1115,"title":1116,"order":788,"module":888,"status":795},"\u002Finternet-applications\u002F2e\u002Fsyllabus\u002Ffall-2026","IT202 - Internet Applications Syllabus",{"path":1118,"title":1119,"order":777,"module":788,"status":795},"\u002Finternet-applications\u002F2e\u002Fworksheets\u002Fmodule-01-getting-started","Module 1 Getting Started",{"path":1121,"title":1122,"order":814,"module":14,"status":795},"\u002Finternet-applications\u002F2e\u002Fworksheets\u002Fmodule-02-php-challenges","Module 2 PHP Challenge Scenarios",{"path":1124,"title":1125,"order":971,"module":777,"status":1126},"\u002Finternet-applications\u002Fassignments\u002Ffinal-project-submission","Final Project Submission","review",{"path":1128,"title":1129,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fassignments\u002Fmilestones\u002F01-account-access-and-profile-system","Milestone 1: Account, Access, And Profile System",{"path":1131,"title":1132,"order":814,"module":934,"status":1126},"\u002Finternet-applications\u002Fassignments\u002Fmilestones\u002F02-api-data-and-project-crud","Milestone 2: API Data And Project CRUD",{"path":1134,"title":1135,"order":843,"module":940,"status":1126},"\u002Finternet-applications\u002Fassignments\u002Fmilestones\u002F03-user-associations-search-and-summary","Milestone 3: User Associations, Search, And Summary Views",{"path":1137,"title":1138,"order":836,"module":793,"status":795},"\u002Finternet-applications\u002Fassignments\u002Fproject-proposal","IT 202 Project Proposal",{"path":1140,"title":1141,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F01-what-this-course-is-building","What Internet Applications Build",{"path":1143,"title":1144,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F02-files-folders-and-project-structure","Files, Folders, And Project Structure",{"path":1146,"title":1147,"order":774,"module":774,"status":774},"\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":1149,"title":1150,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F02b-install-git-and-terminal-tools","Install Git And Terminal Tools",{"path":1152,"title":1153,"order":774,"module":774,"status":774},"\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":1155,"title":1156,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F03a-local-development-environment","Set Up A Local Development Environment",{"path":1158,"title":1159,"order":774,"module":774,"status":774},"\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":1161,"title":1162,"order":774,"module":774,"status":774},"\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":1164,"title":1165,"order":774,"module":774,"status":774},"\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":1167,"title":1168,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F07-git-recovery-and-common-mistakes","Git Recovery And Common Mistakes",{"path":1170,"title":1171,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F08-installing-apache-and-php","Installing Apache, PHP, And MySQL",{"path":1173,"title":1174,"order":774,"module":774,"status":774},"\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":1176,"title":1177,"order":774,"module":774,"status":774},"\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":1179,"title":1180,"order":774,"module":774,"status":774},"\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":1182,"title":1183,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F12-local-qa-and-production-environments","Local, QA, And Production Environments",{"path":1185,"title":1186,"order":774,"module":774,"status":774},"\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":1188,"title":1189,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F02-displaying-output-with-php","Displaying Output With PHP",{"path":1191,"title":1192,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F03-displaying-output-with-javascript","Displaying Output With JavaScript",{"path":1194,"title":1195,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F04-variables-storing-and-naming-values","Variables: Storing And Naming Values",{"path":1197,"title":1198,"order":774,"module":774,"status":774},"\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":1200,"title":1201,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F06-arrays-storing-lists-of-values","Arrays: Storing Lists Of Values",{"path":1203,"title":1204,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F07-conditional-statements-making-decisions","Conditional Statements: Making Decisions",{"path":1206,"title":1207,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F08-loops-repeating-actions","Loops: Repeating Actions",{"path":1209,"title":1210,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F09-functions-reusable-blocks-of-logic","Functions: Reusable Blocks Of Logic",{"path":1212,"title":1213,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F10-reading-and-debugging-error-messages","Reading And Debugging Error Messages",{"path":1215,"title":1216,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F01-html-structure-and-meaning","HTML: Structure And Meaning",{"path":1218,"title":1219,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F02-writing-a-valid-html-document","Writing A Valid HTML Document",{"path":1221,"title":1222,"order":774,"module":774,"status":774},"\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":1224,"title":1225,"order":774,"module":774,"status":774},"\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":1227,"title":1228,"order":774,"module":774,"status":774},"\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":1230,"title":1231,"order":774,"module":774,"status":774},"\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":1233,"title":1234,"order":774,"module":774,"status":774},"\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":1236,"title":1237,"order":774,"module":774,"status":774},"\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":1239,"title":1240,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F09-page-layout-with-flexbox","Page Layout With Flexbox",{"path":1242,"title":1243,"order":774,"module":774,"status":774},"\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":1245,"title":1246,"order":774,"module":774,"status":774},"\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":1248,"title":1249,"order":774,"module":774,"status":774},"\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":1251,"title":1252,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F12-basic-web-accessibility-habits","Basic Web Accessibility Habits",{"path":1254,"title":1255,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F01-why-web-applications-need-a-database","Why Web Applications Need A Database",{"path":1257,"title":1258,"order":774,"module":774,"status":774},"\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":1260,"title":1261,"order":774,"module":774,"status":774},"\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":1263,"title":1264,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F04-creating-tables-with-sql-scripts","Creating Tables With SQL Scripts",{"path":1266,"title":1267,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F05-connecting-php-to-mysql-with-pdo","Connecting PHP To MySQL With PDO",{"path":1269,"title":1270,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F06-parameterized-queries-and-sql-injection-prevention","Parameterized Queries And SQL Injection Prevention",{"path":1272,"title":1273,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F07-building-a-registration-page","Building A Registration Page",{"path":1275,"title":1276,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F08-hashing-passwords-with-password-hash","Hashing Passwords With password_hash()",{"path":1278,"title":1279,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F09-building-a-login-page","Building A Login Page",{"path":1281,"title":1282,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F10-sessions-remembering-the-logged-in-user","Sessions: Remembering The Logged-In User",{"path":1284,"title":1285,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F11-cookies-persistent-client-side-state","Cookies: Persistent Client-Side State",{"path":1287,"title":1288,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F12-navigation-that-responds-to-login-state","Navigation That Responds To Login State",{"path":1290,"title":1291,"order":774,"module":774,"status":774},"\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":1293,"title":1294,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F02-sanitizing-and-escaping-user-input","Sanitizing And Escaping User Input",{"path":1296,"title":1297,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F03-required-fields-and-length-rules","Required Fields And Length Rules",{"path":1299,"title":1300,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F04-regular-expressions-for-pattern-matching","Regular Expressions For Pattern Matching",{"path":1302,"title":1303,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F05-server-side-validation-in-php","Server-Side Validation In PHP",{"path":1305,"title":1306,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F06-cross-site-scripting-xss-prevention","Cross-Site Scripting (XSS) Prevention",{"path":1308,"title":1309,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F07-flash-messages-and-persistent-feedback","Flash Messages And Persistent Feedback",{"path":1311,"title":1312,"order":774,"module":774,"status":774},"\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":1314,"title":1315,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F09-building-a-profile-edit-page","Building A Profile Edit Page",{"path":1317,"title":1318,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F10-debugging-account-and-authentication-problems","Debugging Account And Authentication Problems",{"path":1320,"title":1321,"order":774,"module":774,"status":774},"\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":1323,"title":1324,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F01-role-based-access-control","Role-Based Access Control",{"path":1326,"title":1327,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F02-storing-roles-in-the-database","Storing Roles In The Database",{"path":1329,"title":1330,"order":774,"module":774,"status":774},"\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":1332,"title":1333,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F04-safe-redirects-after-login-and-logout","Safe Redirects After Login And Logout",{"path":1335,"title":1336,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F05-listing-records-from-the-database","Listing Records From The Database",{"path":1338,"title":1339,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F06-creating-new-records-with-a-form","Creating New Records With A Form",{"path":1341,"title":1342,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F07-editing-existing-records","Editing Existing Records",{"path":1344,"title":1345,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F08-deleting-records-safely","Deleting Records Safely",{"path":1347,"title":1348,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F09-ownership-linking-records-to-users","Ownership: Linking Records To Users",{"path":1350,"title":1351,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F10-first-project-milestone-checklist","First Project Milestone Checklist",{"path":1353,"title":1354,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F11-organizing-growing-php-applications","Organizing Growing PHP Applications",{"path":1356,"title":1357,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F12-reading-a-growing-php-application","Reading A Growing PHP Application",{"path":1359,"title":1360,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F01-what-asynchronous-requests-ajax-solve","What Asynchronous Requests (AJAX) Solve",{"path":1362,"title":1363,"order":774,"module":774,"status":774},"\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":1365,"title":1366,"order":774,"module":774,"status":774},"\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":1368,"title":1369,"order":774,"module":774,"status":774},"\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":1371,"title":1372,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F05-handling-fetch-responses-and-errors","Handling Fetch Responses And Errors",{"path":1374,"title":1375,"order":774,"module":774,"status":774},"\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":1377,"title":1378,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F07-introduction-to-rest-apis","Introduction To REST APIs",{"path":1380,"title":1381,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F08-reading-api-documentation","Reading API Documentation",{"path":1383,"title":1384,"order":774,"module":774,"status":774},"\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":1386,"title":1387,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F10-storing-and-caching-api-responses","Storing And Caching API Responses",{"path":1389,"title":1390,"order":774,"module":774,"status":774},"\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":1392,"title":1393,"order":774,"module":774,"status":774},"\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":1395,"title":1396,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F01-jquery-simplified-dom-and-event-work","jQuery: Simplified DOM And Event Work",{"path":1398,"title":1399,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F02-selecting-elements-with-jquery","Selecting Elements With jQuery",{"path":1401,"title":1402,"order":774,"module":774,"status":774},"\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":1404,"title":1405,"order":774,"module":774,"status":774},"\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":1407,"title":1408,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F05-sending-ajax-requests-with-jquery","Sending AJAX Requests With jQuery",{"path":1410,"title":1411,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F06-saving-external-api-data-through-php","Saving External API Data Through PHP",{"path":1413,"title":1414,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F07-saving-user-created-records","Saving User-Created Records",{"path":1416,"title":1417,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F08-building-a-project-listing-page","Building A Project Listing Page",{"path":1419,"title":1420,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F09-inline-editing-and-detail-views","Inline Editing And Detail Views",{"path":1422,"title":1423,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F10-second-project-milestone-checklist","Second Project Milestone Checklist",{"path":1425,"title":1426,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F01-foreign-keys-and-referential-integrity","Foreign Keys And Referential Integrity",{"path":1428,"title":1429,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F02-joining-tables-inner-join-left-join","Joining Tables: INNER JOIN, LEFT JOIN",{"path":1431,"title":1432,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F03-user-owned-records-and-access-enforcement","User-Owned Records And Access Enforcement",{"path":1434,"title":1435,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F04-connecting-api-data-to-user-records","Connecting API Data To User Records",{"path":1437,"title":1438,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F05-searching-and-filtering-with-sql","Searching And Filtering With SQL",{"path":1440,"title":1441,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F06-pagination-displaying-records-in-pages","Pagination: Displaying Records In Pages",{"path":1443,"title":1444,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F07-aggregate-functions-count-sum-avg","Aggregate Functions: COUNT, SUM, AVG",{"path":1446,"title":1447,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F08-simple-analytics-and-summary-views","Simple Analytics And Summary Views",{"path":1449,"title":1450,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F09-third-project-milestone-checklist","Third Project Milestone Checklist",{"path":1452,"title":1453,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F01-public-pages-and-unauthenticated-views","Public Pages And Unauthenticated Views",{"path":1455,"title":1456,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F02-user-profile-and-activity-pages","User Profile And Activity Pages",{"path":1458,"title":1459,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F03-refreshing-and-expiring-external-api-data","Refreshing And Expiring External API Data",{"path":1461,"title":1462,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F04-application-wide-security-audit","Application-Wide Security Audit",{"path":1464,"title":1465,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F05-cross-site-request-forgery-csrf-protection","Cross-Site Request Forgery (CSRF) Protection",{"path":1467,"title":1468,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F06-qa-testing-and-collecting-evidence","QA Testing And Collecting Evidence",{"path":1470,"title":1471,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F07-production-environment-checklist","Production Environment Checklist",{"path":1473,"title":1474,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F08-writing-a-project-readme","Writing A Project README",{"path":1476,"title":1477,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F09-final-presentation-and-code-walkthrough","Final Presentation And Code Walkthrough",{"path":1479,"title":1480,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F10-configuration-drift-and-secrets-checks","Configuration Drift And Secrets Checks",{"path":1482,"title":1483,"order":774,"module":774,"status":1484},"\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":1486,"title":1487,"order":774,"module":774,"status":1484},"\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":1489,"title":1490,"order":774,"module":774,"status":1484},"\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":1492,"title":1493,"order":774,"module":774,"status":1484},"\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":1495,"title":1496,"order":774,"module":774,"status":1484},"\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":1498,"title":1499,"order":774,"module":774,"status":1484},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F03a-local-development-environment","Quiz - Set Up A Local Development Environment",{"path":1501,"title":1502,"order":774,"module":774,"status":1484},"\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":1504,"title":1505,"order":774,"module":774,"status":1484},"\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":1507,"title":1508,"order":774,"module":774,"status":1484},"\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":1510,"title":1511,"order":774,"module":774,"status":1484},"\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":1513,"title":1514,"order":774,"module":774,"status":1484},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F08-installing-apache-and-php","Quiz - Installing Apache, PHP, And MySQL",{"path":1516,"title":1517,"order":774,"module":774,"status":1484},"\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":1519,"title":1520,"order":774,"module":774,"status":1484},"\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":1522,"title":1523,"order":774,"module":774,"status":774},"\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":1525,"title":1526,"order":774,"module":774,"status":1484},"\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":1528,"title":1529,"order":774,"module":774,"status":1484},"\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":1531,"title":1532,"order":774,"module":774,"status":1484},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F02-displaying-output-with-php","Quiz - Displaying Output With PHP",{"path":1534,"title":1535,"order":774,"module":774,"status":1484},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F03-displaying-output-with-javascript","Quiz - Displaying Output With JavaScript",{"path":1537,"title":1538,"order":774,"module":774,"status":774},"\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":1540,"title":1541,"order":774,"module":774,"status":774},"\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":1543,"title":1544,"order":774,"module":774,"status":1484},"\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":1546,"title":1547,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F07-conditional-statements-making-decisions","Quiz - Conditional Statements: Making Decisions",{"path":1549,"title":1550,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F08-loops-repeating-actions","Quiz - Loops: Repeating Actions",{"path":1552,"title":1553,"order":774,"module":774,"status":774},"\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":1555,"title":1556,"order":774,"module":774,"status":1484},"\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":1558,"title":1559,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F01-html-structure-and-meaning","Quiz - HTML: Structure And Meaning",{"path":1561,"title":1562,"order":774,"module":774,"status":1484},"\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":1564,"title":1565,"order":774,"module":774,"status":1484},"\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":1567,"title":1568,"order":774,"module":774,"status":774},"\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":1570,"title":1571,"order":774,"module":774,"status":1484},"\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":1573,"title":1574,"order":774,"module":774,"status":1484},"\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":1576,"title":1577,"order":774,"module":774,"status":774},"\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":1579,"title":1580,"order":774,"module":774,"status":774},"\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":1582,"title":1583,"order":774,"module":774,"status":1484},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F09-page-layout-with-flexbox","Quiz - Page Layout With Flexbox",{"path":1585,"title":1586,"order":774,"module":774,"status":1484},"\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":1588,"title":1589,"order":774,"module":774,"status":1484},"\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":1591,"title":1592,"order":774,"module":774,"status":1484},"\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":1594,"title":1595,"order":774,"module":774,"status":1484},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F12-basic-web-accessibility-habits","Quiz - Basic Web Accessibility Habits",{"path":1597,"title":1598,"order":774,"module":774,"status":1484},"\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":1600,"title":1601,"order":774,"module":774,"status":774},"\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":1603,"title":1604,"order":774,"module":774,"status":774},"\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":1606,"title":1607,"order":774,"module":774,"status":1484},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F04-databases-and-user-accounts\u002F04-creating-tables-with-sql-scripts","Quiz - Creating Tables With SQL Scripts",{"path":1609,"title":1610,"order":774,"module":774,"status":1484},"\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":1612,"title":1613,"order":774,"module":774,"status":1484},"\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":1615,"title":1616,"order":774,"module":774,"status":1484},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F04-databases-and-user-accounts\u002F07-building-a-registration-page","Quiz - Building A Registration Page",{"path":1618,"title":1619,"order":774,"module":774,"status":1484},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F04-databases-and-user-accounts\u002F08-hashing-passwords-with-password-hash","Quiz - Hashing Passwords With password_hash()",{"path":1621,"title":1622,"order":774,"module":774,"status":1484},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F04-databases-and-user-accounts\u002F09-building-a-login-page","Quiz - Building A Login Page",{"path":1624,"title":1625,"order":774,"module":774,"status":774},"\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":1627,"title":1628,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F04-databases-and-user-accounts\u002F11-cookies-persistent-client-side-state","Quiz - Cookies: Persistent Client-Side State",{"path":1630,"title":1631,"order":774,"module":774,"status":1484},"\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":1633,"title":1634,"order":774,"module":774,"status":1484},"\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":1636,"title":1637,"order":774,"module":774,"status":1484},"\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":1639,"title":1640,"order":774,"module":774,"status":1484},"\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":1642,"title":1643,"order":774,"module":774,"status":1484},"\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":1645,"title":1646,"order":774,"module":774,"status":1484},"\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":1648,"title":1649,"order":774,"module":774,"status":1484},"\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":1651,"title":1652,"order":774,"module":774,"status":1484},"\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":1654,"title":1655,"order":774,"module":774,"status":1484},"\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":1657,"title":1658,"order":774,"module":774,"status":1484},"\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":1660,"title":1661,"order":774,"module":774,"status":1484},"\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":1663,"title":1664,"order":774,"module":774,"status":774},"\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":1666,"title":1667,"order":774,"module":774,"status":1484},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F01-role-based-access-control","Quiz - Role-Based Access Control",{"path":1669,"title":1670,"order":774,"module":774,"status":1484},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F02-storing-roles-in-the-database","Quiz - Storing Roles In The Database",{"path":1672,"title":1673,"order":774,"module":774,"status":1484},"\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":1675,"title":1676,"order":774,"module":774,"status":1484},"\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":1678,"title":1679,"order":774,"module":774,"status":1484},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F05-listing-records-from-the-database","Quiz - Listing Records From The Database",{"path":1681,"title":1682,"order":774,"module":774,"status":1484},"\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":1684,"title":1685,"order":774,"module":774,"status":1484},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F07-editing-existing-records","Quiz - Editing Existing Records",{"path":1687,"title":1688,"order":774,"module":774,"status":1484},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F08-deleting-records-safely","Quiz - Deleting Records Safely",{"path":1690,"title":1691,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F09-ownership-linking-records-to-users","Quiz - Ownership: Linking Records To Users",{"path":1693,"title":1694,"order":774,"module":774,"status":1484},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F10-first-project-milestone-checklist","Quiz - First Project Milestone Checklist",{"path":1696,"title":1697,"order":774,"module":774,"status":1484},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F11-organizing-growing-php-applications","Quiz - Organizing Growing PHP Applications",{"path":1699,"title":1700,"order":774,"module":774,"status":1484},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F12-reading-a-growing-php-application","Quiz - Reading A Growing PHP Application",{"path":1702,"title":1703,"order":774,"module":774,"status":1484},"\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":1705,"title":1706,"order":774,"module":774,"status":1484},"\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":1708,"title":1709,"order":774,"module":774,"status":1484},"\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":1711,"title":1712,"order":774,"module":774,"status":1484},"\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":1714,"title":1715,"order":774,"module":774,"status":1484},"\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":1717,"title":1718,"order":774,"module":774,"status":1484},"\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":1720,"title":1721,"order":774,"module":774,"status":1484},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F07-introduction-to-rest-apis","Quiz - Introduction To REST APIs",{"path":1723,"title":1724,"order":774,"module":774,"status":1484},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F08-reading-api-documentation","Quiz - Reading API Documentation",{"path":1726,"title":1727,"order":774,"module":774,"status":1484},"\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":1729,"title":1730,"order":774,"module":774,"status":1484},"\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":1732,"title":1733,"order":774,"module":774,"status":1484},"\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":1735,"title":1736,"order":774,"module":774,"status":1484},"\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":1738,"title":1739,"order":774,"module":774,"status":774},"\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":1741,"title":1742,"order":774,"module":774,"status":1484},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F02-selecting-elements-with-jquery","Quiz - Selecting Elements With jQuery",{"path":1744,"title":1745,"order":774,"module":774,"status":774},"\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":1747,"title":1748,"order":774,"module":774,"status":1484},"\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":1750,"title":1751,"order":774,"module":774,"status":1484},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F05-sending-ajax-requests-with-jquery","Quiz - Sending AJAX Requests With jQuery",{"path":1753,"title":1754,"order":774,"module":774,"status":1484},"\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":1756,"title":1757,"order":774,"module":774,"status":1484},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F07-saving-user-created-records","Quiz - Saving User-Created Records",{"path":1759,"title":1760,"order":774,"module":774,"status":1484},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F08-building-a-project-listing-page","Quiz - Building A Project Listing Page",{"path":1762,"title":1763,"order":774,"module":774,"status":1484},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F09-inline-editing-and-detail-views","Quiz - Inline Editing And Detail Views",{"path":1765,"title":1766,"order":774,"module":774,"status":1484},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F10-second-project-milestone-checklist","Quiz - Second Project Milestone Checklist",{"path":1768,"title":1769,"order":774,"module":774,"status":1484},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F01-foreign-keys-and-referential-integrity","Quiz - Foreign Keys And Referential Integrity",{"path":1771,"title":1772,"order":774,"module":774,"status":1484},"\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":1774,"title":1775,"order":774,"module":774,"status":1484},"\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":1777,"title":1778,"order":774,"module":774,"status":1484},"\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":1780,"title":1781,"order":774,"module":774,"status":1484},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F05-searching-and-filtering-with-sql","Quiz - Searching And Filtering With SQL",{"path":1783,"title":1784,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F06-pagination-displaying-records-in-pages","Quiz - Pagination: Displaying Records In Pages",{"path":1786,"title":1787,"order":774,"module":774,"status":774},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F07-aggregate-functions-count-sum-avg","Quiz - Aggregate Functions: COUNT, SUM, AVG",{"path":1789,"title":1790,"order":774,"module":774,"status":1484},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F08-simple-analytics-and-summary-views","Quiz - Simple Analytics And Summary Views",{"path":1792,"title":1793,"order":774,"module":774,"status":1484},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F09-third-project-milestone-checklist","Quiz - Third Project Milestone Checklist",{"path":1795,"title":1796,"order":774,"module":774,"status":1484},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F01-public-pages-and-unauthenticated-views","Quiz - Public Pages And Unauthenticated Views",{"path":1798,"title":1799,"order":774,"module":774,"status":1484},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F02-user-profile-and-activity-pages","Quiz - User Profile And Activity Pages",{"path":1801,"title":1802,"order":774,"module":774,"status":1484},"\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":1804,"title":1805,"order":774,"module":774,"status":1484},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F04-application-wide-security-audit","Quiz - Application-Wide Security Audit",{"path":1807,"title":1808,"order":774,"module":774,"status":1484},"\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":1810,"title":1811,"order":774,"module":774,"status":1484},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F06-qa-testing-and-collecting-evidence","Quiz - QA Testing And Collecting Evidence",{"path":1813,"title":1814,"order":774,"module":774,"status":1484},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F07-production-environment-checklist","Quiz - Production Environment Checklist",{"path":1816,"title":1817,"order":774,"module":774,"status":1484},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F08-writing-a-project-readme","Quiz - Writing A Project README",{"path":1819,"title":1820,"order":774,"module":774,"status":1484},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F09-final-presentation-and-code-walkthrough","Quiz - Final Presentation And Code Walkthrough",{"path":1822,"title":1823,"order":774,"module":774,"status":1484},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F10-configuration-drift-and-secrets-checks","Quiz - Configuration Drift And Secrets Checks",{"path":1825,"title":1826,"order":788,"module":888,"status":855},"\u002Finternet-applications\u002Fbook\u002Freference\u002Fa-command-line-basics","Command Line Basics",{"path":1828,"title":1829,"order":14,"module":888,"status":855},"\u002Finternet-applications\u002Fbook\u002Freference\u002Fb-git-and-github-recovery","Git And GitHub Recovery",{"path":1831,"title":1832,"order":65,"module":888,"status":855},"\u002Finternet-applications\u002Fbook\u002Freference\u002Fc-apache-and-php-troubleshooting","Apache And PHP Troubleshooting",{"path":1834,"title":1835,"order":793,"module":888,"status":855},"\u002Finternet-applications\u002Fbook\u002Freference\u002Fd-mysql-troubleshooting","MySQL Troubleshooting",{"path":1837,"title":1838,"order":836,"module":888,"status":855},"\u002Finternet-applications\u002Fbook\u002Freference\u002Fe-http-request-and-response-reference","HTTP Request And Response Reference",{"path":1840,"title":1841,"order":847,"module":888,"status":855},"\u002Finternet-applications\u002Fbook\u002Freference\u002Ff-common-security-mistakes","Common Security Mistakes",{"path":1843,"title":1844,"order":851,"module":888,"status":855},"\u002Finternet-applications\u002Fbook\u002Freference\u002Fg-ai-collaboration-and-disclosure","AI Collaboration And Disclosure",{"path":1846,"title":1847,"order":888,"module":888,"status":855},"\u002Finternet-applications\u002Fbook\u002Ftoc","Internet Applications: Table of Contents",{"path":1849,"title":1850,"order":777,"module":788,"status":855},"\u002Finternet-applications\u002Flabs\u002F01-git-recovery-and-submission-evidence","Lab 1: Git Recovery And Submission Evidence",{"path":1852,"title":1853,"order":814,"module":14,"status":855},"\u002Finternet-applications\u002Flabs\u002F02-php-output-and-error-reading","Lab 2: PHP Output And Error Reading",{"path":1855,"title":1856,"order":843,"module":65,"status":855},"\u002Finternet-applications\u002Flabs\u002F03-form-methods-and-sticky-values","Lab 3: Form Methods And Sticky Values",{"path":1858,"title":1859,"order":971,"module":793,"status":855},"\u002Finternet-applications\u002Flabs\u002F04-pdo-query-and-sql-evidence","Lab 4: PDO Query And SQL Evidence",{"path":1861,"title":1862,"order":790,"module":836,"status":855},"\u002Finternet-applications\u002Flabs\u002F05-validation-debugging-and-friendly-errors","Lab 5: Validation, Debugging, And Friendly Errors",{"path":1864,"title":1865,"order":994,"module":847,"status":855},"\u002Finternet-applications\u002Flabs\u002F06-role-protected-crud-check","Lab 6: Role-Protected CRUD Check",{"path":1867,"title":1868,"order":1869,"module":847,"status":855},"\u002Finternet-applications\u002Flabs\u002F06a-relative-paths-includes-and-feature-trace","Lab 6A: Relative Paths, Includes, And Feature Tracing","61",{"path":1871,"title":1872,"order":898,"module":851,"status":855},"\u002Finternet-applications\u002Flabs\u002F07-json-endpoint-and-fetch-check","Lab 7: JSON Endpoint And Fetch Check",{"path":1874,"title":1875,"order":1027,"module":934,"status":855},"\u002Finternet-applications\u002Flabs\u002F08-jquery-ajax-interface-check","Lab 8: jQuery AJAX Interface Check",{"path":1877,"title":1878,"order":1031,"module":940,"status":855},"\u002Finternet-applications\u002Flabs\u002F09-search-pagination-and-summary-check","Lab 9: Search, Pagination, And Summary Check",{"path":1880,"title":1881,"order":1035,"module":777,"status":855},"\u002Finternet-applications\u002Flabs\u002F10-final-security-and-readme-check","Lab 10: Final Security And README Check",{"path":1883,"title":1884,"order":774,"module":774,"status":855},"\u002Finternet-applications\u002Fpresentations-revised\u002F00-revision-plan","Internet Applications Revision Plan - Superseded Historical Baseline",{"path":1886,"title":1887,"order":774,"module":774,"status":855},"\u002Finternet-applications\u002Fpresentations-revised\u002F01-20-minute-recording-plan","Internet Applications Recording Plan - Superseded Historical Baseline",{"path":1889,"title":977,"order":888,"module":788,"status":795},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F00-learn-courses-and-discord",{"path":1891,"title":1892,"order":777,"module":788,"status":795},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F01-basic-cli-commands","Basic CLI Commands",{"path":1894,"title":1895,"order":814,"module":788,"status":795},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F02-install-git-tools","Git Tools",{"path":1897,"title":1898,"order":843,"module":788,"status":795},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F03-setup-github-ssh","Set Up GitHub SSH",{"path":1900,"title":1901,"order":971,"module":788,"status":795},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F04-git-commands-prs","Git Commands And Pull Requests",{"path":1903,"title":1904,"order":790,"module":788,"status":795},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F05-setup-local-development-environment","Local Development Environment Setup",{"path":1906,"title":1020,"order":994,"module":788,"status":795},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F06-add-instructor-template-to-your-repository",{"path":1908,"title":1023,"order":898,"module":788,"status":795},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F07-qa-prod-branches",{"path":1910,"title":1026,"order":1027,"module":788,"status":795},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F08-render-setup",{"path":1912,"title":1913,"order":1031,"module":788,"status":795},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F09-local-ubuntu-web-server-virtualbox","Local Ubuntu Web Server With VirtualBox",{"path":1915,"title":1034,"order":1035,"module":788,"status":855},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F10-local-ubuntu-web-server-vmware",{"path":1917,"title":1038,"order":777,"module":14,"status":795},"\u002Finternet-applications\u002Fpresentations\u002F02-php-and-javascript-basics\u002F01-compare-php-and-javascript",{"path":1919,"title":1041,"order":814,"module":14,"status":795},"\u002Finternet-applications\u002Fpresentations\u002F02-php-and-javascript-basics\u002F02-conditions-loops-functions",{"path":1921,"title":1044,"order":777,"module":65,"status":795},"\u002Finternet-applications\u002Fpresentations\u002F03-html-forms-css-and-dom\u002F01-intro-to-html",{"path":1923,"title":1047,"order":814,"module":65,"status":795},"\u002Finternet-applications\u002Fpresentations\u002F03-html-forms-css-and-dom\u002F02-intro-to-forms-and-get-post",{"path":1925,"title":1050,"order":843,"module":65,"status":795},"\u002Finternet-applications\u002Fpresentations\u002F03-html-forms-css-and-dom\u002F03-understanding-css-js-selectors-and-dom-updates",{"path":1927,"title":1053,"order":777,"module":793,"status":795},"\u002Finternet-applications\u002Fpresentations\u002F04-databases-and-user-accounts\u002F01-intro-to-sql",{"path":1929,"title":1056,"order":814,"module":793,"status":795},"\u002Finternet-applications\u002Fpresentations\u002F04-databases-and-user-accounts\u002F02-project-database-setup",{"path":1931,"title":1059,"order":843,"module":793,"status":795},"\u002Finternet-applications\u002Fpresentations\u002F04-databases-and-user-accounts\u002F03-user-registration",{"path":1933,"title":1062,"order":971,"module":793,"status":795},"\u002Finternet-applications\u002Fpresentations\u002F04-databases-and-user-accounts\u002F04-user-login",{"path":1935,"title":1065,"order":777,"module":836,"status":795},"\u002Finternet-applications\u002Fpresentations\u002F05-validation-and-user-profiles\u002F01-intro-to-regex",{"path":1937,"title":1068,"order":814,"module":836,"status":795},"\u002Finternet-applications\u002Fpresentations\u002F05-validation-and-user-profiles\u002F02-project-shared-helpers",{"path":1939,"title":1940,"order":843,"module":836,"status":795},"\u002Finternet-applications\u002Fpresentations\u002F05-validation-and-user-profiles\u002F03-flash-messages-and-redirect-feedback","Flash Messages And Redirect Feedback",{"path":1942,"title":1074,"order":971,"module":836,"status":795},"\u002Finternet-applications\u002Fpresentations\u002F05-validation-and-user-profiles\u002F04-user-profile",{"path":1944,"title":1077,"order":777,"module":847,"status":795},"\u002Finternet-applications\u002Fpresentations\u002F06-roles-and-crud-pages\u002F01-user-roles-authorization",{"path":1946,"title":1080,"order":814,"module":847,"status":795},"\u002Finternet-applications\u002Fpresentations\u002F06-roles-and-crud-pages\u002F02-user-login-enhancement",{"path":1948,"title":1083,"order":843,"module":847,"status":795},"\u002Finternet-applications\u002Fpresentations\u002F06-roles-and-crud-pages\u002F03-dynamic-content",{"path":1950,"title":1086,"order":777,"module":851,"status":795},"\u002Finternet-applications\u002Fpresentations\u002F07-api-data-and-database-helpers\u002F01-working-with-api-data",{"path":1952,"title":1089,"order":814,"module":851,"status":795},"\u002Finternet-applications\u002Fpresentations\u002F07-api-data-and-database-helpers\u002F02-api-integration",{"path":1954,"title":1092,"order":843,"module":851,"status":795},"\u002Finternet-applications\u002Fpresentations\u002F07-api-data-and-database-helpers\u002F03-database-utility-functions",{"path":1956,"title":1095,"order":777,"module":934,"status":795},"\u002Finternet-applications\u002Fpresentations\u002F08-reusable-components-jquery-and-ajax\u002F01-milestone-2-bootstrap-and-reusability",{"path":1958,"title":1098,"order":814,"module":934,"status":795},"\u002Finternet-applications\u002Fpresentations\u002F08-reusable-components-jquery-and-ajax\u002F02-jquery-brief-intro",{"path":1960,"title":1101,"order":843,"module":934,"status":795},"\u002Finternet-applications\u002Fpresentations\u002F08-reusable-components-jquery-and-ajax\u002F03-intro-to-ajax",{"path":1962,"title":1104,"order":777,"module":940,"status":795},"\u002Finternet-applications\u002Fpresentations\u002F09-relational-data-search-and-pagination\u002F01-user-associations",{"path":1964,"title":1107,"order":814,"module":940,"status":795},"\u002Finternet-applications\u002Fpresentations\u002F09-relational-data-search-and-pagination\u002F02-association-views-and-pagination",{"path":1966,"title":1110,"order":777,"module":777,"status":795},"\u002Finternet-applications\u002Fpresentations\u002F10-association-assignment-and-security\u002F01-association-assignment-and-public-profiles",{"path":1968,"title":1113,"order":814,"module":777,"status":795},"\u002Finternet-applications\u002Fpresentations\u002F10-association-assignment-and-security\u002F02-reusable-csrf-protection",{"path":1970,"title":1116,"order":788,"module":888,"status":795},"\u002Finternet-applications\u002Fsyllabus\u002Fsummer-2026",{"path":1972,"title":1973,"order":1974,"module":777,"status":855},"\u002Finternet-applications\u002Fworksheets\u002Ffinal-project-submission-worksheet","Final Project Submission Worksheet","110",{"path":1976,"title":1977,"order":1978,"module":847,"status":855},"\u002Finternet-applications\u002Fworksheets\u002Flegacy-milestone-01-worksheet","Legacy Milestone 1 Worksheet","118",{"path":1980,"title":1981,"order":1982,"module":847,"status":855},"\u002Finternet-applications\u002Fworksheets\u002Flegacy-multi-dimension-php-problems-worksheet","Legacy Multi-Dimension PHP Problems Worksheet","119",{"path":1984,"title":1985,"order":1974,"module":847,"status":855},"\u002Finternet-applications\u002Fworksheets\u002Fmilestone-01-account-access-and-profile-worksheet","IT202 Milestone 1 - 2026",{"path":1987,"title":1988,"order":1989,"module":934,"status":855},"\u002Finternet-applications\u002Fworksheets\u002Fmilestone-02-api-data-and-crud-worksheet","IT202 Milestone 2 - 2026","120",{"path":1991,"title":1992,"order":1993,"module":940,"status":855},"\u002Finternet-applications\u002Fworksheets\u002Fmilestone-03-user-associations-worksheet","IT202 Milestone 3 - 2026","130",{"path":1995,"title":1996,"order":777,"module":788,"status":855},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-01-git-and-local-server-worksheet","Module 1 Worksheet: Git, GitHub, And Local Server Evidence",{"path":1998,"title":1999,"order":814,"module":14,"status":855},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-02-php-and-debugging-worksheet","Module 2 Worksheet: PHP Challenge Scenarios",{"path":2001,"title":2002,"order":843,"module":65,"status":855},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-03-forms-css-and-dom-worksheet","Module 3 Worksheet: HTML, CSS, JS Challenges",{"path":2004,"title":2005,"order":971,"module":793,"status":855},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-04-database-auth-and-sessions-worksheet","Module 4 Worksheet: SQL Todo Challenge",{"path":2007,"title":2008,"order":790,"module":836,"status":855},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-05-validation-and-debugging-worksheet","Module 5 Worksheet: Validation And Debugging Evidence",{"path":2010,"title":2011,"order":994,"module":847,"status":855},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-06-authorization-and-crud-worksheet","Module 6 Worksheet: Authorization And CRUD Evidence",{"path":2013,"title":2014,"order":2015,"module":847,"status":855},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-06-multi-dimensional-php-arrays-worksheet","Module 06 Worksheet: Multi-Dimensional PHP Arrays","62",{"path":2017,"title":2018,"order":898,"module":851,"status":855},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-07-api-testing-worksheet","Module 07 Worksheet: Project API Testing",{"path":2020,"title":2021,"order":1027,"module":934,"status":855},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-08-jquery-and-dynamic-ui-worksheet","Module 8 Worksheet: jQuery And Dynamic UI Evidence",{"path":2023,"title":2024,"order":1031,"module":940,"status":855},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-09-search-pagination-and-summary-worksheet","Module 9 Worksheet: Search, Pagination, And Summary Evidence",{"path":2026,"title":2027,"order":1035,"module":777,"status":855},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-10-final-project-readiness-worksheet","Module 10 Worksheet: Final Project Readiness Evidence",{"path":2029,"title":2030,"order":994,"module":788,"status":855},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F01-module-1-course-setup\u002F06-java-environment-setup","IT114 Java Environment Setup",{"path":2032,"title":2033,"order":777,"module":14,"status":795},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F02-module-2-java-basics\u002F01-java-basics","Java Basics",{"path":2035,"title":2036,"order":814,"module":14,"status":795},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F02-module-2-java-basics\u002F02-flow-control","Java Flow Control",{"path":2038,"title":2039,"order":843,"module":14,"status":795},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F02-module-2-java-basics\u002F03-loops","Java Loops",{"path":2041,"title":2042,"order":971,"module":14,"status":795},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F02-module-2-java-basics\u002F04-collections","Java Arrays, Queue, Stack, ArrayList",{"path":2044,"title":2045,"order":777,"module":65,"status":795},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F03-module-3-java-io-and-oop\u002F01-user-input","Java User Input",{"path":2047,"title":2048,"order":814,"module":65,"status":795},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F03-module-3-java-io-and-oop\u002F02-oop-modifiers","Java Intro to OOP - Modifiers",{"path":2050,"title":2051,"order":843,"module":65,"status":795},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F03-module-3-java-io-and-oop\u002F03-file-io","Java File I\u002FO",{"path":2053,"title":2054,"order":971,"module":65,"status":795},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F03-module-3-java-io-and-oop\u002F04-recursion-trees","Java Recursion and Trees",{"path":2056,"title":2057,"order":777,"module":793,"status":795},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F04-module-4-sockets-and-oop\u002F01-sockets-overview","Java Sockets: Overview",{"path":2059,"title":2060,"order":814,"module":793,"status":795},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F04-module-4-sockets-and-oop\u002F02-oop-intermediate","Java OOP Intermediate",{"path":2062,"title":2063,"order":843,"module":793,"status":795},"\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":2065,"title":2066,"order":971,"module":793,"status":795},"\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":2068,"title":2069,"order":814,"module":847,"status":795},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F06-module-6-milestone-2-prep\u002F02-prepare-milestone-2-2026","Preparing the Java Project Framework",{"path":2071,"title":2072,"order":777,"module":851,"status":795},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F06-module-6-milestone-2-prep\u002F03-gameserver-ready-check","GameServer: Ready Check",{"path":2074,"title":2075,"order":777,"module":851,"status":855},"\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":2077,"title":2078,"order":814,"module":851,"status":855},"\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":2080,"title":2081,"order":843,"module":851,"status":855},"\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":2083,"title":2084,"order":971,"module":851,"status":855},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F07-module-7-game-rooms-and-turns\u002F04-simultaneous-turns","Java Advanced Programming Milestone 2: Simultaneous Turns",{"path":2086,"title":2087,"order":790,"module":851,"status":855},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F07-module-7-game-rooms-and-turns\u002F05-individual-turns","Java Advanced Programming Milestone 2: Individual Turns",{"path":2089,"title":2090,"order":777,"module":934,"status":855},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F08-module-8-grids-cards-and-ui\u002F01-grid-integration","Java Advanced Programming Milestone 2: Grid Integration",{"path":2092,"title":2093,"order":814,"module":934,"status":855},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F08-module-8-grids-cards-and-ui\u002F02-card-integration","Java Advanced Programming Milestone 2: Cards Integration",{"path":2095,"title":2096,"order":843,"module":934,"status":855},"\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":2098,"title":2099,"order":971,"module":934,"status":855},"\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":2101,"title":2102,"order":790,"module":934,"status":855},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F08-module-8-grids-cards-and-ui\u002F05-java-ui-intro","Java Advanced Programming Java UI 2025",{"path":2104,"title":2105,"order":777,"module":940,"status":855},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F09-module-9-ui-integration\u002F01-ui-integration-2026","UI Integration 2026",{"path":2107,"title":2108,"order":814,"module":940,"status":855},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F09-module-9-ui-integration\u002F02-ui-drawing","UI Drawing",{"path":2110,"title":2111,"order":843,"module":940,"status":855},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F09-module-9-ui-integration\u002F03-baseline-ui-integration","Baseline UI Integration",{"path":2113,"title":2114,"order":971,"module":940,"status":855},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F09-module-9-ui-integration\u002F04-ndff-ui-integration","NDFF UI Integration",{"path":2116,"title":2117,"order":790,"module":940,"status":855},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F09-module-9-ui-integration\u002F05-equals-6-ui","Equals 6 UI",{"path":2119,"title":2120,"order":994,"module":940,"status":855},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F09-module-9-ui-integration\u002F06-popularity-mini-project","Popularity Mini Project",{"path":2122,"title":2123,"order":777,"module":777,"status":855},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F10-module-10-wrap-up-and-deployment\u002F01-milestone-3-wrapup","Milestone 3 Wrapup",{"path":2125,"title":2126,"order":814,"module":777,"status":855},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F10-module-10-wrap-up-and-deployment\u002F02-deploying-java-apps","Deploying Java Apps",{"path":2128,"title":2129,"order":843,"module":777,"status":855},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F10-module-10-wrap-up-and-deployment\u002F03-ndff-away-spectator","NDFF Away Spectator",{"path":2131,"title":2132,"order":934,"module":847,"status":795},"\u002Fjava-advanced-programming\u002F2e\u002Fprojects\u002Fbattleship","Battleship Project",{"path":2134,"title":2135,"order":836,"module":847,"status":795},"\u002Fjava-advanced-programming\u002F2e\u002Fprojects\u002Fdrawing","Drawing Project",{"path":2137,"title":2138,"order":65,"module":847,"status":795},"\u002Fjava-advanced-programming\u002F2e\u002Fprojects\u002Fgo-fish","Go Fish Project",{"path":2140,"title":2141,"order":793,"module":847,"status":795},"\u002Fjava-advanced-programming\u002F2e\u002Fprojects\u002Fhangman","Hangman Project",{"path":2143,"title":2144,"order":788,"module":847,"status":795},"\u002Fjava-advanced-programming\u002F2e\u002Fprojects","IT114 Project Choices",{"path":2146,"title":2147,"order":847,"module":847,"status":795},"\u002Fjava-advanced-programming\u002F2e\u002Fprojects\u002Frock-paper-scissors","Rock Paper Scissors Project",{"path":2149,"title":2150,"order":14,"module":847,"status":795},"\u002Fjava-advanced-programming\u002F2e\u002Fprojects\u002Fshared-requirements","IT114 Shared Project Requirements",{"path":2152,"title":2153,"order":851,"module":847,"status":795},"\u002Fjava-advanced-programming\u002F2e\u002Fprojects\u002Ftrivia","Trivia Project",{"path":2155,"title":2156,"order":788,"module":888,"status":795},"\u002Fjava-advanced-programming\u002F2e\u002Fsyllabus\u002Ffall-2026","IT114 - Advanced Programming for Information Technology",{"path":2158,"title":1119,"order":777,"module":788,"status":795},"\u002Fjava-advanced-programming\u002F2e\u002Fworksheets\u002Fmodule-01-getting-started",{"path":2160,"title":2161,"order":814,"module":14,"status":795},"\u002Fjava-advanced-programming\u002F2e\u002Fworksheets\u002Fmodule-02-java-challenges","Module 2 Java Challenges",{"path":2163,"title":2164,"order":777,"module":788,"status":855},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F01-course-setup-and-workflow\u002F01-course-tools-and-workflow","Course Tools And Workflow",{"path":2166,"title":2167,"order":814,"module":788,"status":855},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F01-course-setup-and-workflow\u002F02-terminal-git-and-github","Terminal, Git, And GitHub Basics",{"path":2169,"title":2170,"order":843,"module":788,"status":855},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F01-course-setup-and-workflow\u002F03-java-development-environment","Java Development Environment",{"path":2172,"title":2173,"order":777,"module":14,"status":855},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F02-java-basics\u002F01-java-program-shape","The Shape Of A Java Program",{"path":2175,"title":2176,"order":814,"module":14,"status":855},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F02-java-basics\u002F02-values-types-and-expressions","Values, Types, And Expressions",{"path":2178,"title":2179,"order":843,"module":14,"status":855},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F02-java-basics\u002F03-conditions-loops-and-collections","Conditions, Loops, And Collections",{"path":2181,"title":2182,"order":777,"module":65,"status":855},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F03-java-input-io-and-oop\u002F01-user-input-and-output","User Input And Program Output",{"path":2184,"title":2185,"order":814,"module":65,"status":855},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F03-java-input-io-and-oop\u002F02-classes-objects-and-modifiers","Classes, Objects, And Modifiers",{"path":2187,"title":2188,"order":843,"module":65,"status":855},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F03-java-input-io-and-oop\u002F03-file-io-paths-and-exceptions","File I\u002FO, Paths, And Exceptions",{"path":2190,"title":2191,"order":971,"module":65,"status":855},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F03-java-input-io-and-oop\u002F04-recursion-and-trees","Recursion And Tree Thinking",{"path":2193,"title":2194,"order":777,"module":793,"status":855},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F04-sockets-and-oop\u002F01-sockets-client-server","Sockets And Client\u002FServer Thinking",{"path":2196,"title":2197,"order":814,"module":793,"status":855},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F04-sockets-and-oop\u002F02-server-socket-flow","The ServerSocket Flow",{"path":2199,"title":2200,"order":843,"module":793,"status":855},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F04-sockets-and-oop\u002F03-oop-for-socket-apps","OOP For Socket Applications",{"path":2202,"title":2203,"order":777,"module":836,"status":855},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F05-multi-client-sockets\u002F01-multi-client-server-shape","Multi-Client Server Shape",{"path":2205,"title":2206,"order":814,"module":836,"status":855},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F05-multi-client-sockets\u002F02-threads-shared-state-and-message-routing","Threads, Shared State, And Message Routing",{"path":2208,"title":2209,"order":843,"module":836,"status":855},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F05-multi-client-sockets\u002F03-debugging-socket-programs","Debugging Socket Programs",{"path":2211,"title":2212,"order":888,"module":888,"status":855},"\u002Fjava-advanced-programming\u002Fbook\u002Ftoc","Java Advanced Programming: Table of Contents",{"path":2214,"title":2215,"order":774,"module":774,"status":855},"\u002Fjava-advanced-programming\u002Fpresentations-revised\u002F00-revision-plan","Java Advanced Programming Revision Plan - Superseded Historical Baseline",{"path":2217,"title":2218,"order":774,"module":774,"status":855},"\u002Fjava-advanced-programming\u002Fpresentations-revised\u002F01-20-minute-recording-plan","Java Advanced Programming Recording Plan - Superseded Historical Baseline",{"path":2220,"title":1892,"order":777,"module":788,"status":855},"\u002Fjava-advanced-programming\u002Fpresentations\u002F01-module-1-course-setup\u002F01-basic-cli-commands",{"path":2222,"title":1895,"order":814,"module":788,"status":855},"\u002Fjava-advanced-programming\u002Fpresentations\u002F01-module-1-course-setup\u002F02-install-git-tools",{"path":2224,"title":1898,"order":843,"module":788,"status":855},"\u002Fjava-advanced-programming\u002Fpresentations\u002F01-module-1-course-setup\u002F03-setup-github-ssh",{"path":2226,"title":1901,"order":971,"module":788,"status":855},"\u002Fjava-advanced-programming\u002Fpresentations\u002F01-module-1-course-setup\u002F04-git-commands-prs",{"path":2228,"title":2229,"order":790,"module":788,"status":855},"\u002Fjava-advanced-programming\u002Fpresentations\u002F01-module-1-course-setup\u002F05-course-repo-setup","Course Repository Setup",{"path":2231,"title":2232,"order":994,"module":788,"status":855},"\u002Fjava-advanced-programming\u002Fpresentations\u002F01-module-1-course-setup\u002F06-java-environment-setup","Java Development Environment Setup",{"path":2234,"title":2033,"order":777,"module":14,"status":855},"\u002Fjava-advanced-programming\u002Fpresentations\u002F02-module-2-java-basics\u002F01-java-basics",{"path":2236,"title":2036,"order":814,"module":14,"status":855},"\u002Fjava-advanced-programming\u002Fpresentations\u002F02-module-2-java-basics\u002F02-flow-control",{"path":2238,"title":2039,"order":843,"module":14,"status":855},"\u002Fjava-advanced-programming\u002Fpresentations\u002F02-module-2-java-basics\u002F03-loops",{"path":2240,"title":2042,"order":971,"module":14,"status":855},"\u002Fjava-advanced-programming\u002Fpresentations\u002F02-module-2-java-basics\u002F04-collections",{"path":2242,"title":2045,"order":777,"module":65,"status":855},"\u002Fjava-advanced-programming\u002Fpresentations\u002F03-module-3-java-io-and-oop\u002F01-user-input",{"path":2244,"title":2048,"order":814,"module":65,"status":855},"\u002Fjava-advanced-programming\u002Fpresentations\u002F03-module-3-java-io-and-oop\u002F02-oop-modifiers",{"path":2246,"title":2051,"order":843,"module":65,"status":855},"\u002Fjava-advanced-programming\u002Fpresentations\u002F03-module-3-java-io-and-oop\u002F03-file-io",{"path":2248,"title":2054,"order":971,"module":65,"status":855},"\u002Fjava-advanced-programming\u002Fpresentations\u002F03-module-3-java-io-and-oop\u002F04-recursion-trees",{"path":2250,"title":2057,"order":777,"module":793,"status":855},"\u002Fjava-advanced-programming\u002Fpresentations\u002F04-module-4-sockets-and-oop\u002F01-sockets-overview",{"path":2252,"title":2060,"order":814,"module":793,"status":855},"\u002Fjava-advanced-programming\u002Fpresentations\u002F04-module-4-sockets-and-oop\u002F02-oop-intermediate",{"path":2254,"title":2063,"order":843,"module":793,"status":855},"\u002Fjava-advanced-programming\u002Fpresentations\u002F04-module-4-sockets-and-oop\u002F03-multi-client-chat-part-1",{"path":2256,"title":2066,"order":777,"module":836,"status":855},"\u002Fjava-advanced-programming\u002Fpresentations\u002F05-module-5-multi-client-sockets\u002F01-multi-client-chat-part-2",{"path":2258,"title":2259,"order":777,"module":847,"status":855},"\u002Fjava-advanced-programming\u002Fpresentations\u002F06-module-6-milestone-2-prep\u002F01-prepare-milestone-2-2025","Java Advanced Programming Preparing for Milestone2 2025",{"path":2261,"title":2262,"order":814,"module":847,"status":855},"\u002Fjava-advanced-programming\u002Fpresentations\u002F06-module-6-milestone-2-prep\u002F02-prepare-milestone-2-2026","Java Advanced Programming Preparing for Milestone 2",{"path":2264,"title":2265,"order":843,"module":847,"status":855},"\u002Fjava-advanced-programming\u002Fpresentations\u002F06-module-6-milestone-2-prep\u002F03-gameserver-ready-check","Java Advanced Programming Milestone 2: GameServer Ready Check",{"path":2267,"title":2075,"order":777,"module":851,"status":855},"\u002Fjava-advanced-programming\u002Fpresentations\u002F07-module-7-game-rooms-and-turns\u002F01-game-rooms-ready-check",{"path":2269,"title":2078,"order":814,"module":851,"status":855},"\u002Fjava-advanced-programming\u002Fpresentations\u002F07-module-7-game-rooms-and-turns\u002F02-round-robin-turns",{"path":2271,"title":2081,"order":843,"module":851,"status":855},"\u002Fjava-advanced-programming\u002Fpresentations\u002F07-module-7-game-rooms-and-turns\u002F03-phase-based-turns",{"path":2273,"title":2084,"order":971,"module":851,"status":855},"\u002Fjava-advanced-programming\u002Fpresentations\u002F07-module-7-game-rooms-and-turns\u002F04-simultaneous-turns",{"path":2275,"title":2087,"order":790,"module":851,"status":855},"\u002Fjava-advanced-programming\u002Fpresentations\u002F07-module-7-game-rooms-and-turns\u002F05-individual-turns",{"path":2277,"title":2090,"order":777,"module":934,"status":855},"\u002Fjava-advanced-programming\u002Fpresentations\u002F08-module-8-grids-cards-and-ui\u002F01-grid-integration",{"path":2279,"title":2093,"order":814,"module":934,"status":855},"\u002Fjava-advanced-programming\u002Fpresentations\u002F08-module-8-grids-cards-and-ui\u002F02-card-integration",{"path":2281,"title":2096,"order":843,"module":934,"status":855},"\u002Fjava-advanced-programming\u002Fpresentations\u002F08-module-8-grids-cards-and-ui\u002F03-equals-6-mini-project",{"path":2283,"title":2099,"order":971,"module":934,"status":855},"\u002Fjava-advanced-programming\u002Fpresentations\u002F08-module-8-grids-cards-and-ui\u002F04-nice-day-for-fishin",{"path":2285,"title":2102,"order":790,"module":934,"status":855},"\u002Fjava-advanced-programming\u002Fpresentations\u002F08-module-8-grids-cards-and-ui\u002F05-java-ui-intro",{"path":2287,"title":2105,"order":777,"module":940,"status":855},"\u002Fjava-advanced-programming\u002Fpresentations\u002F09-module-9-ui-integration\u002F01-ui-integration-2026",{"path":2289,"title":2108,"order":814,"module":940,"status":855},"\u002Fjava-advanced-programming\u002Fpresentations\u002F09-module-9-ui-integration\u002F02-ui-drawing",{"path":2291,"title":2111,"order":843,"module":940,"status":855},"\u002Fjava-advanced-programming\u002Fpresentations\u002F09-module-9-ui-integration\u002F03-baseline-ui-integration",{"path":2293,"title":2114,"order":971,"module":940,"status":855},"\u002Fjava-advanced-programming\u002Fpresentations\u002F09-module-9-ui-integration\u002F04-ndff-ui-integration",{"path":2295,"title":2117,"order":790,"module":940,"status":855},"\u002Fjava-advanced-programming\u002Fpresentations\u002F09-module-9-ui-integration\u002F05-equals-6-ui",{"path":2297,"title":2120,"order":994,"module":940,"status":855},"\u002Fjava-advanced-programming\u002Fpresentations\u002F09-module-9-ui-integration\u002F06-popularity-mini-project",{"path":2299,"title":2123,"order":777,"module":777,"status":855},"\u002Fjava-advanced-programming\u002Fpresentations\u002F10-module-10-wrap-up-and-deployment\u002F01-milestone-3-wrapup",{"path":2301,"title":2126,"order":814,"module":777,"status":855},"\u002Fjava-advanced-programming\u002Fpresentations\u002F10-module-10-wrap-up-and-deployment\u002F02-deploying-java-apps",{"path":2303,"title":2129,"order":843,"module":777,"status":855},"\u002Fjava-advanced-programming\u002Fpresentations\u002F10-module-10-wrap-up-and-deployment\u002F03-ndff-away-spectator",{"path":2305,"title":2306,"order":814,"module":14,"status":795},"\u002Fsystems-integration\u002F2e\u002Fpresentations\u002F01-required-architecture-overview","Required Architecture Overview",{"path":2308,"title":2309,"order":777,"module":788,"status":855},"\u002Fsystems-integration\u002F2e\u002Fpresentations\u002F02-team-workflow-and-project-evidence","Team Workflow And Project Evidence",{"path":2311,"title":2312,"order":843,"module":14,"status":795},"\u002Fsystems-integration\u002F2e\u002Fpresentations\u002F03-architecture-planning-and-vm-communication-practice","Architecture Planning And VM Communication Practice",{"path":2314,"title":2315,"order":971,"module":65,"status":855},"\u002Fsystems-integration\u002F2e\u002Fpresentations\u002F04-role-based-vm-baseline-and-centralized-logging","Role-Based VM Baseline And Logging System",{"path":2317,"title":2318,"order":790,"module":793,"status":795},"\u002Fsystems-integration\u002F2e\u002Fpresentations\u002F05-authentication-and-authorization","Authentication And Authorization Across VMs",{"path":2320,"title":2321,"order":994,"module":836,"status":795},"\u002Fsystems-integration\u002F2e\u002Fpresentations\u002F06-mvp-feature-work","MVP Feature Work",{"path":2323,"title":2324,"order":788,"module":888,"status":795},"\u002Fsystems-integration\u002F2e\u002Fsyllabus\u002Ffall-2026","IT490 - Systems Integration Syllabus",{"path":2326,"title":2327,"order":788,"module":888,"status":795},"\u002Fsystems-integration","Systems Integration",{"path":2329,"title":2330,"order":774,"module":774,"status":855},"\u002Fsystems-integration\u002Fpresentations-revised\u002F00-revision-plan","Systems Integration Revision Plan - Superseded Historical Baseline",{"path":2332,"title":2333,"order":774,"module":774,"status":855},"\u002Fsystems-integration\u002Fpresentations-revised\u002F01-20-minute-recording-plan","Systems Integration Recording Plan - Superseded Historical Baseline",{"path":2335,"title":2306,"order":777,"module":788,"status":795},"\u002Fsystems-integration\u002Fpresentations\u002F01-required-architecture-overview",{"path":2337,"title":2324,"order":788,"module":888,"status":795},"\u002Fsystems-integration\u002Fsyllabus\u002Fsummer-2026",{"path":2339,"title":2340,"order":774,"module":774,"status":774},"\u002Fsystems-integration\u002Fworksheets\u002Fit490-authentication-authorization-core-2026-draft","IT490 Authentication and Authorization Core Milestone (2026)",{"path":2342,"title":2343,"order":774,"module":774,"status":774},"\u002Fsystems-integration\u002Fworksheets\u002Fit490-centralized-logging-milestone-draft","IT490 Centralized Logging Milestone",{"path":2345,"title":2346,"order":774,"module":774,"status":774},"\u002Fsystems-integration\u002Fworksheets\u002Fit490-milestone-3-resiliency-2026-draft","IT490 Milestone 3 - Deployment, Promotion, And Recovery",{"path":2348,"title":2349,"order":774,"module":774,"status":774},"\u002Fsystems-integration\u002Fworksheets\u002Fit490-milestone-4-availability-2026-draft","IT490 Milestone 4 - Availability, Load Balancing, And Recovery",{"path":2351,"title":2352,"order":814,"module":888,"status":855},"\u002Fsystems-integration\u002Fworksheets\u002Fmeeting-minutes-template","IT490 Meeting Minutes Template",{"path":2354,"title":2355,"order":843,"module":888,"status":855},"\u002Fsystems-integration\u002Fworksheets\u002Fproject-changelog-template","IT490 Project Change Log Template",{"path":2357,"title":2358,"order":777,"module":888,"status":855},"\u002Fsystems-integration\u002Fworksheets\u002Fproject-proposal-template","IT490 Project Proposal Template",{"id":4,"title":5,"audience":6,"body":2360,"contentType":772,"course":773,"courseId":774,"description":775,"estimateBasis":776,"estimatedDiscussionMinutes":777,"estimatedLiveMinutes":778,"estimatedRecordingMinutes":779,"estimatedTitleSeconds":774,"estimatedTotalMinutes":780,"estimatedTraceMinutes":774,"extension":781,"meta":2878,"module":788,"navigation":789,"order":790,"path":791,"presentationRole":792,"promptAssist":783,"revision":793,"semester":774,"seo":2880,"status":795,"stem":796,"syllabus":774,"tags":2881,"updated":802,"videoDuration":774,"videoId":774,"videoLink":774,"videoTitle":774,"week":788,"__hash__":803},{"type":8,"value":2361,"toc":2855},[2362,2376,2391,2413,2449,2471,2493,2513,2521,2563,2595,2619,2643,2686,2719,2763,2797,2831],[11,2363,2364,2366],{"id":13,"level":14},[16,2365,19],{"id":18},[21,2367,2368,2370,2372,2374],{},[24,2369,26],{},[24,2371,29],{},[24,2373,32],{},[24,2375,35],{},[11,2377,2378,2380],{"id":38,"level":14},[16,2379,42],{"id":41},[21,2381,2382,2387,2389],{},[24,2383,47,2384,55],{},[49,2385,54],{"href":51,"rel":2386},[53],[24,2388,58],{},[24,2390,61],{},[11,2392,2393,2395],{"id":64,"level":65},[67,2394,70],{"id":69},[21,2396,2397,2401,2407,2411],{},[24,2398,75,2399,80],{},[77,2400,79],{},[24,2402,83,2403,88,2405,92],{},[85,2404,87],{},[85,2406,91],{},[24,2408,95,2409,99],{},[77,2410,98],{},[24,2412,102],{},[11,2414,2415,2417,2447],{"id":105,"level":14},[16,2416,109],{"id":108},[111,2418,2419,2425,2429,2439,2445],{},[24,2420,115,2421,119,2423],{},[85,2422,118],{},[85,2424,122],{},[24,2426,83,2427],{},[85,2428,127],{},[24,2430,130,2431,134,2433,134,2435,141,2437],{},[77,2432,133],{},[77,2434,137],{},[77,2436,140],{},[77,2438,144],{},[24,2440,147,2441,151,2443],{},[85,2442,150],{},[85,2444,154],{},[24,2446,157],{},[159,2448,161],{},[11,2450,2451,2453],{"id":164,"level":65},[67,2452,168],{"id":167},[21,2454,2455,2459,2461,2463,2467,2469],{},[24,2456,173,2457,177],{},[85,2458,176],{},[24,2460,180],{},[24,2462,183],{},[24,2464,186,2465,190],{},[85,2466,189],{},[24,2468,193],{},[24,2470,196],{},[11,2472,2473,2475,2491],{"id":199,"level":14},[16,2474,203],{"id":202},[111,2476,2477,2481,2485,2487],{},[24,2478,173,2479,211],{},[85,2480,210],{},[24,2482,214,2483],{},[85,2484,217],{},[24,2486,220],{},[24,2488,83,2489,226],{},[85,2490,225],{},[159,2492,229],{},[11,2494,2495,2497,2499],{"id":232,"level":65},[67,2496,236],{"id":235},[238,2498],{"language":240,"src":241},[21,2500,2501,2505,2509,2511],{},[24,2502,2503,249],{},[77,2504,248],{},[24,2506,2507,254],{},[77,2508,79],{},[24,2510,257],{},[24,2512,260],{},[11,2514,2515,2517,2519],{"id":263,"level":14},[16,2516,267],{"id":266},[159,2518,270],{},[159,2520,273],{},[11,2522,2523,2525,2529,2537,2541,2545,2549,2561],{"id":276,"level":65},[16,2524,280],{"id":279},[159,2526,2527],{},[85,2528,285],{},[21,2530,2531,2533,2535],{},[24,2532,290],{},[24,2534,293],{},[24,2536,296],{},[159,2538,2539],{},[85,2540,301],{},[21,2542,2543],{},[24,2544,306],{},[159,2546,2547],{},[85,2548,311],{},[21,2550,2551,2553,2555],{},[24,2552,316],{},[24,2554,319],{},[24,2556,322,2557,326,2559,330],{},[77,2558,325],{},[77,2560,329],{},[159,2562,333],{},[11,2564,2565,2567,2571,2579,2583,2593],{"id":336,"level":65},[16,2566,340],{"id":339},[159,2568,2569],{},[85,2570,285],{},[21,2572,2573,2575,2577],{},[24,2574,349],{},[24,2576,352],{},[24,2578,296],{},[159,2580,2581],{},[85,2582,311],{},[21,2584,2585,2587],{},[24,2586,319],{},[24,2588,322,2589,326,2591,330],{},[77,2590,325],{},[77,2592,329],{},[159,2594,371],{},[11,2596,2597,2599,2603,2609,2613],{"id":374,"level":65},[16,2598,378],{"id":377},[159,2600,2601],{},[85,2602,285],{},[21,2604,2605,2607],{},[24,2606,387],{},[24,2608,390],{},[159,2610,2611],{},[85,2612,311],{},[21,2614,2615,2617],{},[24,2616,399],{},[24,2618,402],{},[11,2620,2621,2623,2627,2633,2637],{"id":405,"level":65},[16,2622,409],{"id":408},[159,2624,2625],{},[85,2626,285],{},[21,2628,2629,2631],{},[24,2630,387],{},[24,2632,420],{},[159,2634,2635],{},[85,2636,311],{},[21,2638,2639,2641],{},[24,2640,429],{},[24,2642,432],{},[11,2644,2645,2647,2684],{"id":435,"level":14},[16,2646,439],{"id":438},[111,2648,2649,2657,2659,2666,2682],{},[24,2650,444,2651,448,2653,452,2655],{},[85,2652,447],{},[85,2654,451],{},[85,2656,455],{},[24,2658,458],{},[24,2660,461,2661,465,2663],{},[77,2662,464],{},[49,2664,470],{"href":468,"rel":2665},[53],[24,2667,473,2668],{},[21,2669,2670,2674,2678,2680],{},[24,2671,478,2672],{},[77,2673,481],{},[24,2675,484,2676],{},[77,2677,487],{},[24,2679,490],{},[24,2681,493],{},[24,2683,496],{},[159,2685,499],{},[11,2687,2688,2690,2692,2717],{"id":502,"level":14},[16,2689,506],{"id":505},[159,2691,509],{},[111,2693,2694,2699,2701,2705,2711,2715],{},[24,2695,514,2696],{},[49,2697,519],{"href":517,"rel":2698},[53],[24,2700,522],{},[24,2702,525,2703,529],{},[85,2704,528],{},[24,2706,532,2707,536,2709,540],{},[77,2708,535],{},[77,2710,539],{},[24,2712,543,2713,547],{},[85,2714,546],{},[24,2716,550],{},[159,2718,553],{},[11,2720,2721,2723],{"id":556,"level":14},[16,2722,560],{"id":559},[562,2724,2725,2733],{},[565,2726,2727],{},[568,2728,2729,2731],{},[571,2730,573],{},[571,2732,576],{},[578,2734,2735,2741,2751,2757],{},[568,2736,2737,2739],{},[583,2738,585],{},[583,2740,588],{},[568,2742,2743,2745],{},[583,2744,593],{},[583,2746,543,2747,599,2749,602],{},[85,2748,598],{},[85,2750,217],{},[568,2752,2753,2755],{},[583,2754,607],{},[583,2756,610],{},[568,2758,2759,2761],{},[583,2760,615],{},[583,2762,618],{},[11,2764,2765,2767],{"id":621,"level":14},[16,2766,624],{"id":621},[621,2768,2769,2781],{},[628,2770,2771],{"v-slot:questions":630},[111,2772,2773,2775,2777,2779],{},[24,2774,635],{},[24,2776,638],{},[24,2778,641],{},[24,2780,644],{},[628,2782,2783,2787,2789,2791],{"v-slot:answers":630},[648,2784,650,2785,653],{},[77,2786,79],{},[648,2788,656],{},[648,2790,217],{},[648,2792,2793,326,2795],{},[77,2794,248],{},[77,2796,79],{},[11,2798,2799,2801,2817,2819],{"id":667,"level":14},[16,2800,671],{"id":670},[21,2802,2803,2809,2813],{},[24,2804,2805,679,2807,682],{},[85,2806,678],{},[77,2808,79],{},[24,2810,2811,688],{},[85,2812,687],{},[24,2814,2815,694],{},[85,2816,693],{},[159,2818,697],{},[21,2820,2821,2826],{},[24,2822,2823],{},[49,2824,706],{"href":704,"rel":2825},[53],[24,2827,2828],{},[49,2829,713],{"href":711,"rel":2830},[53],[11,2832,2833,2835],{"id":716,"level":14},[16,2834,719],{"id":716},[21,2836,2837,2841,2843,2849,2851,2853],{},[24,2838,724,2839,727],{},[77,2840,79],{},[24,2842,730],{},[24,2844,733,2845,326,2847],{},[77,2846,248],{},[77,2848,79],{},[24,2850,740],{},[24,2852,743],{},[24,2854,746],{},{"title":630,"searchDepth":748,"depth":748,"links":2856},[2857,2858,2861,2864,2867,2868,2869,2870,2871,2872,2873,2874,2875,2876,2877],{"id":18,"depth":748,"text":19},{"id":41,"depth":748,"text":42,"children":2859},[2860],{"id":69,"depth":754,"text":70},{"id":108,"depth":748,"text":109,"children":2862},[2863],{"id":167,"depth":754,"text":168},{"id":202,"depth":748,"text":203,"children":2865},[2866],{"id":235,"depth":754,"text":236},{"id":266,"depth":748,"text":267},{"id":279,"depth":748,"text":280},{"id":339,"depth":748,"text":340},{"id":377,"depth":748,"text":378},{"id":408,"depth":748,"text":409},{"id":438,"depth":748,"text":439},{"id":505,"depth":748,"text":506},{"id":559,"depth":748,"text":560},{"id":621,"depth":748,"text":624},{"id":670,"depth":748,"text":671},{"id":716,"depth":748,"text":719},{"requiresLessonBranchCheckpoint":783,"sourcePresentations":2879,"revisionStatus":787},[785,786],{"title":5,"description":775},[798,799,800,801],1793199208412]