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