[{"data":1,"prerenderedAt":2009},["ShallowReactive",2],{"content-page:\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F00-learn-courses-and-discord":3,"content-page-quiz:none":521,"content-navigation-index":536},{"id":4,"title":5,"audience":6,"body":7,"contentType":505,"course":506,"description":507,"estimateBasis":508,"estimatedDiscussionMinutes":509,"estimatedLiveMinutes":510,"estimatedTotalMinutes":511,"extension":512,"meta":513,"module":514,"navigation":515,"order":516,"path":517,"presentationRole":518,"promptAssist":519,"revision":520,"semester":521,"seo":522,"status":523,"stem":524,"syllabus":521,"tags":525,"updated":530,"videoDuration":531,"videoId":532,"videoLink":533,"videoTitle":534,"week":514,"__hash__":535},"content\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F00-learn-courses-and-discord.md","Learn Courses Platform And Discord","student",{"type":8,"value":9,"toc":488},"minimark",[10,52,92,145,195,243,277,339,381,431,460],[11,12,15,20,36],"slide",{"id":13,"level":14},"learn-courses-flow","2",[16,17,19],"h2",{"id":18},"what-is-the-learn-courses-platform","What is the Learn Courses Platform",[21,22,23,27,30,33],"ul",{},[24,25,26],"li",{},"This is a platform I've built over the years to aid assignment submissions and course utilities",[24,28,29],{},"It provides objective-based worksheets to fill in images, urls, and open responses to document assignment evidence",[24,31,32],{},"The goal is to keep tasks clear and objective for students and grading",[24,34,35],{},"Also includes a few other utilities for courses (such as joining the Discord server)",[37,38,39,40,46,47,51],"p",{},"NOTE: Summer 2026 the previous Learn Platform (",[41,42,43],"a",{"href":43,"rel":44},"https:\u002F\u002Flearn.ethereallab.app",[45],"nofollow",") has been replaced by Learn Courses Platform (",[41,48,49],{"href":49,"rel":50},"https:\u002F\u002Fcourses.ethereallab.app",[45],"). The deprecated site is still available as a backup but all activities\u002Fcontent is being migrated to the new version",[11,53,55,58,61,89],{"id":54,"level":14},"learn-courses-title",[16,56,5],{"id":57},"learn-courses-platform-and-discord",[37,59,60],{},"How to join:",[21,62,63,69,77,80,83,86],{},[24,64,65,66],{},"Visit the platform ",[41,67,49],{"href":49,"rel":68},[45],[24,70,71,72],{},"Sign in with your NJIT email\n",[21,73,74],{},[24,75,76],{},"If you're in the Canvas course, you should automatically get synced to this platform",[24,78,79],{},"Visit your Profile page",[24,81,82],{},"Associate your Discord account",[24,84,85],{},"Join the course Discord server",[24,87,88],{},"Verify that your course channels appear on Discord",[37,90,91],{},"You can follow the steps on the below slides for guidance",[11,93,96,99],{"id":94,"level":95},"visit-learn-courses","3",[16,97,98],{"id":94},"Visit Learn Courses",[100,101,104,135],"two-col",{"gap":102,"left-width":103,"right-width":103},"lg","1fr",[105,106,108,111,116],"template",{"v-slot:left":107},"",[37,109,110],{},"Go to:",[37,112,113],{},[41,114,49],{"href":49,"rel":115},[45],[21,117,118,126,129,132],{},[24,119,120,121,125],{},"Click the ",[122,123,124],"strong",{},"Login"," button",[24,127,128],{},"Use your NJIT email",[24,130,131],{},"Only NJIT accounts are allowed",[24,133,134],{},"If the browser tries a personal Chrome profile, log out of that account or switch profiles",[105,136,137],{"v-slot:right":107},[37,138,139],{},[140,141],"img",{"alt":142,"src":143,"variant":144},"Learn Courses logged-out home page with the Login button visible","\u002Fimages\u002Finternet-applications\u002Flearn-courses-discord\u002Fhome-loggedout-login-button.png","sidecar-screenshot",[11,146,148,151],{"id":147,"level":95},"associate-discord-name",[16,149,150],{"id":147},"Associate Discord Name",[100,152,153,179],{"gap":102,"left-width":103,"right-width":103},[105,154,155,158,176],{"v-slot:left":107},[37,156,157],{},"On Learn Courses:",[159,160,161,164,170,173],"ol",{},[24,162,163],{},"Open your Profile",[24,165,166,167],{},"Click ",[122,168,169],{},"Refresh Discord Username",[24,171,172],{},"Authorize the Discord prompt",[24,174,175],{},"After the success message appears, save your profile",[37,177,178],{},"If you are not sure where you are, use the Home icon in the top left to return to the dashboard.",[105,180,181,188],{"v-slot:right":107},[37,182,183],{},[140,184],{"alt":185,"src":186,"variant":144,"max-height":187},"Learn Courses dashboard sidebar with Profile and course links visible","\u002Fimages\u002Finternet-applications\u002Flearn-courses-discord\u002Fdashboard-sidebar-profile-links.png","13rem",[37,189,190],{},[140,191],{"alt":192,"src":193,"variant":144,"max-height":194},"Learn Courses profile page with Discord connection controls visible","\u002Fimages\u002Finternet-applications\u002Flearn-courses-discord\u002Fprofile-page.png","16rem",[11,196,198,201],{"id":197,"level":95},"authorize-discord",[16,199,200],{"id":197},"Authorize Discord",[100,202,203,227],{"gap":102,"left-width":103,"right-width":103},[105,204,205,208],{"v-slot:left":107},[37,206,207],{},"Discord will ask whether Learn Courses can access your Discord account.",[21,209,210,213,218,221,224],{},[24,211,212],{},"Confirm you are signed in to the correct Discord account",[24,214,166,215],{},[122,216,217],{},"Authorize",[24,219,220],{},"Return to Learn Courses",[24,222,223],{},"Look for the success message",[24,225,226],{},"Save the profile change",[105,228,229,236],{"v-slot:right":107},[37,230,231],{},[140,232],{"alt":233,"src":234,"variant":144,"max-height":235},"Discord authorization prompt for Learn Courses","\u002Fimages\u002Finternet-applications\u002Flearn-courses-discord\u002Fdiscord-auth.png","25rem",[37,237,238],{},[140,239],{"alt":240,"src":241,"variant":144,"max-height":242},"Learn Courses success message after connecting Discord","\u002Fimages\u002Finternet-applications\u002Flearn-courses-discord\u002Fdiscord-connected-success.png","7rem",[11,244,246,249,252,258,266],{"id":245,"level":95},"join-the-channel",[16,247,248],{"id":245},"Join The Channel",[37,250,251],{},"Use the Discord link provided on Canvas, or use:",[37,253,254],{},[41,255,256],{"href":256,"rel":257},"https:\u002F\u002Fdiscord.com\u002Finvite\u002FYEHcm44wzg",[45],[37,259,260,261,265],{},"This should send you to the ",[262,263,264],"code",{},"access-channel"," channel.",[21,267,268,271,274],{},[24,269,270],{},"Other channels are protected by a bot",[24,272,273],{},"Messages may be blocked until your name and role are set",[24,275,276],{},"You'll have temporary access until a role is applied so if you leave before completing the steps you'll have to revisit the invite link",[11,278,280,283],{"id":279,"level":14},"verify-with-quackbot",[16,281,282],{"id":279},"Verify With QuackBot",[100,284,285,330],{"gap":102,"left-width":103,"right-width":103},[105,286,287,299,305,310,313,327],{"v-slot:left":107},[21,288,289,292],{},[24,290,291],{},"A summer 2026 change was to have the bot attempt to auto-detect new members and apply roles automatically",[24,293,294,295,298],{},"If you don't see the proper semester category (i.e., ",[262,296,297],{},"summer-2026",") or the expected channels you can do the below action",[37,300,301,302,304],{},"In ",[262,303,264],{},", enter:",[37,306,307],{},[262,308,309],{},"@QuackBot",[37,311,312],{},"QuackBot will:",[21,314,315,318,321,324],{},[24,316,317],{},"Verify your account",[24,319,320],{},"Pull in your name and section",[24,322,323],{},"Apply your class role",[24,325,326],{},"Update your server nickname",[37,328,329],{},"This does not change your real Discord username.",[105,331,332],{"v-slot:right":107},[37,333,334],{},[140,335],{"alt":336,"src":337,"variant":144,"max-height":338},"QuackBot response showing the student already has a course role","\u002Fimages\u002Finternet-applications\u002Flearn-courses-discord\u002Fquackbot-role-response.png","8rem",[11,340,342,346,349,360,365],{"id":341,"level":14},"welcome-and-potential-issues",[16,343,345],{"id":344},"welcome","Welcome",[37,347,348],{},"If the previous steps worked, you should see a new semester category in the Discord sidebar.",[21,350,351,354,357],{},[24,352,353],{},"It should appear after the general channels",[24,355,356],{},"It should include one or more channels for your active courses",[24,358,359],{},"Use the correct course channel for class questions and discussion",[361,362,364],"h3",{"id":363},"potential-issues","Potential Issues",[21,366,367,370],{},[24,368,369],{},"If you recently joined the class, your UCID may still need to be added to Learn Courses",[24,371,372,373,376],{},"If there is an issue, email the instructor or DM ",[262,374,375],{},"MattToegel",[21,377,378],{},[24,379,380],{},"Some Discord privacy settings may require a friend request before DMs work",[11,382,384,387],{"id":383,"level":14},"general-conduct",[16,385,386],{"id":383},"General Conduct",[21,388,389,392,395,406,409,417,425,428],{},[24,390,391],{},"Use class-related channels for questions and discussion",[24,393,394],{},"Ask general course questions in the channel instead of DM when possible",[24,396,397,398],{},"Do not post screenshots of in-progress assignment solutions\n",[21,399,400,403],{},[24,401,402],{},"This would be more ideal for a DM",[24,404,405],{},"If you see posted solution-like items don't assume they're correct",[24,407,408],{},"General unrelated code is okay when it supports a discussion (like content from a presentation or reading)",[24,410,411,412],{},"If the instructor needs to see assignment code, they may ask you to DM the screenshot\n",[21,413,414],{},[24,415,416],{},"Since repositories should be set to private; repo links are fine to post in the class channel since other students should not have access to them",[24,418,419,420],{},"Keep off-topic items out of class channels\n",[21,421,422],{},[24,423,424],{},"There are plenty of categorized channels to use and I can always make more",[24,426,427],{},"Helping classmates understand topics is encouraged just be mindful not to spoon-feed",[24,429,430],{},"Sharing direct solutions goes against the Academic Integrity Policy",[11,432,434,437,440],{"id":433,"level":14},"quick-check",[16,435,436],{"id":433},"Quick Check",[37,438,439],{},"Before continuing, confirm:",[21,441,442,445,448,451,454,457],{},[24,443,444],{},"You can sign in to Learn Courses with your NJIT email",[24,446,447],{},"Your profile is saved",[24,449,450],{},"Discord is associated with your Learn Courses profile",[24,452,453],{},"You joined the Discord server",[24,455,456],{},"QuackBot applied your course role",[24,458,459],{},"You can see the correct course channel",[11,461,463,466],{"id":462,"level":14},"summary",[16,464,465],{"id":462},"Summary",[21,467,468,471,479,482,485],{},[24,469,470],{},"Learn Courses supports course tools and course-specific setup",[24,472,473,474],{},"Canvas remains the official assignment, grade, and course hub\n",[21,475,476],{},[24,477,478],{},"All necessary items will be linked on Canvas",[24,480,481],{},"Discord is the preferred quick communication channel",[24,483,484],{},"QuackBot connects your Discord account to the correct course role",[24,486,487],{},"Good course communication keeps help requests specific and protects private information",{"title":107,"searchDepth":489,"depth":489,"links":490},2,[491,492,493,494,495,496,497,498,502,503,504],{"id":18,"depth":489,"text":19},{"id":57,"depth":489,"text":5},{"id":94,"depth":489,"text":98},{"id":147,"depth":489,"text":150},{"id":197,"depth":489,"text":200},{"id":245,"depth":489,"text":248},{"id":279,"depth":489,"text":282},{"id":344,"depth":489,"text":345,"children":499},[500],{"id":363,"depth":501,"text":364},3,{"id":383,"depth":489,"text":386},{"id":433,"depth":489,"text":436},{"id":462,"depth":489,"text":465},"presentation","Internet Applications","Set up Learn Courses Platform and Discord before starting terminal, Git, and local server work.","Face-to-face class of about 40 students; includes account sign-in, Discord association, QuackBot role setup, and communication expectations.","10","20","30","md",{},"1",true,"0","\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F00-learn-courses-and-discord","Core",false,"5",null,{"title":5,"description":507},"published","internet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F00-learn-courses-and-discord",[526,527,528,529],"course-tools","learn-courses","discord","setup","2026-05-26T02:27:49-04:00","11:16","ScmHyEF1sA0","https:\u002F\u002Fyoutu.be\u002FScmHyEF1sA0","Joining Learn Platform and Discord Server","1pE7MbOgm7vDnxbhsMFaCyOaZMA12yWSOGzJ-weNbWQ",[537,540,544,547,550,553,556,559,563,566,569,573,577,580,584,587,590,593,596,599,602,604,606,608,610,612,614,616,619,622,625,628,631,633,636,639,643,647,651,655,658,661,664,668,671,674,677,680,683,687,691,694,696,699,701,704,707,710,713,716,719,723,727,731,735,738,741,744,747,750,753,756,759,762,765,768,771,774,777,780,783,787,790,793,796,799,802,805,808,811,814,817,821,824,827,830,833,836,839,842,845,848,851,854,857,860,863,866,869,872,875,878,881,884,887,890,893,896,899,902,905,908,911,914,917,920,923,926,929,932,935,938,941,944,947,950,953,956,959,962,965,968,971,974,977,980,983,986,989,992,995,998,1001,1004,1007,1010,1013,1016,1019,1022,1025,1028,1031,1034,1037,1040,1043,1046,1049,1052,1055,1058,1061,1064,1067,1070,1073,1076,1079,1082,1085,1088,1091,1094,1097,1100,1103,1106,1109,1112,1115,1118,1121,1124,1127,1130,1133,1136,1139,1142,1145,1148,1151,1154,1157,1160,1163,1166,1169,1172,1175,1179,1182,1185,1188,1191,1194,1197,1200,1203,1206,1209,1212,1215,1218,1221,1224,1227,1230,1233,1236,1239,1242,1245,1248,1251,1254,1257,1260,1263,1266,1269,1272,1275,1278,1281,1284,1287,1290,1293,1296,1299,1302,1305,1308,1311,1314,1317,1320,1323,1326,1329,1332,1335,1338,1341,1344,1347,1350,1353,1356,1359,1362,1365,1368,1371,1374,1377,1380,1383,1386,1389,1392,1395,1398,1401,1404,1407,1410,1413,1416,1419,1422,1425,1428,1431,1434,1437,1440,1443,1446,1449,1452,1455,1458,1461,1464,1467,1470,1473,1476,1479,1482,1485,1488,1491,1494,1497,1500,1503,1506,1509,1512,1515,1518,1521,1524,1527,1530,1533,1536,1539,1542,1545,1548,1551,1554,1557,1560,1564,1567,1570,1573,1576,1579,1582,1583,1585,1587,1589,1591,1593,1595,1597,1599,1601,1603,1605,1607,1609,1611,1613,1615,1617,1619,1621,1623,1625,1628,1630,1632,1634,1636,1638,1640,1642,1644,1646,1648,1650,1652,1654,1656,1658,1662,1666,1670,1673,1677,1681,1684,1687,1690,1693,1696,1699,1703,1706,1709,1712,1715,1717,1719,1721,1723,1726,1729,1732,1735,1738,1741,1744,1747,1750,1753,1756,1759,1762,1765,1768,1771,1774,1777,1780,1783,1786,1789,1792,1795,1798,1801,1804,1807,1810,1813,1816,1819,1822,1825,1828,1831,1834,1837,1840,1843,1846,1849,1852,1855,1858,1861,1864,1867,1870,1873,1876,1879,1882,1885,1888,1890,1892,1894,1896,1898,1900,1902,1904,1906,1908,1910,1912,1914,1916,1918,1920,1922,1924,1927,1929,1931,1933,1935,1937,1939,1941,1943,1945,1947,1949,1951,1953,1955,1957,1959,1961,1963,1965,1967,1969,1972,1975,1978,1981,1984,1986,1988,1991,1994,1997,2000,2003,2006],{"path":538,"title":539,"order":521,"module":521,"status":521},"\u002Fabout","About Content Version 3",{"path":541,"title":542,"order":520,"module":514,"status":543},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F01-introduction\u002F01-first-concept","First Concept","draft",{"path":545,"title":546,"order":509,"module":514,"status":543},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F01-introduction\u002F01-what-is-a-game","What is a Game?",{"path":548,"title":549,"order":510,"module":514,"status":543},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F01-introduction\u002F02-what-is-gameplay","What is Gameplay?",{"path":551,"title":552,"order":509,"module":14,"status":543},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F02-game-balance\u002F01-game-balance","Game Balance",{"path":554,"title":555,"order":509,"module":95,"status":543},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F03-look-and-feel\u002F01-color-theory","Game Design: Color Theory",{"path":557,"title":558,"order":510,"module":95,"status":543},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F03-look-and-feel\u002F02-look-and-feel","Game Design - Look and Feel",{"path":560,"title":561,"order":509,"module":562,"status":543},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F04-game-mechanics\u002F01-game-mechanics","Game Mechanics","4",{"path":564,"title":565,"order":510,"module":562,"status":543},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F04-game-mechanics\u002F02-decks","Technical: Decks and Cards",{"path":567,"title":568,"order":509,"module":520,"status":543},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F05-depth-complexity-and-randomness\u002F01-depth-vs-complexity-and-randomness","Depth, Complexity, And Randomness",{"path":570,"title":571,"order":510,"module":572,"status":543},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F06-first-game-planning\u002F02-planning-and-management","Planning From Concept To Prototype","6",{"path":574,"title":575,"order":509,"module":576,"status":543},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F08-game-architecture\u002F01-concepts-and-design","Game Architecture: Concepts And Design","8",{"path":578,"title":579,"order":510,"module":576,"status":543},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F08-game-architecture\u002F02-features-of-a-game-engine","Game Engine Features And Browser Feasibility",{"path":581,"title":582,"order":509,"module":583,"status":543},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F09-entity-based-systems\u002F01-ecs","Entity-Based Systems","9",{"path":585,"title":586,"order":509,"module":509,"status":543},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F10-player-facing-feature-systems\u002F01-spatial-rules-levels-and-interface","Spatial Rules, Levels, And Interface",{"path":588,"title":589,"order":510,"module":509,"status":543},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F10-player-facing-feature-systems\u002F02-actors-behavior-and-effects","Actors, Behavior, And Effects",{"path":591,"title":592,"order":514,"module":516,"status":523},"\u002Fgame-architecture-and-design\u002F2e\u002Fsyllabus\u002Ffall-2026","Course Syllabus: IT265 - Game Architecture and Design",{"path":594,"title":595,"order":514,"module":516,"status":543},"\u002Fgame-architecture-and-design","Game Architecture and Design",{"path":597,"title":598,"order":521,"module":521,"status":543},"\u002Fgame-architecture-and-design\u002Fpresentations-revised\u002F00-revision-plan","Game Architecture And Design Presentation Revision Plan",{"path":600,"title":601,"order":521,"module":521,"status":543},"\u002Fgame-architecture-and-design\u002Fpresentations-revised\u002F01-20-minute-recording-plan","Game Architecture And Design Twenty-Minute Recording Plan",{"path":603,"title":546,"order":509,"module":514,"status":543},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F01-introduction\u002F01-what-is-a-game",{"path":605,"title":549,"order":510,"module":514,"status":543},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F01-introduction\u002F02-what-is-gameplay",{"path":607,"title":552,"order":509,"module":14,"status":543},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F02-game-balance\u002F01-game-balance",{"path":609,"title":555,"order":509,"module":95,"status":543},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F03-look-and-feel\u002F01-color-theory",{"path":611,"title":558,"order":510,"module":95,"status":543},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F03-look-and-feel\u002F02-look-and-feel",{"path":613,"title":561,"order":509,"module":562,"status":543},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F04-game-mechanics\u002F01-game-mechanics",{"path":615,"title":565,"order":510,"module":562,"status":543},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F04-game-mechanics\u002F02-decks",{"path":617,"title":618,"order":509,"module":520,"status":543},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F05-depth-complexity-and-randomness\u002F01-depth-vs-complexity-and-randomness","Depth vs Complexity and Randomness",{"path":620,"title":621,"order":509,"module":572,"status":543},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F06-first-game-planning\u002F01-first-concept","First Concept: Updated Lesson",{"path":623,"title":624,"order":510,"module":572,"status":543},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F06-first-game-planning\u002F02-planning-and-management","Planning and Management",{"path":626,"title":627,"order":509,"module":576,"status":543},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F08-game-architecture\u002F01-concepts-and-design","Game Architecture: Concepts and Design",{"path":629,"title":630,"order":510,"module":576,"status":543},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F08-game-architecture\u002F02-features-of-a-game-engine","Game Architecture: Features of a Game Engine",{"path":632,"title":582,"order":509,"module":583,"status":543},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F09-entity-based-systems\u002F01-ecs",{"path":634,"title":635,"order":509,"module":509,"status":543},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F10-level-mechanics\u002F01-level-mechanics","Game Design: Introduction to Level Mechanics",{"path":637,"title":638,"order":510,"module":509,"status":543},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F10-level-mechanics\u002F02-grids","Technical: Square vs Hex Grids in Board Games",{"path":640,"title":641,"order":509,"module":642,"status":543},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F11-user-interfaces\u002F01-user-interfaces","Game Design: User Interfaces","11",{"path":644,"title":645,"order":509,"module":646,"status":543},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F12-actor-representations\u002F01-actors","Game Design: Actor Representations","12",{"path":648,"title":649,"order":509,"module":650,"status":543},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F13-artificial-intelligence\u002F01-ai","Game Design: AI","13",{"path":652,"title":653,"order":509,"module":654,"status":543},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F14-particles-and-physics\u002F01-particles-and-physics","IT265: Particle Systems and Physics Engine","14",{"path":656,"title":657,"order":514,"module":516,"status":543},"\u002Fgame-architecture-and-design\u002Fsyllabus\u002Fspring-2026","Course Syllabus: IT265 - Game Architecture",{"path":659,"title":660,"order":509,"module":516,"status":543},"\u002Fgame-architecture-and-design\u002Fworksheets\u002Fcase-study-1-atari-worksheet","Case Study 1 - Atari",{"path":662,"title":663,"order":510,"module":516,"status":543},"\u002Fgame-architecture-and-design\u002Fworksheets\u002Fit265-case-study-color-theory-worksheet","IT265 Case Study - Color Theory",{"path":665,"title":666,"order":667,"module":516,"status":543},"\u002Fgame-architecture-and-design\u002Fworksheets\u002Fit265-case-study-personal-choice-worksheet","IT265 Case Study - Personal Choice","40",{"path":669,"title":670,"order":511,"module":516,"status":543},"\u002Fgame-architecture-and-design\u002Fworksheets\u002Fit265-design-treatment-checkpoint-worksheet","IT265 Design Treatment Checkpoint",{"path":672,"title":673,"order":509,"module":514,"status":543},"\u002Fgeneral\u002F2e\u002Fpresentations\u002F01-git-and-terminal-setup","Git And Terminal Setup",{"path":675,"title":676,"order":510,"module":514,"status":543},"\u002Fgeneral\u002F2e\u002Fpresentations\u002F02-cli-foundations","CLI Foundations",{"path":678,"title":679,"order":511,"module":514,"status":543},"\u002Fgeneral\u002F2e\u002Fpresentations\u002F03-github-setup-and-ssh","GitHub Setup And SSH",{"path":681,"title":682,"order":667,"module":514,"status":543},"\u002Fgeneral\u002F2e\u002Fpresentations\u002F04-local-git-workflow-and-course-repositories","Local Git Workflow And Course Repositories",{"path":684,"title":685,"order":686,"module":514,"status":543},"\u002Fgeneral\u002F2e\u002Fpresentations\u002F05-vscode-setup-and-course-extensions","VS Code Setup And Course Extensions","50",{"path":688,"title":689,"order":690,"module":514,"status":543},"\u002Fgeneral\u002F2e\u002Fpresentations\u002F06-trace-learning-journal","TRACE Learning Journal Foundations","60",{"path":692,"title":693,"order":521,"module":521,"status":521},"\u002Fgeneral\u002Fbasic-cli","Basic Command Line",{"path":695,"title":693,"order":509,"module":514,"status":521},"\u002Fgeneral\u002Fbasic-command-line",{"path":697,"title":698,"order":521,"module":521,"status":523},"\u002F","Ethereal Lab Course Materials",{"path":700,"title":5,"order":516,"module":514,"status":543},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F00-learn-courses-and-discord",{"path":702,"title":703,"order":509,"module":514,"status":543},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F01-basic-cli-commands","Basic CLI Commands",{"path":705,"title":706,"order":510,"module":514,"status":543},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F02-install-git-tools","Git Tools",{"path":708,"title":709,"order":511,"module":514,"status":543},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F03-setup-github-ssh","Set Up GitHub SSH",{"path":711,"title":712,"order":667,"module":514,"status":543},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F04-git-commands-prs","Git Commands And Pull Requests",{"path":714,"title":715,"order":686,"module":514,"status":543},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F05-setup-local-development-environment","Local Development Environment Setup",{"path":717,"title":718,"order":690,"module":514,"status":543},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F06-add-instructor-template-to-your-repository","Add Instructor Template To Your Repository",{"path":720,"title":721,"order":722,"module":514,"status":543},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F07-qa-prod-branches","QA And Prod Branches","70",{"path":724,"title":725,"order":726,"module":514,"status":543},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F08-render-setup","Render Setup","80",{"path":728,"title":729,"order":730,"module":514,"status":543},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F09-local-ubuntu-web-server-virtualbox","Local Ubuntu Web Server With VirtualBox","90",{"path":732,"title":733,"order":734,"module":514,"status":543},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F10-local-ubuntu-web-server-vmware","Local Ubuntu Web Server With VMware","100",{"path":736,"title":737,"order":509,"module":14,"status":543},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F02-php-and-javascript-basics\u002F01-compare-php-and-javascript","Compare PHP And JavaScript",{"path":739,"title":740,"order":510,"module":14,"status":543},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F02-php-and-javascript-basics\u002F02-conditions-loops-functions","Use Conditions Loops And Functions",{"path":742,"title":743,"order":509,"module":95,"status":543},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F03-html-forms-css-and-dom\u002F01-intro-to-html","Intro To HTML",{"path":745,"title":746,"order":510,"module":95,"status":543},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F03-html-forms-css-and-dom\u002F02-intro-to-forms-and-get-post","Intro To Forms And GET\u002FPOST",{"path":748,"title":749,"order":511,"module":95,"status":543},"\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":751,"title":752,"order":509,"module":562,"status":543},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F04-databases-and-user-accounts\u002F01-intro-to-sql","Intro To SQL",{"path":754,"title":755,"order":510,"module":562,"status":543},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F04-databases-and-user-accounts\u002F02-project-database-setup","Project Database Setup",{"path":757,"title":758,"order":511,"module":562,"status":543},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F04-databases-and-user-accounts\u002F03-user-registration","User Registration",{"path":760,"title":761,"order":667,"module":562,"status":543},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F04-databases-and-user-accounts\u002F04-user-login","User Login",{"path":763,"title":764,"order":509,"module":520,"status":543},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F05-validation-and-user-profiles\u002F01-intro-to-regex","Intro To Regex",{"path":766,"title":767,"order":510,"module":520,"status":543},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F05-validation-and-user-profiles\u002F02-project-shared-helpers","Project Shared Helpers",{"path":769,"title":770,"order":511,"module":520,"status":543},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F05-validation-and-user-profiles\u002F03-flash-messages-and-redirect-feedback","User Feedback After Redirects",{"path":772,"title":773,"order":667,"module":520,"status":543},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F05-validation-and-user-profiles\u002F04-user-profile","User Profile",{"path":775,"title":776,"order":509,"module":572,"status":543},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F06-roles-and-crud-pages\u002F01-user-roles-authorization","User Roles Authorization",{"path":778,"title":779,"order":510,"module":572,"status":543},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F06-roles-and-crud-pages\u002F02-user-login-enhancement","User Login Enhancement",{"path":781,"title":782,"order":511,"module":572,"status":543},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F06-roles-and-crud-pages\u002F03-dynamic-content","Dynamic Content",{"path":784,"title":785,"order":509,"module":786,"status":543},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F07-api-data-and-database-helpers\u002F01-working-with-api-data","Working With API Data","7",{"path":788,"title":789,"order":510,"module":786,"status":543},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F07-api-data-and-database-helpers\u002F02-api-integration","API Integration",{"path":791,"title":792,"order":511,"module":786,"status":543},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F07-api-data-and-database-helpers\u002F03-database-utility-functions","Database Utility Functions",{"path":794,"title":795,"order":509,"module":576,"status":543},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F08-reusable-components-jquery-and-ajax\u002F01-milestone-2-bootstrap-and-reusability","Milestone 2 Bootstrap And Reusability",{"path":797,"title":798,"order":510,"module":576,"status":543},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F08-reusable-components-jquery-and-ajax\u002F02-jquery-brief-intro","jQuery Brief Intro",{"path":800,"title":801,"order":511,"module":576,"status":543},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F08-reusable-components-jquery-and-ajax\u002F03-intro-to-ajax","Intro To AJAX",{"path":803,"title":804,"order":509,"module":583,"status":543},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F09-relational-data-search-and-pagination\u002F01-user-associations","Add User Associations",{"path":806,"title":807,"order":510,"module":583,"status":543},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F09-relational-data-search-and-pagination\u002F02-association-views-and-pagination","Add Association Views And Pagination",{"path":809,"title":810,"order":509,"module":509,"status":543},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F10-association-assignment-and-security\u002F01-association-assignment-and-public-profiles","Association Management And Public Profiles",{"path":812,"title":813,"order":510,"module":509,"status":543},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F10-association-assignment-and-security\u002F02-reusable-csrf-protection","Reusable CSRF Protection",{"path":815,"title":816,"order":514,"module":516,"status":523},"\u002Finternet-applications\u002F2e\u002Fsyllabus\u002Ffall-2026","IT202 - Internet Applications Syllabus",{"path":818,"title":819,"order":667,"module":509,"status":820},"\u002Finternet-applications\u002Fassignments\u002Ffinal-project-submission","Final Project Submission","review",{"path":822,"title":823,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fassignments\u002Fmilestones\u002F01-account-access-and-profile-system","Milestone 1: Account, Access, And Profile System",{"path":825,"title":826,"order":510,"module":576,"status":820},"\u002Finternet-applications\u002Fassignments\u002Fmilestones\u002F02-api-data-and-project-crud","Milestone 2: API Data And Project CRUD",{"path":828,"title":829,"order":511,"module":583,"status":820},"\u002Finternet-applications\u002Fassignments\u002Fmilestones\u002F03-user-associations-search-and-summary","Milestone 3: User Associations, Search, And Summary Views",{"path":831,"title":832,"order":520,"module":562,"status":523},"\u002Finternet-applications\u002Fassignments\u002Fproject-proposal","IT 202 Project Proposal",{"path":834,"title":835,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F01-what-this-course-is-building","What Internet Applications Build",{"path":837,"title":838,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F02-files-folders-and-project-structure","Files, Folders, And Project Structure",{"path":840,"title":841,"order":521,"module":521,"status":521},"\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":843,"title":844,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F02b-install-git-and-terminal-tools","Install Git And Terminal Tools",{"path":846,"title":847,"order":521,"module":521,"status":521},"\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":849,"title":850,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F03a-local-development-environment","Set Up A Local Development Environment",{"path":852,"title":853,"order":521,"module":521,"status":521},"\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":855,"title":856,"order":521,"module":521,"status":521},"\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":858,"title":859,"order":521,"module":521,"status":521},"\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":861,"title":862,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F07-git-recovery-and-common-mistakes","Git Recovery And Common Mistakes",{"path":864,"title":865,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F08-installing-apache-and-php","Installing Apache, PHP, And MySQL",{"path":867,"title":868,"order":521,"module":521,"status":521},"\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":870,"title":871,"order":521,"module":521,"status":521},"\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":873,"title":874,"order":521,"module":521,"status":521},"\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":876,"title":877,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F12-local-qa-and-production-environments","Local, QA, And Production Environments",{"path":879,"title":880,"order":521,"module":521,"status":521},"\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":882,"title":883,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F02-displaying-output-with-php","Displaying Output With PHP",{"path":885,"title":886,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F03-displaying-output-with-javascript","Displaying Output With JavaScript",{"path":888,"title":889,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F04-variables-storing-and-naming-values","Variables: Storing And Naming Values",{"path":891,"title":892,"order":521,"module":521,"status":521},"\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":894,"title":895,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F06-arrays-storing-lists-of-values","Arrays: Storing Lists Of Values",{"path":897,"title":898,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F07-conditional-statements-making-decisions","Conditional Statements: Making Decisions",{"path":900,"title":901,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F08-loops-repeating-actions","Loops: Repeating Actions",{"path":903,"title":904,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F09-functions-reusable-blocks-of-logic","Functions: Reusable Blocks Of Logic",{"path":906,"title":907,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F10-reading-and-debugging-error-messages","Reading And Debugging Error Messages",{"path":909,"title":910,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F01-html-structure-and-meaning","HTML: Structure And Meaning",{"path":912,"title":913,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F02-writing-a-valid-html-document","Writing A Valid HTML Document",{"path":915,"title":916,"order":521,"module":521,"status":521},"\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":918,"title":919,"order":521,"module":521,"status":521},"\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":921,"title":922,"order":521,"module":521,"status":521},"\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":924,"title":925,"order":521,"module":521,"status":521},"\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":927,"title":928,"order":521,"module":521,"status":521},"\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":930,"title":931,"order":521,"module":521,"status":521},"\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":933,"title":934,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F09-page-layout-with-flexbox","Page Layout With Flexbox",{"path":936,"title":937,"order":521,"module":521,"status":521},"\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":939,"title":940,"order":521,"module":521,"status":521},"\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":942,"title":943,"order":521,"module":521,"status":521},"\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":945,"title":946,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F12-basic-web-accessibility-habits","Basic Web Accessibility Habits",{"path":948,"title":949,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F01-why-web-applications-need-a-database","Why Web Applications Need A Database",{"path":951,"title":952,"order":521,"module":521,"status":521},"\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":954,"title":955,"order":521,"module":521,"status":521},"\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":957,"title":958,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F04-creating-tables-with-sql-scripts","Creating Tables With SQL Scripts",{"path":960,"title":961,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F05-connecting-php-to-mysql-with-pdo","Connecting PHP To MySQL With PDO",{"path":963,"title":964,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F06-parameterized-queries-and-sql-injection-prevention","Parameterized Queries And SQL Injection Prevention",{"path":966,"title":967,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F07-building-a-registration-page","Building A Registration Page",{"path":969,"title":970,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F08-hashing-passwords-with-password-hash","Hashing Passwords With password_hash()",{"path":972,"title":973,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F09-building-a-login-page","Building A Login Page",{"path":975,"title":976,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F10-sessions-remembering-the-logged-in-user","Sessions: Remembering The Logged-In User",{"path":978,"title":979,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F11-cookies-persistent-client-side-state","Cookies: Persistent Client-Side State",{"path":981,"title":982,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F12-navigation-that-responds-to-login-state","Navigation That Responds To Login State",{"path":984,"title":985,"order":521,"module":521,"status":521},"\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":987,"title":988,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F02-sanitizing-and-escaping-user-input","Sanitizing And Escaping User Input",{"path":990,"title":991,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F03-required-fields-and-length-rules","Required Fields And Length Rules",{"path":993,"title":994,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F04-regular-expressions-for-pattern-matching","Regular Expressions For Pattern Matching",{"path":996,"title":997,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F05-server-side-validation-in-php","Server-Side Validation In PHP",{"path":999,"title":1000,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F06-cross-site-scripting-xss-prevention","Cross-Site Scripting (XSS) Prevention",{"path":1002,"title":1003,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F07-flash-messages-and-persistent-feedback","Flash Messages And Persistent Feedback",{"path":1005,"title":1006,"order":521,"module":521,"status":521},"\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":1008,"title":1009,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F09-building-a-profile-edit-page","Building A Profile Edit Page",{"path":1011,"title":1012,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F10-debugging-account-and-authentication-problems","Debugging Account And Authentication Problems",{"path":1014,"title":1015,"order":521,"module":521,"status":521},"\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":1017,"title":1018,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F01-role-based-access-control","Role-Based Access Control",{"path":1020,"title":1021,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F02-storing-roles-in-the-database","Storing Roles In The Database",{"path":1023,"title":1024,"order":521,"module":521,"status":521},"\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":1026,"title":1027,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F04-safe-redirects-after-login-and-logout","Safe Redirects After Login And Logout",{"path":1029,"title":1030,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F05-listing-records-from-the-database","Listing Records From The Database",{"path":1032,"title":1033,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F06-creating-new-records-with-a-form","Creating New Records With A Form",{"path":1035,"title":1036,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F07-editing-existing-records","Editing Existing Records",{"path":1038,"title":1039,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F08-deleting-records-safely","Deleting Records Safely",{"path":1041,"title":1042,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F09-ownership-linking-records-to-users","Ownership: Linking Records To Users",{"path":1044,"title":1045,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F10-first-project-milestone-checklist","First Project Milestone Checklist",{"path":1047,"title":1048,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F11-organizing-growing-php-applications","Organizing Growing PHP Applications",{"path":1050,"title":1051,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F12-reading-a-growing-php-application","Reading A Growing PHP Application",{"path":1053,"title":1054,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F01-what-asynchronous-requests-ajax-solve","What Asynchronous Requests (AJAX) Solve",{"path":1056,"title":1057,"order":521,"module":521,"status":521},"\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":1059,"title":1060,"order":521,"module":521,"status":521},"\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":1062,"title":1063,"order":521,"module":521,"status":521},"\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":1065,"title":1066,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F05-handling-fetch-responses-and-errors","Handling Fetch Responses And Errors",{"path":1068,"title":1069,"order":521,"module":521,"status":521},"\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":1071,"title":1072,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F07-introduction-to-rest-apis","Introduction To REST APIs",{"path":1074,"title":1075,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F08-reading-api-documentation","Reading API Documentation",{"path":1077,"title":1078,"order":521,"module":521,"status":521},"\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":1080,"title":1081,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F10-storing-and-caching-api-responses","Storing And Caching API Responses",{"path":1083,"title":1084,"order":521,"module":521,"status":521},"\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":1086,"title":1087,"order":521,"module":521,"status":521},"\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":1089,"title":1090,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F01-jquery-simplified-dom-and-event-work","jQuery: Simplified DOM And Event Work",{"path":1092,"title":1093,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F02-selecting-elements-with-jquery","Selecting Elements With jQuery",{"path":1095,"title":1096,"order":521,"module":521,"status":521},"\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":1098,"title":1099,"order":521,"module":521,"status":521},"\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":1101,"title":1102,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F05-sending-ajax-requests-with-jquery","Sending AJAX Requests With jQuery",{"path":1104,"title":1105,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F06-saving-external-api-data-through-php","Saving External API Data Through PHP",{"path":1107,"title":1108,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F07-saving-user-created-records","Saving User-Created Records",{"path":1110,"title":1111,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F08-building-a-project-listing-page","Building A Project Listing Page",{"path":1113,"title":1114,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F09-inline-editing-and-detail-views","Inline Editing And Detail Views",{"path":1116,"title":1117,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F10-second-project-milestone-checklist","Second Project Milestone Checklist",{"path":1119,"title":1120,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F01-foreign-keys-and-referential-integrity","Foreign Keys And Referential Integrity",{"path":1122,"title":1123,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F02-joining-tables-inner-join-left-join","Joining Tables: INNER JOIN, LEFT JOIN",{"path":1125,"title":1126,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F03-user-owned-records-and-access-enforcement","User-Owned Records And Access Enforcement",{"path":1128,"title":1129,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F04-connecting-api-data-to-user-records","Connecting API Data To User Records",{"path":1131,"title":1132,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F05-searching-and-filtering-with-sql","Searching And Filtering With SQL",{"path":1134,"title":1135,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F06-pagination-displaying-records-in-pages","Pagination: Displaying Records In Pages",{"path":1137,"title":1138,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F07-aggregate-functions-count-sum-avg","Aggregate Functions: COUNT, SUM, AVG",{"path":1140,"title":1141,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F08-simple-analytics-and-summary-views","Simple Analytics And Summary Views",{"path":1143,"title":1144,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F09-third-project-milestone-checklist","Third Project Milestone Checklist",{"path":1146,"title":1147,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F01-public-pages-and-unauthenticated-views","Public Pages And Unauthenticated Views",{"path":1149,"title":1150,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F02-user-profile-and-activity-pages","User Profile And Activity Pages",{"path":1152,"title":1153,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F03-refreshing-and-expiring-external-api-data","Refreshing And Expiring External API Data",{"path":1155,"title":1156,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F04-application-wide-security-audit","Application-Wide Security Audit",{"path":1158,"title":1159,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F05-cross-site-request-forgery-csrf-protection","Cross-Site Request Forgery (CSRF) Protection",{"path":1161,"title":1162,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F06-qa-testing-and-collecting-evidence","QA Testing And Collecting Evidence",{"path":1164,"title":1165,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F07-production-environment-checklist","Production Environment Checklist",{"path":1167,"title":1168,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F08-writing-a-project-readme","Writing A Project README",{"path":1170,"title":1171,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F09-final-presentation-and-code-walkthrough","Final Presentation And Code Walkthrough",{"path":1173,"title":1174,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F10-configuration-drift-and-secrets-checks","Configuration Drift And Secrets Checks",{"path":1176,"title":1177,"order":521,"module":521,"status":1178},"\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":1180,"title":1181,"order":521,"module":521,"status":1178},"\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":1183,"title":1184,"order":521,"module":521,"status":1178},"\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":1186,"title":1187,"order":521,"module":521,"status":1178},"\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":1189,"title":1190,"order":521,"module":521,"status":1178},"\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":1192,"title":1193,"order":521,"module":521,"status":1178},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F03a-local-development-environment","Quiz - Set Up A Local Development Environment",{"path":1195,"title":1196,"order":521,"module":521,"status":1178},"\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":1198,"title":1199,"order":521,"module":521,"status":1178},"\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":1201,"title":1202,"order":521,"module":521,"status":1178},"\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":1204,"title":1205,"order":521,"module":521,"status":1178},"\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":1207,"title":1208,"order":521,"module":521,"status":1178},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F08-installing-apache-and-php","Quiz - Installing Apache, PHP, And MySQL",{"path":1210,"title":1211,"order":521,"module":521,"status":1178},"\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":1213,"title":1214,"order":521,"module":521,"status":1178},"\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":1216,"title":1217,"order":521,"module":521,"status":521},"\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":1219,"title":1220,"order":521,"module":521,"status":1178},"\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":1222,"title":1223,"order":521,"module":521,"status":1178},"\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":1225,"title":1226,"order":521,"module":521,"status":1178},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F02-displaying-output-with-php","Quiz - Displaying Output With PHP",{"path":1228,"title":1229,"order":521,"module":521,"status":1178},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F03-displaying-output-with-javascript","Quiz - Displaying Output With JavaScript",{"path":1231,"title":1232,"order":521,"module":521,"status":521},"\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":1234,"title":1235,"order":521,"module":521,"status":521},"\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":1237,"title":1238,"order":521,"module":521,"status":1178},"\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":1240,"title":1241,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F07-conditional-statements-making-decisions","Quiz - Conditional Statements: Making Decisions",{"path":1243,"title":1244,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F08-loops-repeating-actions","Quiz - Loops: Repeating Actions",{"path":1246,"title":1247,"order":521,"module":521,"status":521},"\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":1249,"title":1250,"order":521,"module":521,"status":1178},"\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":1252,"title":1253,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F01-html-structure-and-meaning","Quiz - HTML: Structure And Meaning",{"path":1255,"title":1256,"order":521,"module":521,"status":1178},"\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":1258,"title":1259,"order":521,"module":521,"status":1178},"\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":1261,"title":1262,"order":521,"module":521,"status":521},"\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":1264,"title":1265,"order":521,"module":521,"status":1178},"\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":1267,"title":1268,"order":521,"module":521,"status":1178},"\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":1270,"title":1271,"order":521,"module":521,"status":521},"\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":1273,"title":1274,"order":521,"module":521,"status":521},"\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":1276,"title":1277,"order":521,"module":521,"status":1178},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F09-page-layout-with-flexbox","Quiz - Page Layout With Flexbox",{"path":1279,"title":1280,"order":521,"module":521,"status":1178},"\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":1282,"title":1283,"order":521,"module":521,"status":1178},"\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":1285,"title":1286,"order":521,"module":521,"status":1178},"\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":1288,"title":1289,"order":521,"module":521,"status":1178},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F12-basic-web-accessibility-habits","Quiz - Basic Web Accessibility Habits",{"path":1291,"title":1292,"order":521,"module":521,"status":1178},"\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":1294,"title":1295,"order":521,"module":521,"status":521},"\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":1297,"title":1298,"order":521,"module":521,"status":521},"\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":1300,"title":1301,"order":521,"module":521,"status":1178},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F04-databases-and-user-accounts\u002F04-creating-tables-with-sql-scripts","Quiz - Creating Tables With SQL Scripts",{"path":1303,"title":1304,"order":521,"module":521,"status":1178},"\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":1306,"title":1307,"order":521,"module":521,"status":1178},"\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":1309,"title":1310,"order":521,"module":521,"status":1178},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F04-databases-and-user-accounts\u002F07-building-a-registration-page","Quiz - Building A Registration Page",{"path":1312,"title":1313,"order":521,"module":521,"status":1178},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F04-databases-and-user-accounts\u002F08-hashing-passwords-with-password-hash","Quiz - Hashing Passwords With password_hash()",{"path":1315,"title":1316,"order":521,"module":521,"status":1178},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F04-databases-and-user-accounts\u002F09-building-a-login-page","Quiz - Building A Login Page",{"path":1318,"title":1319,"order":521,"module":521,"status":521},"\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":1321,"title":1322,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F04-databases-and-user-accounts\u002F11-cookies-persistent-client-side-state","Quiz - Cookies: Persistent Client-Side State",{"path":1324,"title":1325,"order":521,"module":521,"status":1178},"\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":1327,"title":1328,"order":521,"module":521,"status":1178},"\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":1330,"title":1331,"order":521,"module":521,"status":1178},"\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":1333,"title":1334,"order":521,"module":521,"status":1178},"\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":1336,"title":1337,"order":521,"module":521,"status":1178},"\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":1339,"title":1340,"order":521,"module":521,"status":1178},"\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":1342,"title":1343,"order":521,"module":521,"status":1178},"\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":1345,"title":1346,"order":521,"module":521,"status":1178},"\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":1348,"title":1349,"order":521,"module":521,"status":1178},"\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":1351,"title":1352,"order":521,"module":521,"status":1178},"\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":1354,"title":1355,"order":521,"module":521,"status":1178},"\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":1357,"title":1358,"order":521,"module":521,"status":521},"\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":1360,"title":1361,"order":521,"module":521,"status":1178},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F01-role-based-access-control","Quiz - Role-Based Access Control",{"path":1363,"title":1364,"order":521,"module":521,"status":1178},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F02-storing-roles-in-the-database","Quiz - Storing Roles In The Database",{"path":1366,"title":1367,"order":521,"module":521,"status":1178},"\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":1369,"title":1370,"order":521,"module":521,"status":1178},"\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":1372,"title":1373,"order":521,"module":521,"status":1178},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F05-listing-records-from-the-database","Quiz - Listing Records From The Database",{"path":1375,"title":1376,"order":521,"module":521,"status":1178},"\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":1378,"title":1379,"order":521,"module":521,"status":1178},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F07-editing-existing-records","Quiz - Editing Existing Records",{"path":1381,"title":1382,"order":521,"module":521,"status":1178},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F08-deleting-records-safely","Quiz - Deleting Records Safely",{"path":1384,"title":1385,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F09-ownership-linking-records-to-users","Quiz - Ownership: Linking Records To Users",{"path":1387,"title":1388,"order":521,"module":521,"status":1178},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F10-first-project-milestone-checklist","Quiz - First Project Milestone Checklist",{"path":1390,"title":1391,"order":521,"module":521,"status":1178},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F11-organizing-growing-php-applications","Quiz - Organizing Growing PHP Applications",{"path":1393,"title":1394,"order":521,"module":521,"status":1178},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F12-reading-a-growing-php-application","Quiz - Reading A Growing PHP Application",{"path":1396,"title":1397,"order":521,"module":521,"status":1178},"\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":1399,"title":1400,"order":521,"module":521,"status":1178},"\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":1402,"title":1403,"order":521,"module":521,"status":1178},"\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":1405,"title":1406,"order":521,"module":521,"status":1178},"\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":1408,"title":1409,"order":521,"module":521,"status":1178},"\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":1411,"title":1412,"order":521,"module":521,"status":1178},"\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":1414,"title":1415,"order":521,"module":521,"status":1178},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F07-introduction-to-rest-apis","Quiz - Introduction To REST APIs",{"path":1417,"title":1418,"order":521,"module":521,"status":1178},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F08-reading-api-documentation","Quiz - Reading API Documentation",{"path":1420,"title":1421,"order":521,"module":521,"status":1178},"\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":1423,"title":1424,"order":521,"module":521,"status":1178},"\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":1426,"title":1427,"order":521,"module":521,"status":1178},"\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":1429,"title":1430,"order":521,"module":521,"status":1178},"\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":1432,"title":1433,"order":521,"module":521,"status":521},"\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":1435,"title":1436,"order":521,"module":521,"status":1178},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F02-selecting-elements-with-jquery","Quiz - Selecting Elements With jQuery",{"path":1438,"title":1439,"order":521,"module":521,"status":521},"\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":1441,"title":1442,"order":521,"module":521,"status":1178},"\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":1444,"title":1445,"order":521,"module":521,"status":1178},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F05-sending-ajax-requests-with-jquery","Quiz - Sending AJAX Requests With jQuery",{"path":1447,"title":1448,"order":521,"module":521,"status":1178},"\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":1450,"title":1451,"order":521,"module":521,"status":1178},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F07-saving-user-created-records","Quiz - Saving User-Created Records",{"path":1453,"title":1454,"order":521,"module":521,"status":1178},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F08-building-a-project-listing-page","Quiz - Building A Project Listing Page",{"path":1456,"title":1457,"order":521,"module":521,"status":1178},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F09-inline-editing-and-detail-views","Quiz - Inline Editing And Detail Views",{"path":1459,"title":1460,"order":521,"module":521,"status":1178},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F10-second-project-milestone-checklist","Quiz - Second Project Milestone Checklist",{"path":1462,"title":1463,"order":521,"module":521,"status":1178},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F01-foreign-keys-and-referential-integrity","Quiz - Foreign Keys And Referential Integrity",{"path":1465,"title":1466,"order":521,"module":521,"status":1178},"\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":1468,"title":1469,"order":521,"module":521,"status":1178},"\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":1471,"title":1472,"order":521,"module":521,"status":1178},"\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":1474,"title":1475,"order":521,"module":521,"status":1178},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F05-searching-and-filtering-with-sql","Quiz - Searching And Filtering With SQL",{"path":1477,"title":1478,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F06-pagination-displaying-records-in-pages","Quiz - Pagination: Displaying Records In Pages",{"path":1480,"title":1481,"order":521,"module":521,"status":521},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F07-aggregate-functions-count-sum-avg","Quiz - Aggregate Functions: COUNT, SUM, AVG",{"path":1483,"title":1484,"order":521,"module":521,"status":1178},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F08-simple-analytics-and-summary-views","Quiz - Simple Analytics And Summary Views",{"path":1486,"title":1487,"order":521,"module":521,"status":1178},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F09-third-project-milestone-checklist","Quiz - Third Project Milestone Checklist",{"path":1489,"title":1490,"order":521,"module":521,"status":1178},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F01-public-pages-and-unauthenticated-views","Quiz - Public Pages And Unauthenticated Views",{"path":1492,"title":1493,"order":521,"module":521,"status":1178},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F02-user-profile-and-activity-pages","Quiz - User Profile And Activity Pages",{"path":1495,"title":1496,"order":521,"module":521,"status":1178},"\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":1498,"title":1499,"order":521,"module":521,"status":1178},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F04-application-wide-security-audit","Quiz - Application-Wide Security Audit",{"path":1501,"title":1502,"order":521,"module":521,"status":1178},"\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":1504,"title":1505,"order":521,"module":521,"status":1178},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F06-qa-testing-and-collecting-evidence","Quiz - QA Testing And Collecting Evidence",{"path":1507,"title":1508,"order":521,"module":521,"status":1178},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F07-production-environment-checklist","Quiz - Production Environment Checklist",{"path":1510,"title":1511,"order":521,"module":521,"status":1178},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F08-writing-a-project-readme","Quiz - Writing A Project README",{"path":1513,"title":1514,"order":521,"module":521,"status":1178},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F09-final-presentation-and-code-walkthrough","Quiz - Final Presentation And Code Walkthrough",{"path":1516,"title":1517,"order":521,"module":521,"status":1178},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F10-configuration-drift-and-secrets-checks","Quiz - Configuration Drift And Secrets Checks",{"path":1519,"title":1520,"order":514,"module":516,"status":543},"\u002Finternet-applications\u002Fbook\u002Freference\u002Fa-command-line-basics","Command Line Basics",{"path":1522,"title":1523,"order":14,"module":516,"status":543},"\u002Finternet-applications\u002Fbook\u002Freference\u002Fb-git-and-github-recovery","Git And GitHub Recovery",{"path":1525,"title":1526,"order":95,"module":516,"status":543},"\u002Finternet-applications\u002Fbook\u002Freference\u002Fc-apache-and-php-troubleshooting","Apache And PHP Troubleshooting",{"path":1528,"title":1529,"order":562,"module":516,"status":543},"\u002Finternet-applications\u002Fbook\u002Freference\u002Fd-mysql-troubleshooting","MySQL Troubleshooting",{"path":1531,"title":1532,"order":520,"module":516,"status":543},"\u002Finternet-applications\u002Fbook\u002Freference\u002Fe-http-request-and-response-reference","HTTP Request And Response Reference",{"path":1534,"title":1535,"order":572,"module":516,"status":543},"\u002Finternet-applications\u002Fbook\u002Freference\u002Ff-common-security-mistakes","Common Security Mistakes",{"path":1537,"title":1538,"order":786,"module":516,"status":543},"\u002Finternet-applications\u002Fbook\u002Freference\u002Fg-ai-collaboration-and-disclosure","AI Collaboration And Disclosure",{"path":1540,"title":1541,"order":516,"module":516,"status":543},"\u002Finternet-applications\u002Fbook\u002Ftoc","Internet Applications: Table of Contents",{"path":1543,"title":1544,"order":509,"module":514,"status":543},"\u002Finternet-applications\u002Flabs\u002F01-git-recovery-and-submission-evidence","Lab 1: Git Recovery And Submission Evidence",{"path":1546,"title":1547,"order":510,"module":14,"status":543},"\u002Finternet-applications\u002Flabs\u002F02-php-output-and-error-reading","Lab 2: PHP Output And Error Reading",{"path":1549,"title":1550,"order":511,"module":95,"status":543},"\u002Finternet-applications\u002Flabs\u002F03-form-methods-and-sticky-values","Lab 3: Form Methods And Sticky Values",{"path":1552,"title":1553,"order":667,"module":562,"status":543},"\u002Finternet-applications\u002Flabs\u002F04-pdo-query-and-sql-evidence","Lab 4: PDO Query And SQL Evidence",{"path":1555,"title":1556,"order":686,"module":520,"status":543},"\u002Finternet-applications\u002Flabs\u002F05-validation-debugging-and-friendly-errors","Lab 5: Validation, Debugging, And Friendly Errors",{"path":1558,"title":1559,"order":690,"module":572,"status":543},"\u002Finternet-applications\u002Flabs\u002F06-role-protected-crud-check","Lab 6: Role-Protected CRUD Check",{"path":1561,"title":1562,"order":1563,"module":572,"status":543},"\u002Finternet-applications\u002Flabs\u002F06a-relative-paths-includes-and-feature-trace","Lab 6A: Relative Paths, Includes, And Feature Tracing","61",{"path":1565,"title":1566,"order":722,"module":786,"status":543},"\u002Finternet-applications\u002Flabs\u002F07-json-endpoint-and-fetch-check","Lab 7: JSON Endpoint And Fetch Check",{"path":1568,"title":1569,"order":726,"module":576,"status":543},"\u002Finternet-applications\u002Flabs\u002F08-jquery-ajax-interface-check","Lab 8: jQuery AJAX Interface Check",{"path":1571,"title":1572,"order":730,"module":583,"status":543},"\u002Finternet-applications\u002Flabs\u002F09-search-pagination-and-summary-check","Lab 9: Search, Pagination, And Summary Check",{"path":1574,"title":1575,"order":734,"module":509,"status":543},"\u002Finternet-applications\u002Flabs\u002F10-final-security-and-readme-check","Lab 10: Final Security And README Check",{"path":1577,"title":1578,"order":521,"module":521,"status":543},"\u002Finternet-applications\u002Fpresentations-revised\u002F00-revision-plan","Internet Applications Presentation Revision Plan",{"path":1580,"title":1581,"order":521,"module":521,"status":543},"\u002Finternet-applications\u002Fpresentations-revised\u002F01-20-minute-recording-plan","Internet Applications Twenty-Minute Recording Plan",{"path":517,"title":5,"order":516,"module":514,"status":523},{"path":1584,"title":703,"order":509,"module":514,"status":523},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F01-basic-cli-commands",{"path":1586,"title":706,"order":510,"module":514,"status":523},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F02-install-git-tools",{"path":1588,"title":709,"order":511,"module":514,"status":523},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F03-setup-github-ssh",{"path":1590,"title":712,"order":667,"module":514,"status":523},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F04-git-commands-prs",{"path":1592,"title":715,"order":686,"module":514,"status":523},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F05-setup-local-development-environment",{"path":1594,"title":718,"order":690,"module":514,"status":523},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F06-add-instructor-template-to-your-repository",{"path":1596,"title":721,"order":722,"module":514,"status":523},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F07-qa-prod-branches",{"path":1598,"title":725,"order":726,"module":514,"status":523},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F08-render-setup",{"path":1600,"title":729,"order":730,"module":514,"status":523},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F09-local-ubuntu-web-server-virtualbox",{"path":1602,"title":733,"order":734,"module":514,"status":543},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F10-local-ubuntu-web-server-vmware",{"path":1604,"title":737,"order":509,"module":14,"status":523},"\u002Finternet-applications\u002Fpresentations\u002F02-php-and-javascript-basics\u002F01-compare-php-and-javascript",{"path":1606,"title":740,"order":510,"module":14,"status":523},"\u002Finternet-applications\u002Fpresentations\u002F02-php-and-javascript-basics\u002F02-conditions-loops-functions",{"path":1608,"title":743,"order":509,"module":95,"status":523},"\u002Finternet-applications\u002Fpresentations\u002F03-html-forms-css-and-dom\u002F01-intro-to-html",{"path":1610,"title":746,"order":510,"module":95,"status":523},"\u002Finternet-applications\u002Fpresentations\u002F03-html-forms-css-and-dom\u002F02-intro-to-forms-and-get-post",{"path":1612,"title":749,"order":511,"module":95,"status":523},"\u002Finternet-applications\u002Fpresentations\u002F03-html-forms-css-and-dom\u002F03-understanding-css-js-selectors-and-dom-updates",{"path":1614,"title":752,"order":509,"module":562,"status":523},"\u002Finternet-applications\u002Fpresentations\u002F04-databases-and-user-accounts\u002F01-intro-to-sql",{"path":1616,"title":755,"order":510,"module":562,"status":523},"\u002Finternet-applications\u002Fpresentations\u002F04-databases-and-user-accounts\u002F02-project-database-setup",{"path":1618,"title":758,"order":511,"module":562,"status":523},"\u002Finternet-applications\u002Fpresentations\u002F04-databases-and-user-accounts\u002F03-user-registration",{"path":1620,"title":761,"order":667,"module":562,"status":523},"\u002Finternet-applications\u002Fpresentations\u002F04-databases-and-user-accounts\u002F04-user-login",{"path":1622,"title":764,"order":509,"module":520,"status":523},"\u002Finternet-applications\u002Fpresentations\u002F05-validation-and-user-profiles\u002F01-intro-to-regex",{"path":1624,"title":767,"order":510,"module":520,"status":523},"\u002Finternet-applications\u002Fpresentations\u002F05-validation-and-user-profiles\u002F02-project-shared-helpers",{"path":1626,"title":1627,"order":511,"module":520,"status":523},"\u002Finternet-applications\u002Fpresentations\u002F05-validation-and-user-profiles\u002F03-flash-messages-and-redirect-feedback","Flash Messages And Redirect Feedback",{"path":1629,"title":773,"order":667,"module":520,"status":523},"\u002Finternet-applications\u002Fpresentations\u002F05-validation-and-user-profiles\u002F04-user-profile",{"path":1631,"title":776,"order":509,"module":572,"status":523},"\u002Finternet-applications\u002Fpresentations\u002F06-roles-and-crud-pages\u002F01-user-roles-authorization",{"path":1633,"title":779,"order":510,"module":572,"status":523},"\u002Finternet-applications\u002Fpresentations\u002F06-roles-and-crud-pages\u002F02-user-login-enhancement",{"path":1635,"title":782,"order":511,"module":572,"status":523},"\u002Finternet-applications\u002Fpresentations\u002F06-roles-and-crud-pages\u002F03-dynamic-content",{"path":1637,"title":785,"order":509,"module":786,"status":523},"\u002Finternet-applications\u002Fpresentations\u002F07-api-data-and-database-helpers\u002F01-working-with-api-data",{"path":1639,"title":789,"order":510,"module":786,"status":523},"\u002Finternet-applications\u002Fpresentations\u002F07-api-data-and-database-helpers\u002F02-api-integration",{"path":1641,"title":792,"order":511,"module":786,"status":523},"\u002Finternet-applications\u002Fpresentations\u002F07-api-data-and-database-helpers\u002F03-database-utility-functions",{"path":1643,"title":795,"order":509,"module":576,"status":523},"\u002Finternet-applications\u002Fpresentations\u002F08-reusable-components-jquery-and-ajax\u002F01-milestone-2-bootstrap-and-reusability",{"path":1645,"title":798,"order":510,"module":576,"status":523},"\u002Finternet-applications\u002Fpresentations\u002F08-reusable-components-jquery-and-ajax\u002F02-jquery-brief-intro",{"path":1647,"title":801,"order":511,"module":576,"status":523},"\u002Finternet-applications\u002Fpresentations\u002F08-reusable-components-jquery-and-ajax\u002F03-intro-to-ajax",{"path":1649,"title":804,"order":509,"module":583,"status":523},"\u002Finternet-applications\u002Fpresentations\u002F09-relational-data-search-and-pagination\u002F01-user-associations",{"path":1651,"title":807,"order":510,"module":583,"status":523},"\u002Finternet-applications\u002Fpresentations\u002F09-relational-data-search-and-pagination\u002F02-association-views-and-pagination",{"path":1653,"title":810,"order":509,"module":509,"status":523},"\u002Finternet-applications\u002Fpresentations\u002F10-association-assignment-and-security\u002F01-association-assignment-and-public-profiles",{"path":1655,"title":813,"order":510,"module":509,"status":523},"\u002Finternet-applications\u002Fpresentations\u002F10-association-assignment-and-security\u002F02-reusable-csrf-protection",{"path":1657,"title":816,"order":514,"module":516,"status":523},"\u002Finternet-applications\u002Fsyllabus\u002Fsummer-2026",{"path":1659,"title":1660,"order":1661,"module":509,"status":543},"\u002Finternet-applications\u002Fworksheets\u002Ffinal-project-submission-worksheet","Final Project Submission Worksheet","110",{"path":1663,"title":1664,"order":1665,"module":572,"status":543},"\u002Finternet-applications\u002Fworksheets\u002Flegacy-milestone-01-worksheet","Legacy Milestone 1 Worksheet","118",{"path":1667,"title":1668,"order":1669,"module":572,"status":543},"\u002Finternet-applications\u002Fworksheets\u002Flegacy-multi-dimension-php-problems-worksheet","Legacy Multi-Dimension PHP Problems Worksheet","119",{"path":1671,"title":1672,"order":1661,"module":572,"status":543},"\u002Finternet-applications\u002Fworksheets\u002Fmilestone-01-account-access-and-profile-worksheet","IT202 Milestone 1 - 2026",{"path":1674,"title":1675,"order":1676,"module":576,"status":543},"\u002Finternet-applications\u002Fworksheets\u002Fmilestone-02-api-data-and-crud-worksheet","IT202 Milestone 2 - 2026","120",{"path":1678,"title":1679,"order":1680,"module":583,"status":543},"\u002Finternet-applications\u002Fworksheets\u002Fmilestone-03-user-associations-worksheet","IT202 Milestone 3 - 2026","130",{"path":1682,"title":1683,"order":509,"module":514,"status":543},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-01-git-and-local-server-worksheet","Module 1 Worksheet: Git, GitHub, And Local Server Evidence",{"path":1685,"title":1686,"order":510,"module":14,"status":543},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-02-php-and-debugging-worksheet","Module 2 Worksheet: PHP Challenge Scenarios",{"path":1688,"title":1689,"order":511,"module":95,"status":543},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-03-forms-css-and-dom-worksheet","Module 3 Worksheet: HTML, CSS, JS Challenges",{"path":1691,"title":1692,"order":667,"module":562,"status":543},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-04-database-auth-and-sessions-worksheet","Module 4 Worksheet: SQL Todo Challenge",{"path":1694,"title":1695,"order":686,"module":520,"status":543},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-05-validation-and-debugging-worksheet","Module 5 Worksheet: Validation And Debugging Evidence",{"path":1697,"title":1698,"order":690,"module":572,"status":543},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-06-authorization-and-crud-worksheet","Module 6 Worksheet: Authorization And CRUD Evidence",{"path":1700,"title":1701,"order":1702,"module":572,"status":543},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-06-multi-dimensional-php-arrays-worksheet","Module 06 Worksheet: Multi-Dimensional PHP Arrays","62",{"path":1704,"title":1705,"order":722,"module":786,"status":543},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-07-api-testing-worksheet","Module 07 Worksheet: Project API Testing",{"path":1707,"title":1708,"order":726,"module":576,"status":543},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-08-jquery-and-dynamic-ui-worksheet","Module 8 Worksheet: jQuery And Dynamic UI Evidence",{"path":1710,"title":1711,"order":730,"module":583,"status":543},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-09-search-pagination-and-summary-worksheet","Module 9 Worksheet: Search, Pagination, And Summary Evidence",{"path":1713,"title":1714,"order":734,"module":509,"status":543},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-10-final-project-readiness-worksheet","Module 10 Worksheet: Final Project Readiness Evidence",{"path":1716,"title":703,"order":509,"module":514,"status":543},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F01-module-1-course-setup\u002F01-basic-cli-commands",{"path":1718,"title":706,"order":510,"module":514,"status":543},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F01-module-1-course-setup\u002F02-install-git-tools",{"path":1720,"title":709,"order":511,"module":514,"status":543},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F01-module-1-course-setup\u002F03-setup-github-ssh",{"path":1722,"title":712,"order":667,"module":514,"status":543},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F01-module-1-course-setup\u002F04-git-commands-prs",{"path":1724,"title":1725,"order":686,"module":514,"status":543},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F01-module-1-course-setup\u002F05-course-repo-setup","Course Repository Setup",{"path":1727,"title":1728,"order":690,"module":514,"status":543},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F01-module-1-course-setup\u002F06-java-environment-setup","Java Development Environment Setup",{"path":1730,"title":1731,"order":509,"module":14,"status":543},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F02-module-2-java-basics\u002F01-java-basics","Java Basics",{"path":1733,"title":1734,"order":510,"module":14,"status":543},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F02-module-2-java-basics\u002F02-flow-control","Java Flow Control",{"path":1736,"title":1737,"order":511,"module":14,"status":543},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F02-module-2-java-basics\u002F03-loops","Java Loops",{"path":1739,"title":1740,"order":667,"module":14,"status":543},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F02-module-2-java-basics\u002F04-collections","Java Arrays, Queue, Stack, ArrayList",{"path":1742,"title":1743,"order":509,"module":95,"status":543},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F03-module-3-java-io-and-oop\u002F01-user-input","Java User Input",{"path":1745,"title":1746,"order":510,"module":95,"status":543},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F03-module-3-java-io-and-oop\u002F02-oop-modifiers","Java Intro to OOP - Modifiers",{"path":1748,"title":1749,"order":511,"module":95,"status":543},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F03-module-3-java-io-and-oop\u002F03-file-io","Java File I\u002FO",{"path":1751,"title":1752,"order":667,"module":95,"status":543},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F03-module-3-java-io-and-oop\u002F04-recursion-trees","Java Recursion and Trees",{"path":1754,"title":1755,"order":509,"module":562,"status":543},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F04-module-4-sockets-and-oop\u002F01-sockets-overview","Java Sockets: Overview",{"path":1757,"title":1758,"order":510,"module":562,"status":543},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F04-module-4-sockets-and-oop\u002F02-oop-intermediate","Java OOP Intermediate",{"path":1760,"title":1761,"order":511,"module":562,"status":543},"\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":1763,"title":1764,"order":509,"module":520,"status":543},"\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":1766,"title":1767,"order":510,"module":572,"status":543},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F06-module-6-milestone-2-prep\u002F02-prepare-milestone-2-2026","Java Advanced Programming Preparing for Milestone 2",{"path":1769,"title":1770,"order":511,"module":572,"status":543},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F06-module-6-milestone-2-prep\u002F03-gameserver-ready-check","Java Advanced Programming Milestone 2: GameServer Ready Check",{"path":1772,"title":1773,"order":509,"module":786,"status":543},"\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":1775,"title":1776,"order":510,"module":786,"status":543},"\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":1778,"title":1779,"order":511,"module":786,"status":543},"\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":1781,"title":1782,"order":667,"module":786,"status":543},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F07-module-7-game-rooms-and-turns\u002F04-simultaneous-turns","Java Advanced Programming Milestone 2: Simultaneous Turns",{"path":1784,"title":1785,"order":686,"module":786,"status":543},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F07-module-7-game-rooms-and-turns\u002F05-individual-turns","Java Advanced Programming Milestone 2: Individual Turns",{"path":1787,"title":1788,"order":509,"module":576,"status":543},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F08-module-8-grids-cards-and-ui\u002F01-grid-integration","Java Advanced Programming Milestone 2: Grid Integration",{"path":1790,"title":1791,"order":510,"module":576,"status":543},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F08-module-8-grids-cards-and-ui\u002F02-card-integration","Java Advanced Programming Milestone 2: Cards Integration",{"path":1793,"title":1794,"order":511,"module":576,"status":543},"\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":1796,"title":1797,"order":667,"module":576,"status":543},"\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":1799,"title":1800,"order":686,"module":576,"status":543},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F08-module-8-grids-cards-and-ui\u002F05-java-ui-intro","Java Advanced Programming Java UI 2025",{"path":1802,"title":1803,"order":509,"module":583,"status":543},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F09-module-9-ui-integration\u002F01-ui-integration-2026","UI Integration 2026",{"path":1805,"title":1806,"order":510,"module":583,"status":543},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F09-module-9-ui-integration\u002F02-ui-drawing","UI Drawing",{"path":1808,"title":1809,"order":511,"module":583,"status":543},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F09-module-9-ui-integration\u002F03-baseline-ui-integration","Baseline UI Integration",{"path":1811,"title":1812,"order":667,"module":583,"status":543},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F09-module-9-ui-integration\u002F04-ndff-ui-integration","NDFF UI Integration",{"path":1814,"title":1815,"order":686,"module":583,"status":543},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F09-module-9-ui-integration\u002F05-equals-6-ui","Equals 6 UI",{"path":1817,"title":1818,"order":690,"module":583,"status":543},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F09-module-9-ui-integration\u002F06-popularity-mini-project","Popularity Mini Project",{"path":1820,"title":1821,"order":509,"module":509,"status":543},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F10-module-10-wrap-up-and-deployment\u002F01-milestone-3-wrapup","Milestone 3 Wrapup",{"path":1823,"title":1824,"order":510,"module":509,"status":543},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F10-module-10-wrap-up-and-deployment\u002F02-deploying-java-apps","Deploying Java Apps",{"path":1826,"title":1827,"order":511,"module":509,"status":543},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F10-module-10-wrap-up-and-deployment\u002F03-ndff-away-spectator","NDFF Away Spectator",{"path":1829,"title":1830,"order":514,"module":516,"status":523},"\u002Fjava-advanced-programming\u002F2e\u002Fsyllabus\u002Ffall-2026","IT114 - Advanced Programming for Information Technology",{"path":1832,"title":1833,"order":509,"module":514,"status":543},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F01-course-setup-and-workflow\u002F01-course-tools-and-workflow","Course Tools And Workflow",{"path":1835,"title":1836,"order":510,"module":514,"status":543},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F01-course-setup-and-workflow\u002F02-terminal-git-and-github","Terminal, Git, And GitHub Basics",{"path":1838,"title":1839,"order":511,"module":514,"status":543},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F01-course-setup-and-workflow\u002F03-java-development-environment","Java Development Environment",{"path":1841,"title":1842,"order":509,"module":14,"status":543},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F02-java-basics\u002F01-java-program-shape","The Shape Of A Java Program",{"path":1844,"title":1845,"order":510,"module":14,"status":543},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F02-java-basics\u002F02-values-types-and-expressions","Values, Types, And Expressions",{"path":1847,"title":1848,"order":511,"module":14,"status":543},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F02-java-basics\u002F03-conditions-loops-and-collections","Conditions, Loops, And Collections",{"path":1850,"title":1851,"order":509,"module":95,"status":543},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F03-java-input-io-and-oop\u002F01-user-input-and-output","User Input And Program Output",{"path":1853,"title":1854,"order":510,"module":95,"status":543},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F03-java-input-io-and-oop\u002F02-classes-objects-and-modifiers","Classes, Objects, And Modifiers",{"path":1856,"title":1857,"order":511,"module":95,"status":543},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F03-java-input-io-and-oop\u002F03-file-io-paths-and-exceptions","File I\u002FO, Paths, And Exceptions",{"path":1859,"title":1860,"order":667,"module":95,"status":543},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F03-java-input-io-and-oop\u002F04-recursion-and-trees","Recursion And Tree Thinking",{"path":1862,"title":1863,"order":509,"module":562,"status":543},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F04-sockets-and-oop\u002F01-sockets-client-server","Sockets And Client\u002FServer Thinking",{"path":1865,"title":1866,"order":510,"module":562,"status":543},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F04-sockets-and-oop\u002F02-server-socket-flow","The ServerSocket Flow",{"path":1868,"title":1869,"order":511,"module":562,"status":543},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F04-sockets-and-oop\u002F03-oop-for-socket-apps","OOP For Socket Applications",{"path":1871,"title":1872,"order":509,"module":520,"status":543},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F05-multi-client-sockets\u002F01-multi-client-server-shape","Multi-Client Server Shape",{"path":1874,"title":1875,"order":510,"module":520,"status":543},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F05-multi-client-sockets\u002F02-threads-shared-state-and-message-routing","Threads, Shared State, And Message Routing",{"path":1877,"title":1878,"order":511,"module":520,"status":543},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F05-multi-client-sockets\u002F03-debugging-socket-programs","Debugging Socket Programs",{"path":1880,"title":1881,"order":516,"module":516,"status":543},"\u002Fjava-advanced-programming\u002Fbook\u002Ftoc","Java Advanced Programming: Table of Contents",{"path":1883,"title":1884,"order":521,"module":521,"status":543},"\u002Fjava-advanced-programming\u002Fpresentations-revised\u002F00-revision-plan","Java Advanced Programming Presentation Revision Plan",{"path":1886,"title":1887,"order":521,"module":521,"status":543},"\u002Fjava-advanced-programming\u002Fpresentations-revised\u002F01-20-minute-recording-plan","Java Advanced Programming Twenty-Minute Recording Plan",{"path":1889,"title":703,"order":509,"module":514,"status":543},"\u002Fjava-advanced-programming\u002Fpresentations\u002F01-module-1-course-setup\u002F01-basic-cli-commands",{"path":1891,"title":706,"order":510,"module":514,"status":543},"\u002Fjava-advanced-programming\u002Fpresentations\u002F01-module-1-course-setup\u002F02-install-git-tools",{"path":1893,"title":709,"order":511,"module":514,"status":543},"\u002Fjava-advanced-programming\u002Fpresentations\u002F01-module-1-course-setup\u002F03-setup-github-ssh",{"path":1895,"title":712,"order":667,"module":514,"status":543},"\u002Fjava-advanced-programming\u002Fpresentations\u002F01-module-1-course-setup\u002F04-git-commands-prs",{"path":1897,"title":1725,"order":686,"module":514,"status":543},"\u002Fjava-advanced-programming\u002Fpresentations\u002F01-module-1-course-setup\u002F05-course-repo-setup",{"path":1899,"title":1728,"order":690,"module":514,"status":543},"\u002Fjava-advanced-programming\u002Fpresentations\u002F01-module-1-course-setup\u002F06-java-environment-setup",{"path":1901,"title":1731,"order":509,"module":14,"status":543},"\u002Fjava-advanced-programming\u002Fpresentations\u002F02-module-2-java-basics\u002F01-java-basics",{"path":1903,"title":1734,"order":510,"module":14,"status":543},"\u002Fjava-advanced-programming\u002Fpresentations\u002F02-module-2-java-basics\u002F02-flow-control",{"path":1905,"title":1737,"order":511,"module":14,"status":543},"\u002Fjava-advanced-programming\u002Fpresentations\u002F02-module-2-java-basics\u002F03-loops",{"path":1907,"title":1740,"order":667,"module":14,"status":543},"\u002Fjava-advanced-programming\u002Fpresentations\u002F02-module-2-java-basics\u002F04-collections",{"path":1909,"title":1743,"order":509,"module":95,"status":543},"\u002Fjava-advanced-programming\u002Fpresentations\u002F03-module-3-java-io-and-oop\u002F01-user-input",{"path":1911,"title":1746,"order":510,"module":95,"status":543},"\u002Fjava-advanced-programming\u002Fpresentations\u002F03-module-3-java-io-and-oop\u002F02-oop-modifiers",{"path":1913,"title":1749,"order":511,"module":95,"status":543},"\u002Fjava-advanced-programming\u002Fpresentations\u002F03-module-3-java-io-and-oop\u002F03-file-io",{"path":1915,"title":1752,"order":667,"module":95,"status":543},"\u002Fjava-advanced-programming\u002Fpresentations\u002F03-module-3-java-io-and-oop\u002F04-recursion-trees",{"path":1917,"title":1755,"order":509,"module":562,"status":543},"\u002Fjava-advanced-programming\u002Fpresentations\u002F04-module-4-sockets-and-oop\u002F01-sockets-overview",{"path":1919,"title":1758,"order":510,"module":562,"status":543},"\u002Fjava-advanced-programming\u002Fpresentations\u002F04-module-4-sockets-and-oop\u002F02-oop-intermediate",{"path":1921,"title":1761,"order":511,"module":562,"status":543},"\u002Fjava-advanced-programming\u002Fpresentations\u002F04-module-4-sockets-and-oop\u002F03-multi-client-chat-part-1",{"path":1923,"title":1764,"order":509,"module":520,"status":543},"\u002Fjava-advanced-programming\u002Fpresentations\u002F05-module-5-multi-client-sockets\u002F01-multi-client-chat-part-2",{"path":1925,"title":1926,"order":509,"module":572,"status":543},"\u002Fjava-advanced-programming\u002Fpresentations\u002F06-module-6-milestone-2-prep\u002F01-prepare-milestone-2-2025","Java Advanced Programming Preparing for Milestone2 2025",{"path":1928,"title":1767,"order":510,"module":572,"status":543},"\u002Fjava-advanced-programming\u002Fpresentations\u002F06-module-6-milestone-2-prep\u002F02-prepare-milestone-2-2026",{"path":1930,"title":1770,"order":511,"module":572,"status":543},"\u002Fjava-advanced-programming\u002Fpresentations\u002F06-module-6-milestone-2-prep\u002F03-gameserver-ready-check",{"path":1932,"title":1773,"order":509,"module":786,"status":543},"\u002Fjava-advanced-programming\u002Fpresentations\u002F07-module-7-game-rooms-and-turns\u002F01-game-rooms-ready-check",{"path":1934,"title":1776,"order":510,"module":786,"status":543},"\u002Fjava-advanced-programming\u002Fpresentations\u002F07-module-7-game-rooms-and-turns\u002F02-round-robin-turns",{"path":1936,"title":1779,"order":511,"module":786,"status":543},"\u002Fjava-advanced-programming\u002Fpresentations\u002F07-module-7-game-rooms-and-turns\u002F03-phase-based-turns",{"path":1938,"title":1782,"order":667,"module":786,"status":543},"\u002Fjava-advanced-programming\u002Fpresentations\u002F07-module-7-game-rooms-and-turns\u002F04-simultaneous-turns",{"path":1940,"title":1785,"order":686,"module":786,"status":543},"\u002Fjava-advanced-programming\u002Fpresentations\u002F07-module-7-game-rooms-and-turns\u002F05-individual-turns",{"path":1942,"title":1788,"order":509,"module":576,"status":543},"\u002Fjava-advanced-programming\u002Fpresentations\u002F08-module-8-grids-cards-and-ui\u002F01-grid-integration",{"path":1944,"title":1791,"order":510,"module":576,"status":543},"\u002Fjava-advanced-programming\u002Fpresentations\u002F08-module-8-grids-cards-and-ui\u002F02-card-integration",{"path":1946,"title":1794,"order":511,"module":576,"status":543},"\u002Fjava-advanced-programming\u002Fpresentations\u002F08-module-8-grids-cards-and-ui\u002F03-equals-6-mini-project",{"path":1948,"title":1797,"order":667,"module":576,"status":543},"\u002Fjava-advanced-programming\u002Fpresentations\u002F08-module-8-grids-cards-and-ui\u002F04-nice-day-for-fishin",{"path":1950,"title":1800,"order":686,"module":576,"status":543},"\u002Fjava-advanced-programming\u002Fpresentations\u002F08-module-8-grids-cards-and-ui\u002F05-java-ui-intro",{"path":1952,"title":1803,"order":509,"module":583,"status":543},"\u002Fjava-advanced-programming\u002Fpresentations\u002F09-module-9-ui-integration\u002F01-ui-integration-2026",{"path":1954,"title":1806,"order":510,"module":583,"status":543},"\u002Fjava-advanced-programming\u002Fpresentations\u002F09-module-9-ui-integration\u002F02-ui-drawing",{"path":1956,"title":1809,"order":511,"module":583,"status":543},"\u002Fjava-advanced-programming\u002Fpresentations\u002F09-module-9-ui-integration\u002F03-baseline-ui-integration",{"path":1958,"title":1812,"order":667,"module":583,"status":543},"\u002Fjava-advanced-programming\u002Fpresentations\u002F09-module-9-ui-integration\u002F04-ndff-ui-integration",{"path":1960,"title":1815,"order":686,"module":583,"status":543},"\u002Fjava-advanced-programming\u002Fpresentations\u002F09-module-9-ui-integration\u002F05-equals-6-ui",{"path":1962,"title":1818,"order":690,"module":583,"status":543},"\u002Fjava-advanced-programming\u002Fpresentations\u002F09-module-9-ui-integration\u002F06-popularity-mini-project",{"path":1964,"title":1821,"order":509,"module":509,"status":543},"\u002Fjava-advanced-programming\u002Fpresentations\u002F10-module-10-wrap-up-and-deployment\u002F01-milestone-3-wrapup",{"path":1966,"title":1824,"order":510,"module":509,"status":543},"\u002Fjava-advanced-programming\u002Fpresentations\u002F10-module-10-wrap-up-and-deployment\u002F02-deploying-java-apps",{"path":1968,"title":1827,"order":511,"module":509,"status":543},"\u002Fjava-advanced-programming\u002Fpresentations\u002F10-module-10-wrap-up-and-deployment\u002F03-ndff-away-spectator",{"path":1970,"title":1971,"order":509,"module":514,"status":543},"\u002Fsystems-integration\u002F2e\u002Fpresentations\u002F01-required-architecture-overview","Required Architecture Overview",{"path":1973,"title":1974,"order":514,"module":516,"status":523},"\u002Fsystems-integration\u002F2e\u002Fsyllabus\u002Ffall-2026","IT490 - Systems Integration Syllabus",{"path":1976,"title":1977,"order":514,"module":516,"status":523},"\u002Fsystems-integration","Systems Integration",{"path":1979,"title":1980,"order":521,"module":521,"status":543},"\u002Fsystems-integration\u002Fpresentations-revised\u002F00-revision-plan","Systems Integration Presentation Revision Plan",{"path":1982,"title":1983,"order":521,"module":521,"status":543},"\u002Fsystems-integration\u002Fpresentations-revised\u002F01-20-minute-recording-plan","Systems Integration Twenty-Minute Recording Plan",{"path":1985,"title":1971,"order":509,"module":514,"status":523},"\u002Fsystems-integration\u002Fpresentations\u002F01-required-architecture-overview",{"path":1987,"title":1974,"order":514,"module":516,"status":523},"\u002Fsystems-integration\u002Fsyllabus\u002Fsummer-2026",{"path":1989,"title":1990,"order":521,"module":521,"status":521},"\u002Fsystems-integration\u002Fworksheets\u002Fit490-authentication-authorization-core-2026-draft","IT490 Authentication and Authorization Core Milestone (2026)",{"path":1992,"title":1993,"order":521,"module":521,"status":521},"\u002Fsystems-integration\u002Fworksheets\u002Fit490-centralized-logging-milestone-draft","IT490 Centralized Logging Milestone",{"path":1995,"title":1996,"order":521,"module":521,"status":521},"\u002Fsystems-integration\u002Fworksheets\u002Fit490-milestone-3-resiliency-2026-draft","IT490 Milestone 3 - Deployment, Promotion, And Recovery",{"path":1998,"title":1999,"order":521,"module":521,"status":521},"\u002Fsystems-integration\u002Fworksheets\u002Fit490-milestone-4-availability-2026-draft","IT490 Milestone 4 - Availability, Load Balancing, And Recovery",{"path":2001,"title":2002,"order":510,"module":516,"status":543},"\u002Fsystems-integration\u002Fworksheets\u002Fmeeting-minutes-template","IT490 Meeting Minutes Template",{"path":2004,"title":2005,"order":511,"module":516,"status":543},"\u002Fsystems-integration\u002Fworksheets\u002Fproject-changelog-template","IT490 Project Change Log Template",{"path":2007,"title":2008,"order":509,"module":516,"status":543},"\u002Fsystems-integration\u002Fworksheets\u002Fproject-proposal-template","IT490 Project Proposal Template",1788152085243]