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