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