[{"data":1,"prerenderedAt":3554},["ShallowReactive",2],{"content-page:\u002Fgeneral\u002F2e\u002Fpresentations\u002F04-local-git-workflow-and-course-repositories":3,"content-page-quiz:none":1181,"content-navigation-index":1211,"toc-page:\u002Fgeneral\u002F2e\u002Fpresentations\u002F04-local-git-workflow-and-course-repositories":2765},{"id":4,"title":5,"audience":6,"body":7,"contentType":1179,"course":1180,"courseId":1181,"description":1182,"estimateBasis":1183,"estimatedDiscussionMinutes":1184,"estimatedLiveMinutes":1185,"estimatedRecordingMinutes":1186,"estimatedTitleSeconds":1181,"estimatedTotalMinutes":1187,"estimatedTraceMinutes":1181,"extension":1188,"meta":1189,"module":1195,"navigation":1196,"order":1197,"path":1198,"presentationRole":1199,"promptAssist":1190,"revision":1200,"semester":1181,"seo":1201,"status":1202,"stem":1203,"syllabus":1181,"tags":1204,"updated":1209,"videoDuration":1181,"videoId":1181,"videoLink":1181,"videoTitle":1181,"week":1195,"__hash__":1210},"content\u002Fgeneral\u002F2e\u002Fpresentations\u002F04-local-git-workflow-and-course-repositories.md","Local Git Workflow And Course Repositories","student",{"type":8,"value":9,"toc":1137},"minimark",[10,39,118,158,198,232,275,305,332,362,389,418,444,478,512,554,570,595,616,643,664,696,785,814,841,859,883,968,1009,1038,1050,1096],[11,12,15,20],"slide",{"id":13,"level":14},"outcome","2",[16,17,19],"h2",{"id":18},"objectives","Objectives",[21,22,23,27,30,33,36],"ul",{},[24,25,26],"li",{},"Clone and open the repository created or provided by the course setup",[24,28,29],{},"Create and move between branches for focused changes",[24,31,32],{},"Stage, commit, and inspect a small change",[24,34,35],{},"Push and pull changes between the local repository and GitHub",[24,37,38],{},"Make the reviewable work visible in a pull request",[11,40,42,46],{"id":41,"level":14},"core-idea",[16,43,45],{"id":44},"copy-the-ssh-clone-url","Copy The SSH Clone URL",[47,48,52,107],"two-col",{"gap":49,"left-width":50,"right-width":51},"lg","0.9fr","1.1fr",[53,54,56,92],"template",{"v-slot:left":55},"",[57,58,59,62,70,81,89],"ol",{},[24,60,61],{},"Open the repository you created on GitHub",[24,63,64,65,69],{},"Select the green ",[66,67,68],"strong",{},"Code"," button",[24,71,72,73,76,77,80],{},"Under ",[66,74,75],{},"Local",", select the ",[66,78,79],{},"SSH"," tab",[24,82,83,84,88],{},"Select the copy icon beside the ",[85,86,87],"code",{},"git@github.com:..."," URL",[24,90,91],{},"Keep that URL ready for the slide below",[21,93,94,97],{},[24,95,96],{},"Use the SSH URL, not the HTTPS URL",[24,98,99,100,103,104],{},"The copied value begins with ",[85,101,102],{},"git@github.com:"," and ends with ",[85,105,106],{},".git",[53,108,109],{"v-slot:right":55},[110,111,112],"p",{},[113,114],"img",{"alt":115,"src":116,"variant":117},"GitHub repository Code menu with SSH clone URL selected","\u002Fimages\u002Finternet-applications\u002Fgithub-ssh\u002Fgithub-clone-url.png","sidecar-screenshot",[11,119,122,127,130,135,155],{"id":120,"level":121},"reconnect-ssh-key","3",[123,124,126],"h3",{"id":125},"reconnect-the-ssh-key-after-a-break","Reconnect The SSH Key After A Break",[110,128,129],{},"If this is a new or resumed Git Bash session, start the SSH agent and load the existing course key before cloning:",[131,132],"code-snippet",{"language":133,"src":134},"bash","\u002Fgenerated-snippets\u002Fgeneral\u002F2e\u002Fpresentations\u002F04-local-git-workflow-and-course-repositories\u002Freconnect-the-ssh-key-af-01.sh",[21,136,137,143,149],{},[24,138,139,142],{},[85,140,141],{},"eval \"$(ssh-agent -s)\""," starts an SSH agent for the current Git Bash session",[24,144,145,148],{},[85,146,147],{},"ssh-add ~\u002F.ssh\u002Fgithub_key"," loads the key created during the prior SSH setup lesson",[24,150,151,154],{},[85,152,153],{},"ssh-add -l"," confirms that the key is available",[110,156,157],{},"This reminder does not replace the earlier SSH setup lesson. Complete that lesson first if the key has not been created and added to GitHub.",[11,159,161,165,168],{"id":160,"level":121},"clone-and-inspect",[123,162,164],{"id":163},"clone-and-inspect-in-git-bash","Clone And Inspect In Git Bash",[131,166],{"language":133,"src":167},"\u002Fgenerated-snippets\u002Fgeneral\u002F2e\u002Fpresentations\u002F04-local-git-workflow-and-course-repositories\u002Fclone-and-inspect-in-git-02.sh",[21,169,170,173,179,182,188],{},[24,171,172],{},"Replace both placeholders with the GitHub username and repository name from the copied SSH URL",[24,174,175,178],{},[85,176,177],{},"cd ~"," starts from your home directory so the repository is not cloned inside another repository",[24,180,181],{},"Clone once, then reopen that local folder for later work",[24,183,184,187],{},[85,185,186],{},"git status"," confirms the branch and whether local work is clean",[24,189,190,193,194,197],{},[85,191,192],{},"git remote -v"," confirms that ",[85,195,196],{},"origin"," points to your own GitHub repository",[11,199,201,205,208],{"id":200,"level":14},"identity",[16,202,204],{"id":203},"set-repository-identity","Set Repository Identity",[131,206],{"language":133,"src":207},"\u002Fgenerated-snippets\u002Fgeneral\u002F2e\u002Fpresentations\u002F04-local-git-workflow-and-course-repositories\u002Fset-repository-identity-03.sh",[21,209,210,213,216,219,229],{},[24,211,212],{},"Local settings apply only to the current repository",[24,214,215],{},"Use the name shown on the GitHub account",[24,217,218],{},"Use a verified email address from that account so GitHub can associate it with Git commits",[24,220,221,224,225,228],{},[85,222,223],{},"core.sshCommand"," tells this repository to use the ",[85,226,227],{},"github_key"," SSH key",[24,230,231],{},"Confirm the values before creating the first commit",[11,233,235,239,242],{"id":234,"level":14},"branches",[16,236,238],{"id":237},"work-on-a-branch","Work On A Branch",[110,240,241],{},"A branch is a separate line of work inside the same repository.",[21,243,244,251,254],{},[24,245,246,247,250],{},"Create a branch for one focused change instead of editing the primary branch directly (typically ",[85,248,249],{},"main",")",[24,252,253],{},"The active branch is where the next commit will be recorded",[24,255,256,257,260],{},"Use a short, descriptive name such as ",[85,258,259],{},"update-readme",[21,261,262,265],{},[24,263,264],{},"Use lowercase letters, numbers, and hyphens instead of spaces",[24,266,267,268,271,272],{},"Describe the work, such as ",[85,269,270],{},"add-profile"," instead of ",[85,273,274],{},"updates",[11,276,278,282,285],{"id":277,"level":121},"branch-commands",[123,279,281],{"id":280},"create-and-move-between-branches","Create And Move Between Branches",[131,283],{"language":133,"src":284},"\u002Fgenerated-snippets\u002Fgeneral\u002F2e\u002Fpresentations\u002F04-local-git-workflow-and-course-repositories\u002Fcreate-and-move-between--04.sh",[21,286,287,293,299],{},[24,288,289,292],{},[85,290,291],{},"git checkout"," is the command used in these course examples",[24,294,295,298],{},[85,296,297],{},"git switch"," is a newer command with the same branch-navigation purpose",[24,300,301,304],{},[85,302,303],{},"git branch \u003Cname>"," creates a branch but does not move to it",[11,306,308,312,315],{"id":307,"level":14},"stage-change",[16,309,311],{"id":310},"stage-a-focused-change","Stage A Focused Change",[131,313],{"language":133,"src":314},"\u002Fgenerated-snippets\u002Fgeneral\u002F2e\u002Fpresentations\u002F04-local-git-workflow-and-course-repositories\u002Fstage-a-focused-change-05.sh",[21,316,317,320,326,329],{},[24,318,319],{},"The staging area is the draft list of saved changes for the next commit",[24,321,322,325],{},[85,323,324],{},"git add"," copies the current saved version of a file into that list",[24,327,328],{},"Staging does not create a commit or send anything to GitHub, and it can still be changed before committing",[24,330,331],{},"Review the staged diff before committing",[11,333,335,339,342],{"id":334,"level":121},"unstage-or-untrack",[123,336,338],{"id":337},"unstage-or-stop-tracking-a-file","Unstage Or Stop Tracking A File",[131,340],{"language":133,"src":341},"\u002Fgenerated-snippets\u002Fgeneral\u002F2e\u002Fpresentations\u002F04-local-git-workflow-and-course-repositories\u002Funstage-or-stop-tracking-06.sh",[21,343,344,350,356],{},[24,345,346,349],{},[85,347,348],{},"git restore --staged"," removes a file from the next commit but keeps it on the computer",[24,351,352,355],{},[85,353,354],{},"git rm --cached"," tells Git to stop tracking a file while keeping the local copy",[24,357,358,359],{},"Add files that should remain untracked to ",[85,360,361],{},".gitignore",[11,363,365,369,372],{"id":364,"level":14},"commit-checkpoint",[16,366,368],{"id":367},"commit-a-local-checkpoint","Commit A Local Checkpoint",[131,370],{"language":133,"src":371},"\u002Fgenerated-snippets\u002Fgeneral\u002F2e\u002Fpresentations\u002F04-local-git-workflow-and-course-repositories\u002Fcommit-a-local-checkpoin-07.sh",[21,373,374,377,380,386],{},[24,375,376],{},"A commit records the staged changes in the local repository history",[24,378,379],{},"Use a short, meaningful commit message; Git normally rejects an empty message",[24,381,382,385],{},[85,383,384],{},"git log --oneline -3"," shows the three most recent local commits, one per line",[24,387,388],{},"A commit stays local until a later push sends it to GitHub",[11,390,392,395,398],{"id":391,"level":14},"sync-with-github",[16,393,394],{"id":391},"Sync With GitHub",[131,396],{"language":133,"src":397},"\u002Fgenerated-snippets\u002Fgeneral\u002F2e\u002Fpresentations\u002F04-local-git-workflow-and-course-repositories\u002Fsync-with-github-08.sh",[21,399,400,406,412],{},[24,401,402,405],{},[85,403,404],{},"git push"," sends local commits to the remote repository",[24,407,408,411],{},[85,409,410],{},"git pull"," retrieves remote commits and integrates them into the local branch",[24,413,414,415,417],{},"Run ",[85,416,186],{}," before pulling so the working folder is understood first",[11,419,421,425,441],{"id":420,"level":14},"pull-request",[16,422,424],{"id":423},"complete-the-review-loop","Complete The Review Loop",[21,426,427,432,435,438],{},[24,428,429,430,250],{},"Open a pull request from the feature branch into the primary branch your course specifies (usually ",[85,431,249],{},[24,433,434],{},"Read the changed files before merging",[24,436,437],{},"Merge only when the course workflow permits it",[24,439,440],{},"After a merge, switch to the primary branch and synchronize it",[131,442],{"language":133,"src":443},"\u002Fgenerated-snippets\u002Fgeneral\u002F2e\u002Fpresentations\u002F04-local-git-workflow-and-course-repositories\u002Fcomplete-the-review-loop-09.sh",[11,445,447,451,458,475],{"id":446,"level":14},"forced-push-rejection",[16,448,450],{"id":449},"forced-issue-1-create-an-out-of-sync-branch","Forced Issue 1: Create An Out-Of-Sync Branch",[110,452,453,454,457],{},"This controlled practice uses a separate ",[85,455,456],{},"practice-conflict"," branch. Do not use a graded branch for this exercise.",[57,459,460,463,466,469,472],{},[24,461,462],{},"Create and push the initial practice branch",[24,464,465],{},"Change one line directly on GitHub and commit it to that branch",[24,467,468],{},"Without pulling, change the same line locally and commit it",[24,470,471],{},"Try to push the local commit",[24,473,474],{},"Pull the missing remote commit, resolve the conflict, and push the resolution",[110,476,477],{},"The slides below walk through each step exactly.",[11,479,481,485,488,491],{"id":480,"level":121},"set-up-practice-branch",[123,482,484],{"id":483},"set-up-the-practice-branch","Set Up The Practice Branch",[110,486,487],{},"Run this sequence once from the repository root:",[131,489],{"language":133,"src":490},"\u002Fgenerated-snippets\u002Fgeneral\u002F2e\u002Fpresentations\u002F04-local-git-workflow-and-course-repositories\u002Fset-up-the-practice-bran-10.sh",[21,492,493,499,509],{},[24,494,495,496,498],{},"This starts from an updated ",[85,497,249],{}," branch",[24,500,501,502,505,506],{},"The initial ",[85,503,504],{},"myFile.txt"," content is ",[85,507,508],{},"local starting line",[24,510,511],{},"The branch now exists both locally and on GitHub",[11,513,515,519,551],{"id":514,"level":121},"make-github-change",[123,516,518],{"id":517},"make-the-github-only-change","Make The GitHub-Only Change",[57,520,521,526,538,544],{},[24,522,523,524,498],{},"On GitHub, switch to the ",[85,525,456],{},[24,527,528,529,531,532,534,535],{},"Open ",[85,530,504],{}," and change ",[85,533,508],{}," to ",[85,536,537],{},"remote conflicting line",[24,539,540,541,543],{},"Commit the change directly to ",[85,542,456],{}," on GitHub",[24,545,546,547,550],{},"Leave the local terminal open and do ",[66,548,549],{},"not"," pull yet",[110,552,553],{},"GitHub now has a commit that the local branch does not have.",[11,555,557,561,564,567],{"id":556,"level":121},"make-local-change",[123,558,560],{"id":559},"make-the-local-only-change","Make The Local-Only Change",[110,562,563],{},"Without pulling the GitHub commit, run this locally:",[131,565],{"language":133,"src":566},"\u002Fgenerated-snippets\u002Fgeneral\u002F2e\u002Fpresentations\u002F04-local-git-workflow-and-course-repositories\u002Fmake-the-local-only-chan-11.sh",[110,568,569],{},"The same line now has two different committed versions: one on GitHub and one locally.",[11,571,573,577,581],{"id":572,"level":121},"rejected-push",[123,574,576],{"id":575},"try-push-before-pulling","Try Push Before Pulling",[131,578],{"language":579,"src":580},"text","\u002Fgenerated-snippets\u002Fgeneral\u002F2e\u002Fpresentations\u002F04-local-git-workflow-and-course-repositories\u002Ftry-push-before-pulling-12.txt",[21,582,583,586,592],{},[24,584,585],{},"Expected result: Git rejects the push",[24,587,588,591],{},[85,589,590],{},"fetch first"," means GitHub has a commit that the local branch does not have",[24,593,594],{},"Do not retry the same push or use a force push to bypass the protection",[11,596,598,602,605],{"id":597,"level":121},"pull-remote-change",[123,599,601],{"id":600},"pull-the-remote-change","Pull The Remote Change",[131,603],{"language":133,"src":604},"\u002Fgenerated-snippets\u002Fgeneral\u002F2e\u002Fpresentations\u002F04-local-git-workflow-and-course-repositories\u002Fpull-the-remote-change-13.sh",[21,606,607,610,613],{},[24,608,609],{},"Pulling retrieves the GitHub commit that the local branch is missing",[24,611,612],{},"Git merges automatically when the changes do not overlap",[24,614,615],{},"In this forced example, both commits changed the same line, so Git pauses with a conflict",[11,617,619,623,626,629],{"id":618,"level":14},"merge-conflict",[16,620,622],{"id":621},"forced-issue-2-merge-conflict","Forced Issue 2: Merge Conflict",[110,624,625],{},"After the pull, Git cannot decide which version of the edited line to keep.",[131,627],{"language":579,"src":628},"\u002Fgenerated-snippets\u002Fgeneral\u002F2e\u002Fpresentations\u002F04-local-git-workflow-and-course-repositories\u002Fforced-issue-2-merge-con-14.txt",[21,630,631,637,640],{},[24,632,633,636],{},[85,634,635],{},"HEAD"," marks the current local version",[24,638,639],{},"The lower section is the incoming GitHub version",[24,641,642],{},"Git pauses so you can choose the final content instead of guessing",[11,644,646,650,661],{"id":645,"level":121},"resolve-conflict",[123,647,649],{"id":648},"resolve-commit-and-push","Resolve, Commit, And Push",[57,651,652,655,658],{},[24,653,654],{},"Edit the file so it contains the final content you want",[24,656,657],{},"Remove every conflict marker line",[24,659,660],{},"Save the file, then stage, commit, and push the resolution",[131,662],{"language":133,"src":663},"\u002Fgenerated-snippets\u002Fgeneral\u002F2e\u002Fpresentations\u002F04-local-git-workflow-and-course-repositories\u002Fresolve-commit-and-push-15.sh",[11,665,667,671],{"id":666,"level":121},"verify-conflict",[123,668,670],{"id":669},"verify-the-resolution","Verify The Resolution",[21,672,673,678,693],{},[24,674,414,675,677],{},[85,676,186],{}," and confirm that no unmerged paths remain",[24,679,680,681,684,685,688,689,692],{},"Open the resolved file and confirm that no ",[85,682,683],{},"\u003C\u003C\u003C\u003C\u003C\u003C\u003C",", ",[85,686,687],{},"=======",", or ",[85,690,691],{},">>>>>>>"," markers remain",[24,694,695],{},"Confirm that GitHub shows the resolved commit on the same branch",[11,697,699,703,775,782],{"id":698,"level":14},"course-repositories",[16,700,702],{"id":701},"course-repository-overview","Course Repository Overview",[704,705,706,722],"table",{},[707,708,709],"thead",{},[710,711,712,716,719],"tr",{},[713,714,715],"th",{},"Course",[713,717,718],{},"Repository",[713,720,721],{},"Current starting point",[723,724,725,739,752,763],"tbody",{},[710,726,727,731,736],{},[728,729,730],"td",{},"IT202",[728,732,733],{},[85,734,735],{},"\u003Cucid>-it202-\u003Csection>-\u003Cterm>\u003Cyear>",[728,737,738],{},"Download the template ZIP; see the IT202 slide below",[710,740,741,744,749],{},[728,742,743],{},"IT114",[728,745,746],{},[85,747,748],{},"\u003Cucid>-it114-\u003Csection>-\u003Cterm>\u003Cyear>",[728,750,751],{},"Existing personal clone is established",[710,753,754,757,760],{},[728,755,756],{},"IT490",[728,758,759],{},"Shared team repository provided by the instructor",[728,761,762],{},"Follow current course instructions",[710,764,765,768,773],{},[728,766,767],{},"IT265",[728,769,770],{},[85,771,772],{},"\u003Cucid>-it265-\u003Csection>-\u003Cterm>\u003Cyear>",[728,774,762],{},[776,777,779],"admonition",{"type":778},"note",[110,780,781],{},"The above applies to the courses and sections I teach; other instructors may do things differently.",[110,783,784],{},"Cloning creates a local copy of a repository and its Git history. Starter content may instead be copied or introduced by course-specific setup. Do not treat those as the same operation.",[11,786,788,792],{"id":787,"level":121},"it202",[16,789,791],{"id":790},"it202-internet-applications","IT202: Internet Applications",[21,793,794,797,808,811],{},[24,795,796],{},"Create the personal IT202 repository first",[24,798,799,800,807],{},"Download the ",[801,802,806],"a",{"href":803,"rel":804},"https:\u002F\u002Fgithub.com\u002FMattToegel\u002FIT202-2026",[805],"nofollow","IT202 course repository"," as a ZIP file; do not fork it",[24,809,810],{},"Extract the ZIP, then copy the template files and folders into the personal repository",[24,812,813],{},"Use the course-local setup for branch names, collaborators, and later environments",[11,815,817,821],{"id":816,"level":121},"it114",[16,818,820],{"id":819},"it114-java-advanced-programming","IT114: Java Advanced Programming",[21,822,823,826,838],{},[24,824,825],{},"Course setup materials begin from an existing personal repository clone",[24,827,828,829,831,832,837],{},"Copy the ",[85,830,361],{}," file from the ",[801,833,836],{"href":834,"rel":835},"https:\u002F\u002Fgithub.com\u002FMattToegel\u002FIT114-2026",[805],"IT114 course repository"," into the personal repository",[24,839,840],{},"Use the course-local setup for starter content, ignore rules, branches, reviewers, and checkpoints",[11,842,844,848],{"id":843,"level":121},"it490",[16,845,847],{"id":846},"it490-systems-integration","IT490: Systems Integration",[21,849,850,853,856],{},[24,851,852],{},"Use the shared team repository provided by the instructor",[24,854,855],{},"The current shared materials do not define one canonical starter-repository URL or base-branch name",[24,857,858],{},"Follow the current IT490 course setup and assignment instructions before adding starter files or configuring automation",[11,860,862,866],{"id":861,"level":121},"it265",[16,863,865],{"id":864},"it265-game-architecture-and-design","IT265: Game Architecture And Design",[21,867,868,871,878,880],{},[24,869,870],{},"Create a personal repository following the shared name pattern",[24,872,873,874,877],{},"Start with a ",[85,875,876],{},"Docs\u002F"," folder for development-log entries and other text-based activities",[24,879,855],{},[24,881,882],{},"Follow the current IT265 course setup and assignment instructions before adding course work",[11,884,886,890],{"id":885,"level":14},"check",[16,887,889],{"id":888},"common-troubleshooting","Common Troubleshooting",[704,891,892,902],{},[707,893,894],{},[710,895,896,899],{},[713,897,898],{},"Problem",[713,900,901],{},"Solution",[723,903,904,931,945,955],{},[710,905,906,911],{},[728,907,908],{},[85,909,910],{},"not a git repository",[728,912,414,913,916,917,919,920,923,924,927,928,930],{},[85,914,915],{},"pwd",". If you followed the earlier setup, run ",[85,918,177],{}," and ",[85,921,922],{},"ls"," to find the repository folder, then ",[85,925,926],{},"cd \u003Cfolder>"," and run ",[85,929,186],{}," again",[710,932,933,936],{},[728,934,935],{},"Push rejected",[728,937,938,939,941,942,944],{},"Inspect ",[85,940,186],{},", the current branch, and ",[85,943,192],{}," before pulling or retrying",[710,946,947,950],{},[728,948,949],{},"Wrong remote",[728,951,414,952,954],{},[85,953,192],{}," and correct the URL before pushing",[710,956,957,962],{},[728,958,959,960],{},"Generated files or secrets appear in ",[85,961,186],{},[728,963,964,965,967],{},"Update ",[85,966,361],{},", then remove the files from staging or tracking before committing",[11,969,971,975],{"id":970,"level":14},"knowledge-check",[16,972,974],{"id":973},"knowledge-check-12","Knowledge Check 1\u002F2",[970,976,977,997],{},[53,978,979],{"v-slot:questions":55},[57,980,981,988,993],{},[24,982,983,984,987],{},"What does ",[85,985,986],{},"git add README.md"," do?",[24,989,983,990,987],{},[85,991,992],{},"git commit",[24,994,983,995,987],{},[85,996,404],{},[53,998,999,1003,1006],{"v-slot:answers":55},[1000,1001,1002],"knowledge-answer",{},"It selects the saved README.md changes for the next commit",[1000,1004,1005],{},"It records the staged changes as a local checkpoint in repository history",[1000,1007,1008],{},"It sends local commits from the current branch to GitHub",[11,1010,1012,1016],{"id":1011,"level":121},"knowledge-check-2",[123,1013,1015],{"id":1014},"knowledge-check-22","Knowledge Check 2\u002F2",[970,1017,1018,1030],{},[53,1019,1020],{"v-slot:questions":55},[57,1021,1022,1025],{},[24,1023,1024],{},"What is the purpose of a pull request?",[24,1026,983,1027,1029],{},[85,1028,410],{}," do after a pull request is merged?",[53,1031,1032,1035],{"v-slot:answers":55},[1000,1033,1034],{},"It provides a GitHub page to compare, review, and merge a branch into the primary branch",[1000,1036,1037],{},"It retrieves the merged remote changes and integrates them into the local primary branch",[11,1039,1041,1045],{"id":1040,"level":14},"git-flow",[16,1042,1044],{"id":1043},"git-flow-diagram","Git Flow Diagram",[1046,1047],"figure-image",{"alt":1048,"src":1049},"Diagram showing the local Git flow from the primary branch to a feature branch, edit, git add, commit, and push; then the GitHub flow through a pull request, review, merge, and pulling the primary branch locally","\u002Fimages\u002Fshared\u002Fgit-github-lane-flow.svg",[11,1051,1053,1057,1077,1080],{"id":1052,"level":14},"review-resources",[16,1054,1056],{"id":1055},"key-terms-and-further-learning","Key Terms And Further Learning",[21,1058,1059,1065,1071],{},[24,1060,1061,1064],{},[66,1062,1063],{},"Staging area:"," The selected file changes that the next commit will record.",[24,1066,1067,1070],{},[66,1068,1069],{},"Commit:"," A local checkpoint of staged changes.",[24,1072,1073,1076],{},[66,1074,1075],{},"Pull request:"," A GitHub comparison and review before a branch is merged.",[110,1078,1079],{},"Further Learning:",[21,1081,1082,1089],{},[24,1083,1084],{},[801,1085,1088],{"href":1086,"rel":1087},"https:\u002F\u002Fgit-scm.com\u002Fbook\u002Fen\u002Fv2\u002FGit-Basics-Recording-Changes-to-the-Repository",[805],"Git: recording changes",[24,1090,1091],{},[801,1092,1095],{"href":1093,"rel":1094},"https:\u002F\u002Fdocs.github.com\u002Fen\u002Fpull-requests\u002Fget-started\u002Fabout-pull-requests",[805],"GitHub: pull requests",[11,1097,1099,1102,1134],{"id":1098,"level":14},"summary",[16,1100,1101],{"id":1098},"Summary",[57,1103,1104,1107,1110,1115,1121,1127],{},[24,1105,1106],{},"Clone once and always open the repository root",[24,1108,1109],{},"Create a branch for one focused change",[24,1111,1112,1113],{},"Stage the intended file with ",[85,1114,986],{},[24,1116,1117,1118],{},"Create a local checkpoint with ",[85,1119,1120],{},"git commit -m \"Describe the change\"",[24,1122,1123,1124],{},"Send the branch to GitHub with ",[85,1125,1126],{},"git push origin \u003Cbranch>",[24,1128,1129,1130,1133],{},"Open and merge a pull request, then use ",[85,1131,1132],{},"git pull origin \u003Cprimary-branch>"," locally",[110,1135,1136],{},"Follow the course-specific setup slide for starter files and branch rules",{"title":55,"searchDepth":1138,"depth":1138,"links":1139},2,[1140,1141,1146,1147,1150,1153,1154,1155,1156,1163,1167,1168,1169,1170,1171,1172,1173,1176,1177,1178],{"id":18,"depth":1138,"text":19},{"id":44,"depth":1138,"text":45,"children":1142},[1143,1145],{"id":125,"depth":1144,"text":126},3,{"id":163,"depth":1144,"text":164},{"id":203,"depth":1138,"text":204},{"id":237,"depth":1138,"text":238,"children":1148},[1149],{"id":280,"depth":1144,"text":281},{"id":310,"depth":1138,"text":311,"children":1151},[1152],{"id":337,"depth":1144,"text":338},{"id":367,"depth":1138,"text":368},{"id":391,"depth":1138,"text":394},{"id":423,"depth":1138,"text":424},{"id":449,"depth":1138,"text":450,"children":1157},[1158,1159,1160,1161,1162],{"id":483,"depth":1144,"text":484},{"id":517,"depth":1144,"text":518},{"id":559,"depth":1144,"text":560},{"id":575,"depth":1144,"text":576},{"id":600,"depth":1144,"text":601},{"id":621,"depth":1138,"text":622,"children":1164},[1165,1166],{"id":648,"depth":1144,"text":649},{"id":669,"depth":1144,"text":670},{"id":701,"depth":1138,"text":702},{"id":790,"depth":1138,"text":791},{"id":819,"depth":1138,"text":820},{"id":846,"depth":1138,"text":847},{"id":864,"depth":1138,"text":865},{"id":888,"depth":1138,"text":889},{"id":973,"depth":1138,"text":974,"children":1174},[1175],{"id":1014,"depth":1144,"text":1015},{"id":1043,"depth":1138,"text":1044},{"id":1055,"depth":1138,"text":1056},{"id":1098,"depth":1138,"text":1101},"presentation","general",null,"Clone your personal course repository, inspect changes, and use a small branch-and-pull-request workflow.","Focused shared local Git workflow plus course-specific repository handoffs and a reproducible forced rejected-push\u002Fconflict recovery path.","10","55","30","65","md",{"requiresLessonBranchCheckpoint":1190,"sourcePresentations":1191,"revisionStatus":1194},false,[1192,1193],"internet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F04-git-commands-prs.md","java-advanced-programming\u002F2e\u002Fpresentations\u002F01-module-1-course-setup\u002F04-git-commands-prs.md","reviewed","1",true,"40","\u002Fgeneral\u002F2e\u002Fpresentations\u002F04-local-git-workflow-and-course-repositories","Core","14",{"title":5,"description":1182},"published","general\u002F2e\u002Fpresentations\u002F04-local-git-workflow-and-course-repositories",[1205,1206,420,1207,1208],"git","github","shared-foundations","second-edition","2026-10-06T15:38:59.869Z","jybgGyxP_Uo5DYIpI7QH3UiiUudrS42i_oL8a_SRJ2E",[1212,1215,1218,1222,1225,1228,1231,1234,1238,1241,1245,1248,1251,1255,1259,1263,1266,1270,1274,1277,1281,1284,1287,1291,1295,1298,1301,1305,1308,1311,1314,1316,1318,1320,1322,1324,1326,1328,1331,1334,1337,1341,1344,1347,1350,1353,1356,1359,1362,1365,1368,1371,1374,1377,1380,1383,1386,1389,1392,1393,1397,1401,1404,1406,1409,1412,1415,1418,1421,1424,1427,1430,1434,1438,1442,1445,1448,1451,1454,1457,1460,1463,1466,1469,1472,1475,1478,1481,1484,1487,1490,1493,1496,1499,1502,1505,1508,1511,1514,1517,1520,1523,1526,1529,1533,1536,1539,1542,1545,1548,1551,1554,1557,1560,1563,1566,1569,1572,1575,1578,1581,1584,1587,1590,1593,1596,1599,1602,1605,1608,1611,1614,1617,1620,1623,1626,1629,1632,1635,1638,1641,1644,1647,1650,1653,1656,1659,1662,1665,1668,1671,1674,1677,1680,1683,1686,1689,1692,1695,1698,1701,1704,1707,1710,1713,1716,1719,1722,1725,1728,1731,1734,1737,1740,1743,1746,1749,1752,1755,1758,1761,1764,1767,1770,1773,1776,1779,1782,1785,1788,1791,1794,1797,1800,1803,1806,1809,1812,1815,1818,1821,1824,1827,1830,1833,1836,1839,1842,1845,1848,1851,1854,1857,1860,1863,1866,1869,1872,1875,1878,1881,1884,1887,1891,1894,1897,1900,1903,1906,1909,1912,1915,1918,1921,1924,1927,1930,1933,1936,1939,1942,1945,1948,1951,1954,1957,1960,1963,1966,1969,1972,1975,1978,1981,1984,1987,1990,1993,1996,1999,2002,2005,2008,2011,2014,2017,2020,2023,2026,2029,2032,2035,2038,2041,2044,2047,2050,2053,2056,2059,2062,2065,2068,2071,2074,2077,2080,2083,2086,2089,2092,2095,2098,2101,2104,2107,2110,2113,2116,2119,2122,2125,2128,2131,2134,2137,2140,2143,2146,2149,2152,2155,2158,2161,2164,2167,2170,2173,2176,2179,2182,2185,2188,2191,2194,2197,2200,2203,2206,2209,2212,2215,2218,2221,2224,2227,2230,2233,2236,2239,2242,2245,2248,2251,2254,2257,2260,2263,2266,2269,2272,2276,2279,2282,2285,2288,2291,2294,2296,2299,2302,2305,2308,2311,2313,2315,2317,2320,2322,2324,2326,2328,2330,2332,2334,2336,2338,2340,2342,2344,2347,2349,2351,2353,2355,2357,2359,2361,2363,2365,2367,2369,2371,2373,2375,2377,2381,2385,2389,2392,2396,2400,2403,2406,2409,2412,2415,2418,2422,2425,2428,2431,2434,2437,2440,2443,2446,2449,2452,2455,2458,2461,2464,2467,2470,2473,2476,2479,2482,2485,2488,2491,2494,2497,2500,2503,2506,2509,2512,2515,2518,2521,2524,2527,2530,2533,2536,2539,2542,2545,2548,2551,2554,2557,2560,2563,2565,2568,2571,2574,2577,2580,2583,2586,2589,2592,2595,2598,2601,2604,2607,2610,2613,2616,2619,2622,2625,2627,2629,2631,2633,2636,2639,2641,2643,2645,2647,2649,2651,2653,2655,2657,2659,2661,2663,2666,2669,2672,2674,2676,2678,2680,2682,2684,2686,2688,2690,2692,2694,2696,2698,2700,2702,2704,2706,2708,2710,2713,2716,2719,2722,2725,2728,2731,2734,2737,2740,2742,2744,2747,2750,2753,2756,2759,2762],{"path":1213,"title":1214,"order":1181,"module":1181,"status":1181},"\u002Fabout","About Content Version 3",{"path":1216,"title":1217,"order":1184,"module":1195,"status":1202},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F01-introduction\u002F01-what-is-a-game","What is a Game?",{"path":1219,"title":1220,"order":1221,"module":1195,"status":1202},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F01-introduction\u002F02-what-is-gameplay","What is Gameplay?","20",{"path":1223,"title":1224,"order":1184,"module":14,"status":1202},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F02-design-journal-and-treatment\u002F01-first-concept","First Concept, Journal, and Treatments",{"path":1226,"title":1227,"order":1221,"module":14,"status":1202},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F02-design-journal-and-treatment\u002F02-concept-workshop","Concept Workshop: Pitch, Feedback, and Selection",{"path":1229,"title":1230,"order":1184,"module":121,"status":1202},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F03-game-balance\u002F01-game-balance","Game Balance",{"path":1232,"title":1233,"order":1221,"module":121,"status":1202},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F03-game-balance\u002F02-case-study-evaluation","Case Study Evaluation",{"path":1235,"title":1236,"order":1184,"module":1237,"status":1202},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F04-look-and-feel\u002F01-color-theory","Game Design: Color Theory","4",{"path":1239,"title":1240,"order":1221,"module":1237,"status":1202},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F04-look-and-feel\u002F02-look-and-feel","Game Design - Look and Feel",{"path":1242,"title":1243,"order":1184,"module":1244,"status":1202},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F05-game-mechanics\u002F01-game-mechanics","Game Mechanics","5",{"path":1246,"title":1247,"order":1221,"module":1244,"status":1202},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F05-game-mechanics\u002F02-decks","Technical: Decks and Cards",{"path":1249,"title":1250,"order":1186,"module":1244,"status":1202},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F05-game-mechanics\u002F03-boards-and-movement","Boards and Movement",{"path":1252,"title":1253,"order":1184,"module":1254,"status":1202},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F06-depth-complexity-and-randomness\u002F01-depth-vs-complexity-and-randomness","Depth, Complexity, And Randomness","6",{"path":1256,"title":1257,"order":1184,"module":1258,"status":1202},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F07-making-your-first-game\u002F01-planning-and-management","Planning And Managing Your Game","7",{"path":1260,"title":1261,"order":1184,"module":1184,"status":1262},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F10-game-architecture\u002F01-concepts-and-design","Game Architecture: Concepts And Design","draft",{"path":1264,"title":1265,"order":1221,"module":1184,"status":1262},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F10-game-architecture\u002F02-features-of-a-game-engine","Game Engine Features And Browser Feasibility",{"path":1267,"title":1268,"order":1184,"module":1269,"status":1262},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F11-entity-based-systems\u002F01-ecs","Entity-Based Systems","11",{"path":1271,"title":1272,"order":1184,"module":1273,"status":1262},"\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":1275,"title":1276,"order":1221,"module":1273,"status":1262},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F12-level-mechanics-and-user-interfaces\u002F02-digital-prototype-presentation","Digital Prototype Presentation Deck",{"path":1278,"title":1279,"order":1184,"module":1280,"status":1262},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F13-actor-representations-and-artificial-intelligence\u002F01-actors-behavior-and-ai","Actors, Behavior, And AI","13",{"path":1282,"title":1283,"order":1184,"module":1200,"status":1262},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F14-particles-physics-and-digital-prototype-studio\u002F01-effects-particles-and-physics","Effects, Particle Systems, And Physics",{"path":1285,"title":1286,"order":1221,"module":1200,"status":1262},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F14-particles-physics-and-digital-prototype-studio\u002F02-recorded-project-showcase","Recorded Project Showcase",{"path":1288,"title":1289,"order":1184,"module":1290,"status":1262},"\u002Fgame-architecture-and-design\u002F2e\u002Fpresentations\u002F15-finale\u002F01-final-evaluation-and-postmortem","Final Evaluation And Postmortem","15",{"path":1292,"title":1293,"order":1195,"module":1294,"status":1202},"\u002Fgame-architecture-and-design\u002F2e\u002Fsyllabus\u002Ffall-2026","Course Syllabus: IT265 - Game Architecture and Design","0",{"path":1296,"title":1297,"order":1184,"module":14,"status":1202},"\u002Fgame-architecture-and-design\u002F2e\u002Fworksheets\u002Fmodule-02-design-journal","Module 2 Design And Development Journal",{"path":1299,"title":1300,"order":1221,"module":14,"status":1202},"\u002Fgame-architecture-and-design\u002F2e\u002Fworksheets\u002Fmodule-02-one-page-treatment","Module 2 One-Page Treatment",{"path":1302,"title":1303,"order":1304,"module":1258,"status":1202},"\u002Fgame-architecture-and-design\u002F2e\u002Fworksheets\u002Fmodule-07-game-design-treatment","Full Game Design Treatment","70",{"path":1306,"title":1307,"order":1195,"module":1294,"status":1262},"\u002Fgame-architecture-and-design","Game Architecture and Design",{"path":1309,"title":1310,"order":1181,"module":1181,"status":1262},"\u002Fgame-architecture-and-design\u002Fpresentations-revised\u002F00-revision-plan","Game Architecture And Design Revision Plan - Superseded Historical Baseline",{"path":1312,"title":1313,"order":1181,"module":1181,"status":1262},"\u002Fgame-architecture-and-design\u002Fpresentations-revised\u002F01-20-minute-recording-plan","Game Architecture And Design Recording Plan - Superseded Historical Baseline",{"path":1315,"title":1217,"order":1184,"module":1195,"status":1262},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F01-introduction\u002F01-what-is-a-game",{"path":1317,"title":1220,"order":1221,"module":1195,"status":1262},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F01-introduction\u002F02-what-is-gameplay",{"path":1319,"title":1230,"order":1184,"module":14,"status":1262},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F02-game-balance\u002F01-game-balance",{"path":1321,"title":1236,"order":1184,"module":121,"status":1262},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F03-look-and-feel\u002F01-color-theory",{"path":1323,"title":1240,"order":1221,"module":121,"status":1262},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F03-look-and-feel\u002F02-look-and-feel",{"path":1325,"title":1243,"order":1184,"module":1237,"status":1262},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F04-game-mechanics\u002F01-game-mechanics",{"path":1327,"title":1247,"order":1221,"module":1237,"status":1262},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F04-game-mechanics\u002F02-decks",{"path":1329,"title":1330,"order":1184,"module":1244,"status":1262},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F05-depth-complexity-and-randomness\u002F01-depth-vs-complexity-and-randomness","Depth vs Complexity and Randomness",{"path":1332,"title":1333,"order":1184,"module":1254,"status":1262},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F06-first-game-planning\u002F01-first-concept","First Concept: Updated Lesson",{"path":1335,"title":1336,"order":1221,"module":1254,"status":1262},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F06-first-game-planning\u002F02-planning-and-management","Planning and Management",{"path":1338,"title":1339,"order":1184,"module":1340,"status":1262},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F08-game-architecture\u002F01-concepts-and-design","Game Architecture: Concepts and Design","8",{"path":1342,"title":1343,"order":1221,"module":1340,"status":1262},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F08-game-architecture\u002F02-features-of-a-game-engine","Game Architecture: Features of a Game Engine",{"path":1345,"title":1268,"order":1184,"module":1346,"status":1262},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F09-entity-based-systems\u002F01-ecs","9",{"path":1348,"title":1349,"order":1184,"module":1184,"status":1262},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F10-level-mechanics\u002F01-level-mechanics","Game Design: Introduction to Level Mechanics",{"path":1351,"title":1352,"order":1221,"module":1184,"status":1262},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F10-level-mechanics\u002F02-grids","Technical: Square vs Hex Grids in Board Games",{"path":1354,"title":1355,"order":1184,"module":1269,"status":1262},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F11-user-interfaces\u002F01-user-interfaces","Game Design: User Interfaces",{"path":1357,"title":1358,"order":1184,"module":1273,"status":1262},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F12-actor-representations\u002F01-actors","Game Design: Actor Representations",{"path":1360,"title":1361,"order":1184,"module":1280,"status":1262},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F13-artificial-intelligence\u002F01-ai","Game Design: AI",{"path":1363,"title":1364,"order":1184,"module":1200,"status":1262},"\u002Fgame-architecture-and-design\u002Fpresentations\u002F14-particles-and-physics\u002F01-particles-and-physics","IT265: Particle Systems and Physics Engine",{"path":1366,"title":1367,"order":1195,"module":1294,"status":1262},"\u002Fgame-architecture-and-design\u002Fsyllabus\u002Fspring-2026","Course Syllabus: IT265 - Game Architecture",{"path":1369,"title":1370,"order":1184,"module":1294,"status":1262},"\u002Fgame-architecture-and-design\u002Fworksheets\u002Fcase-study-1-atari-worksheet","Case Study 1 - Atari",{"path":1372,"title":1373,"order":1221,"module":1294,"status":1262},"\u002Fgame-architecture-and-design\u002Fworksheets\u002Fit265-case-study-color-theory-worksheet","IT265 Case Study - Color Theory",{"path":1375,"title":1376,"order":1197,"module":1294,"status":1262},"\u002Fgame-architecture-and-design\u002Fworksheets\u002Fit265-case-study-personal-choice-worksheet","IT265 Case Study - Personal Choice",{"path":1378,"title":1379,"order":1186,"module":1294,"status":1262},"\u002Fgame-architecture-and-design\u002Fworksheets\u002Fit265-design-treatment-checkpoint-worksheet","IT265 Design Treatment Checkpoint",{"path":1381,"title":1382,"order":1294,"module":1195,"status":1202},"\u002Fgeneral\u002F2e\u002Fpresentations\u002F00-learn-courses-platform-and-discord","Learn Courses Platform And Discord",{"path":1384,"title":1385,"order":1184,"module":1195,"status":1202},"\u002Fgeneral\u002F2e\u002Fpresentations\u002F01-git-and-terminal-setup","Git And Terminal Setup",{"path":1387,"title":1388,"order":1221,"module":1195,"status":1202},"\u002Fgeneral\u002F2e\u002Fpresentations\u002F02-cli-foundations","CLI Foundations",{"path":1390,"title":1391,"order":1186,"module":1195,"status":1202},"\u002Fgeneral\u002F2e\u002Fpresentations\u002F03-github-setup-and-ssh","GitHub Setup And SSH",{"path":1198,"title":5,"order":1197,"module":1195,"status":1202},{"path":1394,"title":1395,"order":1396,"module":1195,"status":1202},"\u002Fgeneral\u002F2e\u002Fpresentations\u002F05-vscode-setup-and-course-extensions","VS Code Setup And Course Extensions","50",{"path":1398,"title":1399,"order":1400,"module":1195,"status":1202},"\u002Fgeneral\u002F2e\u002Fpresentations\u002F06-trace-learning-journal","TRACE Learning Journal Foundations","60",{"path":1402,"title":1403,"order":1181,"module":1181,"status":1181},"\u002Fgeneral\u002Fbasic-cli","Basic Command Line",{"path":1405,"title":1403,"order":1184,"module":1195,"status":1181},"\u002Fgeneral\u002Fbasic-command-line",{"path":1407,"title":1408,"order":1181,"module":1181,"status":1202},"\u002F","Ethereal Lab Course Materials",{"path":1410,"title":1411,"order":1184,"module":1195,"status":1262},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F01-basic-cli-commands","IT202 Setup Path And CLI Readiness",{"path":1413,"title":1414,"order":1221,"module":1195,"status":1262},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F02-install-git-tools","IT202 Git And Terminal Handoff",{"path":1416,"title":1417,"order":1186,"module":1195,"status":1262},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F03-setup-github-ssh","IT202 Repository And SSH Extension",{"path":1419,"title":1420,"order":1197,"module":1195,"status":1262},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F04-git-commands-prs","IT202 Git Workflow Handoff",{"path":1422,"title":1423,"order":1396,"module":1195,"status":1202},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F05-setup-local-development-environment","Standalone PHP Setup",{"path":1425,"title":1426,"order":1400,"module":1195,"status":1202},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F06-add-instructor-template-to-your-repository","Add Instructor Template To Your Repository",{"path":1428,"title":1429,"order":1304,"module":1195,"status":1202},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F07-qa-prod-branches","QA And Prod Branches",{"path":1431,"title":1432,"order":1433,"module":1195,"status":1202},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F08-render-setup","Render Setup","80",{"path":1435,"title":1436,"order":1437,"module":1195,"status":1202},"\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":1439,"title":1440,"order":1441,"module":1195,"status":1262},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F10-local-ubuntu-web-server-vmware","Local Ubuntu Web Server With VMware","100",{"path":1443,"title":1444,"order":1184,"module":14,"status":1202},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F02-php-and-javascript-basics\u002F01-compare-php-and-javascript","Compare PHP And JavaScript",{"path":1446,"title":1447,"order":1221,"module":14,"status":1202},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F02-php-and-javascript-basics\u002F02-conditions-loops-functions","Use Conditions Loops And Functions",{"path":1449,"title":1450,"order":1184,"module":121,"status":1202},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F03-html-forms-css-and-dom\u002F01-intro-to-html","Intro To HTML",{"path":1452,"title":1453,"order":1221,"module":121,"status":1202},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F03-html-forms-css-and-dom\u002F02-intro-to-forms-and-get-post","Intro To Forms And GET\u002FPOST",{"path":1455,"title":1456,"order":1186,"module":121,"status":1202},"\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":1458,"title":1459,"order":1184,"module":1237,"status":1202},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F04-databases-and-user-accounts\u002F01-intro-to-sql","Intro To SQL",{"path":1461,"title":1462,"order":1221,"module":1237,"status":1202},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F04-databases-and-user-accounts\u002F02-project-database-setup","Project Database Setup",{"path":1464,"title":1465,"order":1186,"module":1237,"status":1202},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F04-databases-and-user-accounts\u002F03-user-registration","User Registration",{"path":1467,"title":1468,"order":1197,"module":1237,"status":1202},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F04-databases-and-user-accounts\u002F04-user-login","User Login",{"path":1470,"title":1471,"order":1184,"module":1244,"status":1262},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F05-validation-and-user-profiles\u002F01-intro-to-regex","Intro To Regex",{"path":1473,"title":1474,"order":1221,"module":1244,"status":1262},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F05-validation-and-user-profiles\u002F02-project-shared-helpers","Project Shared Helpers",{"path":1476,"title":1477,"order":1186,"module":1244,"status":1262},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F05-validation-and-user-profiles\u002F03-flash-messages-and-redirect-feedback","User Feedback After Redirects",{"path":1479,"title":1480,"order":1197,"module":1244,"status":1262},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F05-validation-and-user-profiles\u002F04-user-profile","User Profile",{"path":1482,"title":1483,"order":1184,"module":1254,"status":1262},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F06-roles-and-crud-pages\u002F01-user-roles-authorization","User Roles Authorization",{"path":1485,"title":1486,"order":1221,"module":1254,"status":1262},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F06-roles-and-crud-pages\u002F02-user-login-enhancement","User Login Enhancement",{"path":1488,"title":1489,"order":1186,"module":1254,"status":1262},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F06-roles-and-crud-pages\u002F03-dynamic-content","Dynamic Content",{"path":1491,"title":1492,"order":1184,"module":1258,"status":1262},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F07-api-data-and-database-helpers\u002F01-working-with-api-data","Working With API Data",{"path":1494,"title":1495,"order":1221,"module":1258,"status":1262},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F07-api-data-and-database-helpers\u002F02-api-integration","API Integration",{"path":1497,"title":1498,"order":1186,"module":1258,"status":1262},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F07-api-data-and-database-helpers\u002F03-database-utility-functions","Database Utility Functions",{"path":1500,"title":1501,"order":1184,"module":1340,"status":1262},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F08-reusable-components-jquery-and-ajax\u002F01-milestone-2-bootstrap-and-reusability","Milestone 2 Bootstrap And Reusability",{"path":1503,"title":1504,"order":1221,"module":1340,"status":1262},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F08-reusable-components-jquery-and-ajax\u002F02-jquery-brief-intro","jQuery Brief Intro",{"path":1506,"title":1507,"order":1186,"module":1340,"status":1262},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F08-reusable-components-jquery-and-ajax\u002F03-intro-to-ajax","Intro To AJAX",{"path":1509,"title":1510,"order":1184,"module":1346,"status":1262},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F09-relational-data-search-and-pagination\u002F01-user-associations","Add User Associations",{"path":1512,"title":1513,"order":1221,"module":1346,"status":1262},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F09-relational-data-search-and-pagination\u002F02-association-views-and-pagination","Add Association Views And Pagination",{"path":1515,"title":1516,"order":1184,"module":1184,"status":1262},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F10-association-assignment-and-security\u002F01-association-assignment-and-public-profiles","Association Management And Public Profiles",{"path":1518,"title":1519,"order":1221,"module":1184,"status":1262},"\u002Finternet-applications\u002F2e\u002Fpresentations\u002F10-association-assignment-and-security\u002F02-reusable-csrf-protection","Reusable CSRF Protection",{"path":1521,"title":1522,"order":1195,"module":1294,"status":1202},"\u002Finternet-applications\u002F2e\u002Fsyllabus\u002Ffall-2026","IT202 - Internet Applications Syllabus",{"path":1524,"title":1525,"order":1184,"module":1195,"status":1202},"\u002Finternet-applications\u002F2e\u002Fworksheets\u002Fmodule-01-getting-started","Module 1 Getting Started",{"path":1527,"title":1528,"order":1221,"module":14,"status":1202},"\u002Finternet-applications\u002F2e\u002Fworksheets\u002Fmodule-02-php-challenges","Module 2 PHP Challenge Scenarios",{"path":1530,"title":1531,"order":1197,"module":1184,"status":1532},"\u002Finternet-applications\u002Fassignments\u002Ffinal-project-submission","Final Project Submission","review",{"path":1534,"title":1535,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fassignments\u002Fmilestones\u002F01-account-access-and-profile-system","Milestone 1: Account, Access, And Profile System",{"path":1537,"title":1538,"order":1221,"module":1340,"status":1532},"\u002Finternet-applications\u002Fassignments\u002Fmilestones\u002F02-api-data-and-project-crud","Milestone 2: API Data And Project CRUD",{"path":1540,"title":1541,"order":1186,"module":1346,"status":1532},"\u002Finternet-applications\u002Fassignments\u002Fmilestones\u002F03-user-associations-search-and-summary","Milestone 3: User Associations, Search, And Summary Views",{"path":1543,"title":1544,"order":1244,"module":1237,"status":1202},"\u002Finternet-applications\u002Fassignments\u002Fproject-proposal","IT 202 Project Proposal",{"path":1546,"title":1547,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F01-what-this-course-is-building","What Internet Applications Build",{"path":1549,"title":1550,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F02-files-folders-and-project-structure","Files, Folders, And Project Structure",{"path":1552,"title":1553,"order":1181,"module":1181,"status":1181},"\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":1555,"title":1556,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F02b-install-git-and-terminal-tools","Install Git And Terminal Tools",{"path":1558,"title":1559,"order":1181,"module":1181,"status":1181},"\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":1561,"title":1562,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F03a-local-development-environment","Set Up A Local Development Environment",{"path":1564,"title":1565,"order":1181,"module":1181,"status":1181},"\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":1567,"title":1568,"order":1181,"module":1181,"status":1181},"\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":1570,"title":1571,"order":1181,"module":1181,"status":1181},"\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":1573,"title":1574,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F07-git-recovery-and-common-mistakes","Git Recovery And Common Mistakes",{"path":1576,"title":1577,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F08-installing-apache-and-php","Installing Apache, PHP, And MySQL",{"path":1579,"title":1580,"order":1181,"module":1181,"status":1181},"\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":1582,"title":1583,"order":1181,"module":1181,"status":1181},"\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":1585,"title":1586,"order":1181,"module":1181,"status":1181},"\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":1588,"title":1589,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F12-local-qa-and-production-environments","Local, QA, And Production Environments",{"path":1591,"title":1592,"order":1181,"module":1181,"status":1181},"\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":1594,"title":1595,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F02-displaying-output-with-php","Displaying Output With PHP",{"path":1597,"title":1598,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F03-displaying-output-with-javascript","Displaying Output With JavaScript",{"path":1600,"title":1601,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F04-variables-storing-and-naming-values","Variables: Storing And Naming Values",{"path":1603,"title":1604,"order":1181,"module":1181,"status":1181},"\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":1606,"title":1607,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F06-arrays-storing-lists-of-values","Arrays: Storing Lists Of Values",{"path":1609,"title":1610,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F07-conditional-statements-making-decisions","Conditional Statements: Making Decisions",{"path":1612,"title":1613,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F08-loops-repeating-actions","Loops: Repeating Actions",{"path":1615,"title":1616,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F09-functions-reusable-blocks-of-logic","Functions: Reusable Blocks Of Logic",{"path":1618,"title":1619,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F10-reading-and-debugging-error-messages","Reading And Debugging Error Messages",{"path":1621,"title":1622,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F01-html-structure-and-meaning","HTML: Structure And Meaning",{"path":1624,"title":1625,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F02-writing-a-valid-html-document","Writing A Valid HTML Document",{"path":1627,"title":1628,"order":1181,"module":1181,"status":1181},"\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":1630,"title":1631,"order":1181,"module":1181,"status":1181},"\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":1633,"title":1634,"order":1181,"module":1181,"status":1181},"\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":1636,"title":1637,"order":1181,"module":1181,"status":1181},"\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":1639,"title":1640,"order":1181,"module":1181,"status":1181},"\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":1642,"title":1643,"order":1181,"module":1181,"status":1181},"\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":1645,"title":1646,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F09-page-layout-with-flexbox","Page Layout With Flexbox",{"path":1648,"title":1649,"order":1181,"module":1181,"status":1181},"\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":1651,"title":1652,"order":1181,"module":1181,"status":1181},"\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":1654,"title":1655,"order":1181,"module":1181,"status":1181},"\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":1657,"title":1658,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F12-basic-web-accessibility-habits","Basic Web Accessibility Habits",{"path":1660,"title":1661,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F01-why-web-applications-need-a-database","Why Web Applications Need A Database",{"path":1663,"title":1664,"order":1181,"module":1181,"status":1181},"\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":1666,"title":1667,"order":1181,"module":1181,"status":1181},"\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":1669,"title":1670,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F04-creating-tables-with-sql-scripts","Creating Tables With SQL Scripts",{"path":1672,"title":1673,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F05-connecting-php-to-mysql-with-pdo","Connecting PHP To MySQL With PDO",{"path":1675,"title":1676,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F06-parameterized-queries-and-sql-injection-prevention","Parameterized Queries And SQL Injection Prevention",{"path":1678,"title":1679,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F07-building-a-registration-page","Building A Registration Page",{"path":1681,"title":1682,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F08-hashing-passwords-with-password-hash","Hashing Passwords With password_hash()",{"path":1684,"title":1685,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F09-building-a-login-page","Building A Login Page",{"path":1687,"title":1688,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F10-sessions-remembering-the-logged-in-user","Sessions: Remembering The Logged-In User",{"path":1690,"title":1691,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F11-cookies-persistent-client-side-state","Cookies: Persistent Client-Side State",{"path":1693,"title":1694,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F04-databases-and-user-accounts\u002F12-navigation-that-responds-to-login-state","Navigation That Responds To Login State",{"path":1696,"title":1697,"order":1181,"module":1181,"status":1181},"\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":1699,"title":1700,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F02-sanitizing-and-escaping-user-input","Sanitizing And Escaping User Input",{"path":1702,"title":1703,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F03-required-fields-and-length-rules","Required Fields And Length Rules",{"path":1705,"title":1706,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F04-regular-expressions-for-pattern-matching","Regular Expressions For Pattern Matching",{"path":1708,"title":1709,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F05-server-side-validation-in-php","Server-Side Validation In PHP",{"path":1711,"title":1712,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F06-cross-site-scripting-xss-prevention","Cross-Site Scripting (XSS) Prevention",{"path":1714,"title":1715,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F07-flash-messages-and-persistent-feedback","Flash Messages And Persistent Feedback",{"path":1717,"title":1718,"order":1181,"module":1181,"status":1181},"\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":1720,"title":1721,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F09-building-a-profile-edit-page","Building A Profile Edit Page",{"path":1723,"title":1724,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F05-input-validation-security-and-user-profiles\u002F10-debugging-account-and-authentication-problems","Debugging Account And Authentication Problems",{"path":1726,"title":1727,"order":1181,"module":1181,"status":1181},"\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":1729,"title":1730,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F01-role-based-access-control","Role-Based Access Control",{"path":1732,"title":1733,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F02-storing-roles-in-the-database","Storing Roles In The Database",{"path":1735,"title":1736,"order":1181,"module":1181,"status":1181},"\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":1738,"title":1739,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F04-safe-redirects-after-login-and-logout","Safe Redirects After Login And Logout",{"path":1741,"title":1742,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F05-listing-records-from-the-database","Listing Records From The Database",{"path":1744,"title":1745,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F06-creating-new-records-with-a-form","Creating New Records With A Form",{"path":1747,"title":1748,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F07-editing-existing-records","Editing Existing Records",{"path":1750,"title":1751,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F08-deleting-records-safely","Deleting Records Safely",{"path":1753,"title":1754,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F09-ownership-linking-records-to-users","Ownership: Linking Records To Users",{"path":1756,"title":1757,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F10-first-project-milestone-checklist","First Project Milestone Checklist",{"path":1759,"title":1760,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F11-organizing-growing-php-applications","Organizing Growing PHP Applications",{"path":1762,"title":1763,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F12-reading-a-growing-php-application","Reading A Growing PHP Application",{"path":1765,"title":1766,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F01-what-asynchronous-requests-ajax-solve","What Asynchronous Requests (AJAX) Solve",{"path":1768,"title":1769,"order":1181,"module":1181,"status":1181},"\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":1771,"title":1772,"order":1181,"module":1181,"status":1181},"\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":1774,"title":1775,"order":1181,"module":1181,"status":1181},"\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":1777,"title":1778,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F05-handling-fetch-responses-and-errors","Handling Fetch Responses And Errors",{"path":1780,"title":1781,"order":1181,"module":1181,"status":1181},"\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":1783,"title":1784,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F07-introduction-to-rest-apis","Introduction To REST APIs",{"path":1786,"title":1787,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F08-reading-api-documentation","Reading API Documentation",{"path":1789,"title":1790,"order":1181,"module":1181,"status":1181},"\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":1792,"title":1793,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F10-storing-and-caching-api-responses","Storing And Caching API Responses",{"path":1795,"title":1796,"order":1181,"module":1181,"status":1181},"\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":1798,"title":1799,"order":1181,"module":1181,"status":1181},"\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":1801,"title":1802,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F01-jquery-simplified-dom-and-event-work","jQuery: Simplified DOM And Event Work",{"path":1804,"title":1805,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F02-selecting-elements-with-jquery","Selecting Elements With jQuery",{"path":1807,"title":1808,"order":1181,"module":1181,"status":1181},"\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":1810,"title":1811,"order":1181,"module":1181,"status":1181},"\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":1813,"title":1814,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F05-sending-ajax-requests-with-jquery","Sending AJAX Requests With jQuery",{"path":1816,"title":1817,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F06-saving-external-api-data-through-php","Saving External API Data Through PHP",{"path":1819,"title":1820,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F07-saving-user-created-records","Saving User-Created Records",{"path":1822,"title":1823,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F08-building-a-project-listing-page","Building A Project Listing Page",{"path":1825,"title":1826,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F09-inline-editing-and-detail-views","Inline Editing And Detail Views",{"path":1828,"title":1829,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F10-second-project-milestone-checklist","Second Project Milestone Checklist",{"path":1831,"title":1832,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F01-foreign-keys-and-referential-integrity","Foreign Keys And Referential Integrity",{"path":1834,"title":1835,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F02-joining-tables-inner-join-left-join","Joining Tables: INNER JOIN, LEFT JOIN",{"path":1837,"title":1838,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F03-user-owned-records-and-access-enforcement","User-Owned Records And Access Enforcement",{"path":1840,"title":1841,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F04-connecting-api-data-to-user-records","Connecting API Data To User Records",{"path":1843,"title":1844,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F05-searching-and-filtering-with-sql","Searching And Filtering With SQL",{"path":1846,"title":1847,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F06-pagination-displaying-records-in-pages","Pagination: Displaying Records In Pages",{"path":1849,"title":1850,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F07-aggregate-functions-count-sum-avg","Aggregate Functions: COUNT, SUM, AVG",{"path":1852,"title":1853,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F08-simple-analytics-and-summary-views","Simple Analytics And Summary Views",{"path":1855,"title":1856,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F09-third-project-milestone-checklist","Third Project Milestone Checklist",{"path":1858,"title":1859,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F01-public-pages-and-unauthenticated-views","Public Pages And Unauthenticated Views",{"path":1861,"title":1862,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F02-user-profile-and-activity-pages","User Profile And Activity Pages",{"path":1864,"title":1865,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F03-refreshing-and-expiring-external-api-data","Refreshing And Expiring External API Data",{"path":1867,"title":1868,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F04-application-wide-security-audit","Application-Wide Security Audit",{"path":1870,"title":1871,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F05-cross-site-request-forgery-csrf-protection","Cross-Site Request Forgery (CSRF) Protection",{"path":1873,"title":1874,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F06-qa-testing-and-collecting-evidence","QA Testing And Collecting Evidence",{"path":1876,"title":1877,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F07-production-environment-checklist","Production Environment Checklist",{"path":1879,"title":1880,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F08-writing-a-project-readme","Writing A Project README",{"path":1882,"title":1883,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F09-final-presentation-and-code-walkthrough","Final Presentation And Code Walkthrough",{"path":1885,"title":1886,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F10-configuration-drift-and-secrets-checks","Configuration Drift And Secrets Checks",{"path":1888,"title":1889,"order":1181,"module":1181,"status":1890},"\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":1892,"title":1893,"order":1181,"module":1181,"status":1890},"\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":1895,"title":1896,"order":1181,"module":1181,"status":1890},"\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":1898,"title":1899,"order":1181,"module":1181,"status":1890},"\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":1901,"title":1902,"order":1181,"module":1181,"status":1890},"\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":1904,"title":1905,"order":1181,"module":1181,"status":1890},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F03a-local-development-environment","Quiz - Set Up A Local Development Environment",{"path":1907,"title":1908,"order":1181,"module":1181,"status":1890},"\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":1910,"title":1911,"order":1181,"module":1181,"status":1890},"\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":1913,"title":1914,"order":1181,"module":1181,"status":1890},"\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":1916,"title":1917,"order":1181,"module":1181,"status":1890},"\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":1919,"title":1920,"order":1181,"module":1181,"status":1890},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F01-course-workflow-files-and-web-server\u002F08-installing-apache-and-php","Quiz - Installing Apache, PHP, And MySQL",{"path":1922,"title":1923,"order":1181,"module":1181,"status":1890},"\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":1925,"title":1926,"order":1181,"module":1181,"status":1890},"\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":1928,"title":1929,"order":1181,"module":1181,"status":1181},"\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":1931,"title":1932,"order":1181,"module":1181,"status":1890},"\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":1934,"title":1935,"order":1181,"module":1181,"status":1890},"\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":1937,"title":1938,"order":1181,"module":1181,"status":1890},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F02-displaying-output-with-php","Quiz - Displaying Output With PHP",{"path":1940,"title":1941,"order":1181,"module":1181,"status":1890},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F03-displaying-output-with-javascript","Quiz - Displaying Output With JavaScript",{"path":1943,"title":1944,"order":1181,"module":1181,"status":1181},"\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":1946,"title":1947,"order":1181,"module":1181,"status":1181},"\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":1949,"title":1950,"order":1181,"module":1181,"status":1890},"\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":1952,"title":1953,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F07-conditional-statements-making-decisions","Quiz - Conditional Statements: Making Decisions",{"path":1955,"title":1956,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F02-programming-fundamentals-in-php-and-javascript\u002F08-loops-repeating-actions","Quiz - Loops: Repeating Actions",{"path":1958,"title":1959,"order":1181,"module":1181,"status":1181},"\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":1961,"title":1962,"order":1181,"module":1181,"status":1890},"\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":1964,"title":1965,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F01-html-structure-and-meaning","Quiz - HTML: Structure And Meaning",{"path":1967,"title":1968,"order":1181,"module":1181,"status":1890},"\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":1970,"title":1971,"order":1181,"module":1181,"status":1890},"\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":1973,"title":1974,"order":1181,"module":1181,"status":1181},"\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":1976,"title":1977,"order":1181,"module":1181,"status":1890},"\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":1979,"title":1980,"order":1181,"module":1181,"status":1890},"\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":1982,"title":1983,"order":1181,"module":1181,"status":1181},"\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":1985,"title":1986,"order":1181,"module":1181,"status":1181},"\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":1988,"title":1989,"order":1181,"module":1181,"status":1890},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F09-page-layout-with-flexbox","Quiz - Page Layout With Flexbox",{"path":1991,"title":1992,"order":1181,"module":1181,"status":1890},"\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":1994,"title":1995,"order":1181,"module":1181,"status":1890},"\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":1997,"title":1998,"order":1181,"module":1181,"status":1890},"\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":2000,"title":2001,"order":1181,"module":1181,"status":1890},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F03-html-forms-css-and-the-dom\u002F12-basic-web-accessibility-habits","Quiz - Basic Web Accessibility Habits",{"path":2003,"title":2004,"order":1181,"module":1181,"status":1890},"\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":2006,"title":2007,"order":1181,"module":1181,"status":1181},"\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":2009,"title":2010,"order":1181,"module":1181,"status":1181},"\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":2012,"title":2013,"order":1181,"module":1181,"status":1890},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F04-databases-and-user-accounts\u002F04-creating-tables-with-sql-scripts","Quiz - Creating Tables With SQL Scripts",{"path":2015,"title":2016,"order":1181,"module":1181,"status":1890},"\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":2018,"title":2019,"order":1181,"module":1181,"status":1890},"\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":2021,"title":2022,"order":1181,"module":1181,"status":1890},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F04-databases-and-user-accounts\u002F07-building-a-registration-page","Quiz - Building A Registration Page",{"path":2024,"title":2025,"order":1181,"module":1181,"status":1890},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F04-databases-and-user-accounts\u002F08-hashing-passwords-with-password-hash","Quiz - Hashing Passwords With password_hash()",{"path":2027,"title":2028,"order":1181,"module":1181,"status":1890},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F04-databases-and-user-accounts\u002F09-building-a-login-page","Quiz - Building A Login Page",{"path":2030,"title":2031,"order":1181,"module":1181,"status":1181},"\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":2033,"title":2034,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F04-databases-and-user-accounts\u002F11-cookies-persistent-client-side-state","Quiz - Cookies: Persistent Client-Side State",{"path":2036,"title":2037,"order":1181,"module":1181,"status":1890},"\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":2039,"title":2040,"order":1181,"module":1181,"status":1890},"\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":2042,"title":2043,"order":1181,"module":1181,"status":1890},"\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":2045,"title":2046,"order":1181,"module":1181,"status":1890},"\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":2048,"title":2049,"order":1181,"module":1181,"status":1890},"\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":2051,"title":2052,"order":1181,"module":1181,"status":1890},"\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":2054,"title":2055,"order":1181,"module":1181,"status":1890},"\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":2057,"title":2058,"order":1181,"module":1181,"status":1890},"\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":2060,"title":2061,"order":1181,"module":1181,"status":1890},"\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":2063,"title":2064,"order":1181,"module":1181,"status":1890},"\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":2066,"title":2067,"order":1181,"module":1181,"status":1890},"\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":2069,"title":2070,"order":1181,"module":1181,"status":1181},"\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":2072,"title":2073,"order":1181,"module":1181,"status":1890},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F01-role-based-access-control","Quiz - Role-Based Access Control",{"path":2075,"title":2076,"order":1181,"module":1181,"status":1890},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F02-storing-roles-in-the-database","Quiz - Storing Roles In The Database",{"path":2078,"title":2079,"order":1181,"module":1181,"status":1890},"\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":2081,"title":2082,"order":1181,"module":1181,"status":1890},"\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":2084,"title":2085,"order":1181,"module":1181,"status":1890},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F05-listing-records-from-the-database","Quiz - Listing Records From The Database",{"path":2087,"title":2088,"order":1181,"module":1181,"status":1890},"\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":2090,"title":2091,"order":1181,"module":1181,"status":1890},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F07-editing-existing-records","Quiz - Editing Existing Records",{"path":2093,"title":2094,"order":1181,"module":1181,"status":1890},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F08-deleting-records-safely","Quiz - Deleting Records Safely",{"path":2096,"title":2097,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F09-ownership-linking-records-to-users","Quiz - Ownership: Linking Records To Users",{"path":2099,"title":2100,"order":1181,"module":1181,"status":1890},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F10-first-project-milestone-checklist","Quiz - First Project Milestone Checklist",{"path":2102,"title":2103,"order":1181,"module":1181,"status":1890},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F11-organizing-growing-php-applications","Quiz - Organizing Growing PHP Applications",{"path":2105,"title":2106,"order":1181,"module":1181,"status":1890},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F06-roles-permissions-and-crud-pages\u002F12-reading-a-growing-php-application","Quiz - Reading A Growing PHP Application",{"path":2108,"title":2109,"order":1181,"module":1181,"status":1890},"\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":2111,"title":2112,"order":1181,"module":1181,"status":1890},"\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":2114,"title":2115,"order":1181,"module":1181,"status":1890},"\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":2117,"title":2118,"order":1181,"module":1181,"status":1890},"\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":2120,"title":2121,"order":1181,"module":1181,"status":1890},"\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":2123,"title":2124,"order":1181,"module":1181,"status":1890},"\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":2126,"title":2127,"order":1181,"module":1181,"status":1890},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F07-introduction-to-rest-apis","Quiz - Introduction To REST APIs",{"path":2129,"title":2130,"order":1181,"module":1181,"status":1890},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F07-asynchronous-requests-json-and-external-apis\u002F08-reading-api-documentation","Quiz - Reading API Documentation",{"path":2132,"title":2133,"order":1181,"module":1181,"status":1890},"\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":2135,"title":2136,"order":1181,"module":1181,"status":1890},"\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":2138,"title":2139,"order":1181,"module":1181,"status":1890},"\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":2141,"title":2142,"order":1181,"module":1181,"status":1890},"\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":2144,"title":2145,"order":1181,"module":1181,"status":1181},"\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":2147,"title":2148,"order":1181,"module":1181,"status":1890},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F02-selecting-elements-with-jquery","Quiz - Selecting Elements With jQuery",{"path":2150,"title":2151,"order":1181,"module":1181,"status":1181},"\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":2153,"title":2154,"order":1181,"module":1181,"status":1890},"\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":2156,"title":2157,"order":1181,"module":1181,"status":1890},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F05-sending-ajax-requests-with-jquery","Quiz - Sending AJAX Requests With jQuery",{"path":2159,"title":2160,"order":1181,"module":1181,"status":1890},"\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":2162,"title":2163,"order":1181,"module":1181,"status":1890},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F07-saving-user-created-records","Quiz - Saving User-Created Records",{"path":2165,"title":2166,"order":1181,"module":1181,"status":1890},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F08-building-a-project-listing-page","Quiz - Building A Project Listing Page",{"path":2168,"title":2169,"order":1181,"module":1181,"status":1890},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F09-inline-editing-and-detail-views","Quiz - Inline Editing And Detail Views",{"path":2171,"title":2172,"order":1181,"module":1181,"status":1890},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F08-dynamic-interfaces-and-project-data\u002F10-second-project-milestone-checklist","Quiz - Second Project Milestone Checklist",{"path":2174,"title":2175,"order":1181,"module":1181,"status":1890},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F01-foreign-keys-and-referential-integrity","Quiz - Foreign Keys And Referential Integrity",{"path":2177,"title":2178,"order":1181,"module":1181,"status":1890},"\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":2180,"title":2181,"order":1181,"module":1181,"status":1890},"\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":2183,"title":2184,"order":1181,"module":1181,"status":1890},"\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":2186,"title":2187,"order":1181,"module":1181,"status":1890},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F05-searching-and-filtering-with-sql","Quiz - Searching And Filtering With SQL",{"path":2189,"title":2190,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F06-pagination-displaying-records-in-pages","Quiz - Pagination: Displaying Records In Pages",{"path":2192,"title":2193,"order":1181,"module":1181,"status":1181},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F07-aggregate-functions-count-sum-avg","Quiz - Aggregate Functions: COUNT, SUM, AVG",{"path":2195,"title":2196,"order":1181,"module":1181,"status":1890},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F08-simple-analytics-and-summary-views","Quiz - Simple Analytics And Summary Views",{"path":2198,"title":2199,"order":1181,"module":1181,"status":1890},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F09-relational-data-search-and-pagination\u002F09-third-project-milestone-checklist","Quiz - Third Project Milestone Checklist",{"path":2201,"title":2202,"order":1181,"module":1181,"status":1890},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F01-public-pages-and-unauthenticated-views","Quiz - Public Pages And Unauthenticated Views",{"path":2204,"title":2205,"order":1181,"module":1181,"status":1890},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F02-user-profile-and-activity-pages","Quiz - User Profile And Activity Pages",{"path":2207,"title":2208,"order":1181,"module":1181,"status":1890},"\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":2210,"title":2211,"order":1181,"module":1181,"status":1890},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F04-application-wide-security-audit","Quiz - Application-Wide Security Audit",{"path":2213,"title":2214,"order":1181,"module":1181,"status":1890},"\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":2216,"title":2217,"order":1181,"module":1181,"status":1890},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F06-qa-testing-and-collecting-evidence","Quiz - QA Testing And Collecting Evidence",{"path":2219,"title":2220,"order":1181,"module":1181,"status":1890},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F07-production-environment-checklist","Quiz - Production Environment Checklist",{"path":2222,"title":2223,"order":1181,"module":1181,"status":1890},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F08-writing-a-project-readme","Quiz - Writing A Project README",{"path":2225,"title":2226,"order":1181,"module":1181,"status":1890},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F09-final-presentation-and-code-walkthrough","Quiz - Final Presentation And Code Walkthrough",{"path":2228,"title":2229,"order":1181,"module":1181,"status":1890},"\u002Finternet-applications\u002Fbook\u002Fquizzes\u002Fmodules\u002F10-final-integration-testing-and-deployment\u002F10-configuration-drift-and-secrets-checks","Quiz - Configuration Drift And Secrets Checks",{"path":2231,"title":2232,"order":1195,"module":1294,"status":1262},"\u002Finternet-applications\u002Fbook\u002Freference\u002Fa-command-line-basics","Command Line Basics",{"path":2234,"title":2235,"order":14,"module":1294,"status":1262},"\u002Finternet-applications\u002Fbook\u002Freference\u002Fb-git-and-github-recovery","Git And GitHub Recovery",{"path":2237,"title":2238,"order":121,"module":1294,"status":1262},"\u002Finternet-applications\u002Fbook\u002Freference\u002Fc-apache-and-php-troubleshooting","Apache And PHP Troubleshooting",{"path":2240,"title":2241,"order":1237,"module":1294,"status":1262},"\u002Finternet-applications\u002Fbook\u002Freference\u002Fd-mysql-troubleshooting","MySQL Troubleshooting",{"path":2243,"title":2244,"order":1244,"module":1294,"status":1262},"\u002Finternet-applications\u002Fbook\u002Freference\u002Fe-http-request-and-response-reference","HTTP Request And Response Reference",{"path":2246,"title":2247,"order":1254,"module":1294,"status":1262},"\u002Finternet-applications\u002Fbook\u002Freference\u002Ff-common-security-mistakes","Common Security Mistakes",{"path":2249,"title":2250,"order":1258,"module":1294,"status":1262},"\u002Finternet-applications\u002Fbook\u002Freference\u002Fg-ai-collaboration-and-disclosure","AI Collaboration And Disclosure",{"path":2252,"title":2253,"order":1294,"module":1294,"status":1262},"\u002Finternet-applications\u002Fbook\u002Ftoc","Internet Applications: Table of Contents",{"path":2255,"title":2256,"order":1184,"module":1195,"status":1262},"\u002Finternet-applications\u002Flabs\u002F01-git-recovery-and-submission-evidence","Lab 1: Git Recovery And Submission Evidence",{"path":2258,"title":2259,"order":1221,"module":14,"status":1262},"\u002Finternet-applications\u002Flabs\u002F02-php-output-and-error-reading","Lab 2: PHP Output And Error Reading",{"path":2261,"title":2262,"order":1186,"module":121,"status":1262},"\u002Finternet-applications\u002Flabs\u002F03-form-methods-and-sticky-values","Lab 3: Form Methods And Sticky Values",{"path":2264,"title":2265,"order":1197,"module":1237,"status":1262},"\u002Finternet-applications\u002Flabs\u002F04-pdo-query-and-sql-evidence","Lab 4: PDO Query And SQL Evidence",{"path":2267,"title":2268,"order":1396,"module":1244,"status":1262},"\u002Finternet-applications\u002Flabs\u002F05-validation-debugging-and-friendly-errors","Lab 5: Validation, Debugging, And Friendly Errors",{"path":2270,"title":2271,"order":1400,"module":1254,"status":1262},"\u002Finternet-applications\u002Flabs\u002F06-role-protected-crud-check","Lab 6: Role-Protected CRUD Check",{"path":2273,"title":2274,"order":2275,"module":1254,"status":1262},"\u002Finternet-applications\u002Flabs\u002F06a-relative-paths-includes-and-feature-trace","Lab 6A: Relative Paths, Includes, And Feature Tracing","61",{"path":2277,"title":2278,"order":1304,"module":1258,"status":1262},"\u002Finternet-applications\u002Flabs\u002F07-json-endpoint-and-fetch-check","Lab 7: JSON Endpoint And Fetch Check",{"path":2280,"title":2281,"order":1433,"module":1340,"status":1262},"\u002Finternet-applications\u002Flabs\u002F08-jquery-ajax-interface-check","Lab 8: jQuery AJAX Interface Check",{"path":2283,"title":2284,"order":1437,"module":1346,"status":1262},"\u002Finternet-applications\u002Flabs\u002F09-search-pagination-and-summary-check","Lab 9: Search, Pagination, And Summary Check",{"path":2286,"title":2287,"order":1441,"module":1184,"status":1262},"\u002Finternet-applications\u002Flabs\u002F10-final-security-and-readme-check","Lab 10: Final Security And README Check",{"path":2289,"title":2290,"order":1181,"module":1181,"status":1262},"\u002Finternet-applications\u002Fpresentations-revised\u002F00-revision-plan","Internet Applications Revision Plan - Superseded Historical Baseline",{"path":2292,"title":2293,"order":1181,"module":1181,"status":1262},"\u002Finternet-applications\u002Fpresentations-revised\u002F01-20-minute-recording-plan","Internet Applications Recording Plan - Superseded Historical Baseline",{"path":2295,"title":1382,"order":1294,"module":1195,"status":1202},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F00-learn-courses-and-discord",{"path":2297,"title":2298,"order":1184,"module":1195,"status":1202},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F01-basic-cli-commands","Basic CLI Commands",{"path":2300,"title":2301,"order":1221,"module":1195,"status":1202},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F02-install-git-tools","Git Tools",{"path":2303,"title":2304,"order":1186,"module":1195,"status":1202},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F03-setup-github-ssh","Set Up GitHub SSH",{"path":2306,"title":2307,"order":1197,"module":1195,"status":1202},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F04-git-commands-prs","Git Commands And Pull Requests",{"path":2309,"title":2310,"order":1396,"module":1195,"status":1202},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F05-setup-local-development-environment","Local Development Environment Setup",{"path":2312,"title":1426,"order":1400,"module":1195,"status":1202},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F06-add-instructor-template-to-your-repository",{"path":2314,"title":1429,"order":1304,"module":1195,"status":1202},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F07-qa-prod-branches",{"path":2316,"title":1432,"order":1433,"module":1195,"status":1202},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F08-render-setup",{"path":2318,"title":2319,"order":1437,"module":1195,"status":1202},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F09-local-ubuntu-web-server-virtualbox","Local Ubuntu Web Server With VirtualBox",{"path":2321,"title":1440,"order":1441,"module":1195,"status":1262},"\u002Finternet-applications\u002Fpresentations\u002F01-git-github-and-course-workflow\u002F10-local-ubuntu-web-server-vmware",{"path":2323,"title":1444,"order":1184,"module":14,"status":1202},"\u002Finternet-applications\u002Fpresentations\u002F02-php-and-javascript-basics\u002F01-compare-php-and-javascript",{"path":2325,"title":1447,"order":1221,"module":14,"status":1202},"\u002Finternet-applications\u002Fpresentations\u002F02-php-and-javascript-basics\u002F02-conditions-loops-functions",{"path":2327,"title":1450,"order":1184,"module":121,"status":1202},"\u002Finternet-applications\u002Fpresentations\u002F03-html-forms-css-and-dom\u002F01-intro-to-html",{"path":2329,"title":1453,"order":1221,"module":121,"status":1202},"\u002Finternet-applications\u002Fpresentations\u002F03-html-forms-css-and-dom\u002F02-intro-to-forms-and-get-post",{"path":2331,"title":1456,"order":1186,"module":121,"status":1202},"\u002Finternet-applications\u002Fpresentations\u002F03-html-forms-css-and-dom\u002F03-understanding-css-js-selectors-and-dom-updates",{"path":2333,"title":1459,"order":1184,"module":1237,"status":1202},"\u002Finternet-applications\u002Fpresentations\u002F04-databases-and-user-accounts\u002F01-intro-to-sql",{"path":2335,"title":1462,"order":1221,"module":1237,"status":1202},"\u002Finternet-applications\u002Fpresentations\u002F04-databases-and-user-accounts\u002F02-project-database-setup",{"path":2337,"title":1465,"order":1186,"module":1237,"status":1202},"\u002Finternet-applications\u002Fpresentations\u002F04-databases-and-user-accounts\u002F03-user-registration",{"path":2339,"title":1468,"order":1197,"module":1237,"status":1202},"\u002Finternet-applications\u002Fpresentations\u002F04-databases-and-user-accounts\u002F04-user-login",{"path":2341,"title":1471,"order":1184,"module":1244,"status":1202},"\u002Finternet-applications\u002Fpresentations\u002F05-validation-and-user-profiles\u002F01-intro-to-regex",{"path":2343,"title":1474,"order":1221,"module":1244,"status":1202},"\u002Finternet-applications\u002Fpresentations\u002F05-validation-and-user-profiles\u002F02-project-shared-helpers",{"path":2345,"title":2346,"order":1186,"module":1244,"status":1202},"\u002Finternet-applications\u002Fpresentations\u002F05-validation-and-user-profiles\u002F03-flash-messages-and-redirect-feedback","Flash Messages And Redirect Feedback",{"path":2348,"title":1480,"order":1197,"module":1244,"status":1202},"\u002Finternet-applications\u002Fpresentations\u002F05-validation-and-user-profiles\u002F04-user-profile",{"path":2350,"title":1483,"order":1184,"module":1254,"status":1202},"\u002Finternet-applications\u002Fpresentations\u002F06-roles-and-crud-pages\u002F01-user-roles-authorization",{"path":2352,"title":1486,"order":1221,"module":1254,"status":1202},"\u002Finternet-applications\u002Fpresentations\u002F06-roles-and-crud-pages\u002F02-user-login-enhancement",{"path":2354,"title":1489,"order":1186,"module":1254,"status":1202},"\u002Finternet-applications\u002Fpresentations\u002F06-roles-and-crud-pages\u002F03-dynamic-content",{"path":2356,"title":1492,"order":1184,"module":1258,"status":1202},"\u002Finternet-applications\u002Fpresentations\u002F07-api-data-and-database-helpers\u002F01-working-with-api-data",{"path":2358,"title":1495,"order":1221,"module":1258,"status":1202},"\u002Finternet-applications\u002Fpresentations\u002F07-api-data-and-database-helpers\u002F02-api-integration",{"path":2360,"title":1498,"order":1186,"module":1258,"status":1202},"\u002Finternet-applications\u002Fpresentations\u002F07-api-data-and-database-helpers\u002F03-database-utility-functions",{"path":2362,"title":1501,"order":1184,"module":1340,"status":1202},"\u002Finternet-applications\u002Fpresentations\u002F08-reusable-components-jquery-and-ajax\u002F01-milestone-2-bootstrap-and-reusability",{"path":2364,"title":1504,"order":1221,"module":1340,"status":1202},"\u002Finternet-applications\u002Fpresentations\u002F08-reusable-components-jquery-and-ajax\u002F02-jquery-brief-intro",{"path":2366,"title":1507,"order":1186,"module":1340,"status":1202},"\u002Finternet-applications\u002Fpresentations\u002F08-reusable-components-jquery-and-ajax\u002F03-intro-to-ajax",{"path":2368,"title":1510,"order":1184,"module":1346,"status":1202},"\u002Finternet-applications\u002Fpresentations\u002F09-relational-data-search-and-pagination\u002F01-user-associations",{"path":2370,"title":1513,"order":1221,"module":1346,"status":1202},"\u002Finternet-applications\u002Fpresentations\u002F09-relational-data-search-and-pagination\u002F02-association-views-and-pagination",{"path":2372,"title":1516,"order":1184,"module":1184,"status":1202},"\u002Finternet-applications\u002Fpresentations\u002F10-association-assignment-and-security\u002F01-association-assignment-and-public-profiles",{"path":2374,"title":1519,"order":1221,"module":1184,"status":1202},"\u002Finternet-applications\u002Fpresentations\u002F10-association-assignment-and-security\u002F02-reusable-csrf-protection",{"path":2376,"title":1522,"order":1195,"module":1294,"status":1202},"\u002Finternet-applications\u002Fsyllabus\u002Fsummer-2026",{"path":2378,"title":2379,"order":2380,"module":1184,"status":1262},"\u002Finternet-applications\u002Fworksheets\u002Ffinal-project-submission-worksheet","Final Project Submission Worksheet","110",{"path":2382,"title":2383,"order":2384,"module":1254,"status":1262},"\u002Finternet-applications\u002Fworksheets\u002Flegacy-milestone-01-worksheet","Legacy Milestone 1 Worksheet","118",{"path":2386,"title":2387,"order":2388,"module":1254,"status":1262},"\u002Finternet-applications\u002Fworksheets\u002Flegacy-multi-dimension-php-problems-worksheet","Legacy Multi-Dimension PHP Problems Worksheet","119",{"path":2390,"title":2391,"order":2380,"module":1254,"status":1262},"\u002Finternet-applications\u002Fworksheets\u002Fmilestone-01-account-access-and-profile-worksheet","IT202 Milestone 1 - 2026",{"path":2393,"title":2394,"order":2395,"module":1340,"status":1262},"\u002Finternet-applications\u002Fworksheets\u002Fmilestone-02-api-data-and-crud-worksheet","IT202 Milestone 2 - 2026","120",{"path":2397,"title":2398,"order":2399,"module":1346,"status":1262},"\u002Finternet-applications\u002Fworksheets\u002Fmilestone-03-user-associations-worksheet","IT202 Milestone 3 - 2026","130",{"path":2401,"title":2402,"order":1184,"module":1195,"status":1262},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-01-git-and-local-server-worksheet","Module 1 Worksheet: Git, GitHub, And Local Server Evidence",{"path":2404,"title":2405,"order":1221,"module":14,"status":1262},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-02-php-and-debugging-worksheet","Module 2 Worksheet: PHP Challenge Scenarios",{"path":2407,"title":2408,"order":1186,"module":121,"status":1262},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-03-forms-css-and-dom-worksheet","Module 3 Worksheet: HTML, CSS, JS Challenges",{"path":2410,"title":2411,"order":1197,"module":1237,"status":1262},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-04-database-auth-and-sessions-worksheet","Module 4 Worksheet: SQL Todo Challenge",{"path":2413,"title":2414,"order":1396,"module":1244,"status":1262},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-05-validation-and-debugging-worksheet","Module 5 Worksheet: Validation And Debugging Evidence",{"path":2416,"title":2417,"order":1400,"module":1254,"status":1262},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-06-authorization-and-crud-worksheet","Module 6 Worksheet: Authorization And CRUD Evidence",{"path":2419,"title":2420,"order":2421,"module":1254,"status":1262},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-06-multi-dimensional-php-arrays-worksheet","Module 06 Worksheet: Multi-Dimensional PHP Arrays","62",{"path":2423,"title":2424,"order":1304,"module":1258,"status":1262},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-07-api-testing-worksheet","Module 07 Worksheet: Project API Testing",{"path":2426,"title":2427,"order":1433,"module":1340,"status":1262},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-08-jquery-and-dynamic-ui-worksheet","Module 8 Worksheet: jQuery And Dynamic UI Evidence",{"path":2429,"title":2430,"order":1437,"module":1346,"status":1262},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-09-search-pagination-and-summary-worksheet","Module 9 Worksheet: Search, Pagination, And Summary Evidence",{"path":2432,"title":2433,"order":1441,"module":1184,"status":1262},"\u002Finternet-applications\u002Fworksheets\u002Fmodule-10-final-project-readiness-worksheet","Module 10 Worksheet: Final Project Readiness Evidence",{"path":2435,"title":2436,"order":1400,"module":1195,"status":1262},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F01-module-1-course-setup\u002F06-java-environment-setup","IT114 Java Environment Setup",{"path":2438,"title":2439,"order":1184,"module":14,"status":1202},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F02-module-2-java-basics\u002F01-java-basics","Java Basics",{"path":2441,"title":2442,"order":1221,"module":14,"status":1202},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F02-module-2-java-basics\u002F02-flow-control","Java Flow Control",{"path":2444,"title":2445,"order":1186,"module":14,"status":1202},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F02-module-2-java-basics\u002F03-loops","Java Loops",{"path":2447,"title":2448,"order":1197,"module":14,"status":1202},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F02-module-2-java-basics\u002F04-collections","Java Arrays, Queue, Stack, ArrayList",{"path":2450,"title":2451,"order":1184,"module":121,"status":1202},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F03-module-3-java-io-and-oop\u002F01-user-input","Java User Input",{"path":2453,"title":2454,"order":1221,"module":121,"status":1202},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F03-module-3-java-io-and-oop\u002F02-oop-modifiers","Java Intro to OOP - Modifiers",{"path":2456,"title":2457,"order":1186,"module":121,"status":1202},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F03-module-3-java-io-and-oop\u002F03-file-io","Java File I\u002FO",{"path":2459,"title":2460,"order":1197,"module":121,"status":1202},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F03-module-3-java-io-and-oop\u002F04-recursion-trees","Java Recursion and Trees",{"path":2462,"title":2463,"order":1184,"module":1237,"status":1202},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F04-module-4-sockets-and-oop\u002F01-sockets-overview","Java Sockets: Overview",{"path":2465,"title":2466,"order":1221,"module":1237,"status":1202},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F04-module-4-sockets-and-oop\u002F02-oop-intermediate","Java OOP Intermediate",{"path":2468,"title":2469,"order":1186,"module":1237,"status":1202},"\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":2471,"title":2472,"order":1197,"module":1237,"status":1202},"\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":2474,"title":2475,"order":1221,"module":1254,"status":1202},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F06-module-6-milestone-2-prep\u002F02-prepare-milestone-2-2026","Preparing the Java Project Framework",{"path":2477,"title":2478,"order":1184,"module":1258,"status":1202},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F06-module-6-milestone-2-prep\u002F03-gameserver-ready-check","GameServer: Ready Check",{"path":2480,"title":2481,"order":1184,"module":1258,"status":1262},"\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":2483,"title":2484,"order":1221,"module":1258,"status":1262},"\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":2486,"title":2487,"order":1186,"module":1258,"status":1262},"\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":2489,"title":2490,"order":1197,"module":1258,"status":1262},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F07-module-7-game-rooms-and-turns\u002F04-simultaneous-turns","Java Advanced Programming Milestone 2: Simultaneous Turns",{"path":2492,"title":2493,"order":1396,"module":1258,"status":1262},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F07-module-7-game-rooms-and-turns\u002F05-individual-turns","Java Advanced Programming Milestone 2: Individual Turns",{"path":2495,"title":2496,"order":1184,"module":1340,"status":1262},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F08-module-8-grids-cards-and-ui\u002F01-grid-integration","Java Advanced Programming Milestone 2: Grid Integration",{"path":2498,"title":2499,"order":1221,"module":1340,"status":1262},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F08-module-8-grids-cards-and-ui\u002F02-card-integration","Java Advanced Programming Milestone 2: Cards Integration",{"path":2501,"title":2502,"order":1186,"module":1340,"status":1262},"\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":2504,"title":2505,"order":1197,"module":1340,"status":1262},"\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":2507,"title":2508,"order":1396,"module":1340,"status":1262},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F08-module-8-grids-cards-and-ui\u002F05-java-ui-intro","Java Advanced Programming Java UI 2025",{"path":2510,"title":2511,"order":1184,"module":1346,"status":1262},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F09-module-9-ui-integration\u002F01-ui-integration-2026","UI Integration 2026",{"path":2513,"title":2514,"order":1221,"module":1346,"status":1262},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F09-module-9-ui-integration\u002F02-ui-drawing","UI Drawing",{"path":2516,"title":2517,"order":1186,"module":1346,"status":1262},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F09-module-9-ui-integration\u002F03-baseline-ui-integration","Baseline UI Integration",{"path":2519,"title":2520,"order":1197,"module":1346,"status":1262},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F09-module-9-ui-integration\u002F04-ndff-ui-integration","NDFF UI Integration",{"path":2522,"title":2523,"order":1396,"module":1346,"status":1262},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F09-module-9-ui-integration\u002F05-equals-6-ui","Equals 6 UI",{"path":2525,"title":2526,"order":1400,"module":1346,"status":1262},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F09-module-9-ui-integration\u002F06-popularity-mini-project","Popularity Mini Project",{"path":2528,"title":2529,"order":1184,"module":1184,"status":1262},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F10-module-10-wrap-up-and-deployment\u002F01-milestone-3-wrapup","Milestone 3 Wrapup",{"path":2531,"title":2532,"order":1221,"module":1184,"status":1262},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F10-module-10-wrap-up-and-deployment\u002F02-deploying-java-apps","Deploying Java Apps",{"path":2534,"title":2535,"order":1186,"module":1184,"status":1262},"\u002Fjava-advanced-programming\u002F2e\u002Fpresentations\u002F10-module-10-wrap-up-and-deployment\u002F03-ndff-away-spectator","NDFF Away Spectator",{"path":2537,"title":2538,"order":1340,"module":1254,"status":1202},"\u002Fjava-advanced-programming\u002F2e\u002Fprojects\u002Fbattleship","Battleship Project",{"path":2540,"title":2541,"order":1244,"module":1254,"status":1202},"\u002Fjava-advanced-programming\u002F2e\u002Fprojects\u002Fdrawing","Drawing Project",{"path":2543,"title":2544,"order":121,"module":1254,"status":1202},"\u002Fjava-advanced-programming\u002F2e\u002Fprojects\u002Fgo-fish","Go Fish Project",{"path":2546,"title":2547,"order":1237,"module":1254,"status":1202},"\u002Fjava-advanced-programming\u002F2e\u002Fprojects\u002Fhangman","Hangman Project",{"path":2549,"title":2550,"order":1195,"module":1254,"status":1202},"\u002Fjava-advanced-programming\u002F2e\u002Fprojects","IT114 Project Choices",{"path":2552,"title":2553,"order":1254,"module":1254,"status":1202},"\u002Fjava-advanced-programming\u002F2e\u002Fprojects\u002Frock-paper-scissors","Rock Paper Scissors Project",{"path":2555,"title":2556,"order":14,"module":1254,"status":1202},"\u002Fjava-advanced-programming\u002F2e\u002Fprojects\u002Fshared-requirements","IT114 Shared Project Requirements",{"path":2558,"title":2559,"order":1258,"module":1254,"status":1202},"\u002Fjava-advanced-programming\u002F2e\u002Fprojects\u002Ftrivia","Trivia Project",{"path":2561,"title":2562,"order":1195,"module":1294,"status":1202},"\u002Fjava-advanced-programming\u002F2e\u002Fsyllabus\u002Ffall-2026","IT114 - Advanced Programming for Information Technology",{"path":2564,"title":1525,"order":1184,"module":1195,"status":1202},"\u002Fjava-advanced-programming\u002F2e\u002Fworksheets\u002Fmodule-01-getting-started",{"path":2566,"title":2567,"order":1221,"module":14,"status":1202},"\u002Fjava-advanced-programming\u002F2e\u002Fworksheets\u002Fmodule-02-java-challenges","Module 2 Java Challenges",{"path":2569,"title":2570,"order":1184,"module":1195,"status":1262},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F01-course-setup-and-workflow\u002F01-course-tools-and-workflow","Course Tools And Workflow",{"path":2572,"title":2573,"order":1221,"module":1195,"status":1262},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F01-course-setup-and-workflow\u002F02-terminal-git-and-github","Terminal, Git, And GitHub Basics",{"path":2575,"title":2576,"order":1186,"module":1195,"status":1262},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F01-course-setup-and-workflow\u002F03-java-development-environment","Java Development Environment",{"path":2578,"title":2579,"order":1184,"module":14,"status":1262},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F02-java-basics\u002F01-java-program-shape","The Shape Of A Java Program",{"path":2581,"title":2582,"order":1221,"module":14,"status":1262},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F02-java-basics\u002F02-values-types-and-expressions","Values, Types, And Expressions",{"path":2584,"title":2585,"order":1186,"module":14,"status":1262},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F02-java-basics\u002F03-conditions-loops-and-collections","Conditions, Loops, And Collections",{"path":2587,"title":2588,"order":1184,"module":121,"status":1262},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F03-java-input-io-and-oop\u002F01-user-input-and-output","User Input And Program Output",{"path":2590,"title":2591,"order":1221,"module":121,"status":1262},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F03-java-input-io-and-oop\u002F02-classes-objects-and-modifiers","Classes, Objects, And Modifiers",{"path":2593,"title":2594,"order":1186,"module":121,"status":1262},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F03-java-input-io-and-oop\u002F03-file-io-paths-and-exceptions","File I\u002FO, Paths, And Exceptions",{"path":2596,"title":2597,"order":1197,"module":121,"status":1262},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F03-java-input-io-and-oop\u002F04-recursion-and-trees","Recursion And Tree Thinking",{"path":2599,"title":2600,"order":1184,"module":1237,"status":1262},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F04-sockets-and-oop\u002F01-sockets-client-server","Sockets And Client\u002FServer Thinking",{"path":2602,"title":2603,"order":1221,"module":1237,"status":1262},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F04-sockets-and-oop\u002F02-server-socket-flow","The ServerSocket Flow",{"path":2605,"title":2606,"order":1186,"module":1237,"status":1262},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F04-sockets-and-oop\u002F03-oop-for-socket-apps","OOP For Socket Applications",{"path":2608,"title":2609,"order":1184,"module":1244,"status":1262},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F05-multi-client-sockets\u002F01-multi-client-server-shape","Multi-Client Server Shape",{"path":2611,"title":2612,"order":1221,"module":1244,"status":1262},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F05-multi-client-sockets\u002F02-threads-shared-state-and-message-routing","Threads, Shared State, And Message Routing",{"path":2614,"title":2615,"order":1186,"module":1244,"status":1262},"\u002Fjava-advanced-programming\u002Fbook\u002Fmodules\u002F05-multi-client-sockets\u002F03-debugging-socket-programs","Debugging Socket Programs",{"path":2617,"title":2618,"order":1294,"module":1294,"status":1262},"\u002Fjava-advanced-programming\u002Fbook\u002Ftoc","Java Advanced Programming: Table of Contents",{"path":2620,"title":2621,"order":1181,"module":1181,"status":1262},"\u002Fjava-advanced-programming\u002Fpresentations-revised\u002F00-revision-plan","Java Advanced Programming Revision Plan - Superseded Historical Baseline",{"path":2623,"title":2624,"order":1181,"module":1181,"status":1262},"\u002Fjava-advanced-programming\u002Fpresentations-revised\u002F01-20-minute-recording-plan","Java Advanced Programming Recording Plan - Superseded Historical Baseline",{"path":2626,"title":2298,"order":1184,"module":1195,"status":1262},"\u002Fjava-advanced-programming\u002Fpresentations\u002F01-module-1-course-setup\u002F01-basic-cli-commands",{"path":2628,"title":2301,"order":1221,"module":1195,"status":1262},"\u002Fjava-advanced-programming\u002Fpresentations\u002F01-module-1-course-setup\u002F02-install-git-tools",{"path":2630,"title":2304,"order":1186,"module":1195,"status":1262},"\u002Fjava-advanced-programming\u002Fpresentations\u002F01-module-1-course-setup\u002F03-setup-github-ssh",{"path":2632,"title":2307,"order":1197,"module":1195,"status":1262},"\u002Fjava-advanced-programming\u002Fpresentations\u002F01-module-1-course-setup\u002F04-git-commands-prs",{"path":2634,"title":2635,"order":1396,"module":1195,"status":1262},"\u002Fjava-advanced-programming\u002Fpresentations\u002F01-module-1-course-setup\u002F05-course-repo-setup","Course Repository Setup",{"path":2637,"title":2638,"order":1400,"module":1195,"status":1262},"\u002Fjava-advanced-programming\u002Fpresentations\u002F01-module-1-course-setup\u002F06-java-environment-setup","Java Development Environment Setup",{"path":2640,"title":2439,"order":1184,"module":14,"status":1262},"\u002Fjava-advanced-programming\u002Fpresentations\u002F02-module-2-java-basics\u002F01-java-basics",{"path":2642,"title":2442,"order":1221,"module":14,"status":1262},"\u002Fjava-advanced-programming\u002Fpresentations\u002F02-module-2-java-basics\u002F02-flow-control",{"path":2644,"title":2445,"order":1186,"module":14,"status":1262},"\u002Fjava-advanced-programming\u002Fpresentations\u002F02-module-2-java-basics\u002F03-loops",{"path":2646,"title":2448,"order":1197,"module":14,"status":1262},"\u002Fjava-advanced-programming\u002Fpresentations\u002F02-module-2-java-basics\u002F04-collections",{"path":2648,"title":2451,"order":1184,"module":121,"status":1262},"\u002Fjava-advanced-programming\u002Fpresentations\u002F03-module-3-java-io-and-oop\u002F01-user-input",{"path":2650,"title":2454,"order":1221,"module":121,"status":1262},"\u002Fjava-advanced-programming\u002Fpresentations\u002F03-module-3-java-io-and-oop\u002F02-oop-modifiers",{"path":2652,"title":2457,"order":1186,"module":121,"status":1262},"\u002Fjava-advanced-programming\u002Fpresentations\u002F03-module-3-java-io-and-oop\u002F03-file-io",{"path":2654,"title":2460,"order":1197,"module":121,"status":1262},"\u002Fjava-advanced-programming\u002Fpresentations\u002F03-module-3-java-io-and-oop\u002F04-recursion-trees",{"path":2656,"title":2463,"order":1184,"module":1237,"status":1262},"\u002Fjava-advanced-programming\u002Fpresentations\u002F04-module-4-sockets-and-oop\u002F01-sockets-overview",{"path":2658,"title":2466,"order":1221,"module":1237,"status":1262},"\u002Fjava-advanced-programming\u002Fpresentations\u002F04-module-4-sockets-and-oop\u002F02-oop-intermediate",{"path":2660,"title":2469,"order":1186,"module":1237,"status":1262},"\u002Fjava-advanced-programming\u002Fpresentations\u002F04-module-4-sockets-and-oop\u002F03-multi-client-chat-part-1",{"path":2662,"title":2472,"order":1184,"module":1244,"status":1262},"\u002Fjava-advanced-programming\u002Fpresentations\u002F05-module-5-multi-client-sockets\u002F01-multi-client-chat-part-2",{"path":2664,"title":2665,"order":1184,"module":1254,"status":1262},"\u002Fjava-advanced-programming\u002Fpresentations\u002F06-module-6-milestone-2-prep\u002F01-prepare-milestone-2-2025","Java Advanced Programming Preparing for Milestone2 2025",{"path":2667,"title":2668,"order":1221,"module":1254,"status":1262},"\u002Fjava-advanced-programming\u002Fpresentations\u002F06-module-6-milestone-2-prep\u002F02-prepare-milestone-2-2026","Java Advanced Programming Preparing for Milestone 2",{"path":2670,"title":2671,"order":1186,"module":1254,"status":1262},"\u002Fjava-advanced-programming\u002Fpresentations\u002F06-module-6-milestone-2-prep\u002F03-gameserver-ready-check","Java Advanced Programming Milestone 2: GameServer Ready Check",{"path":2673,"title":2481,"order":1184,"module":1258,"status":1262},"\u002Fjava-advanced-programming\u002Fpresentations\u002F07-module-7-game-rooms-and-turns\u002F01-game-rooms-ready-check",{"path":2675,"title":2484,"order":1221,"module":1258,"status":1262},"\u002Fjava-advanced-programming\u002Fpresentations\u002F07-module-7-game-rooms-and-turns\u002F02-round-robin-turns",{"path":2677,"title":2487,"order":1186,"module":1258,"status":1262},"\u002Fjava-advanced-programming\u002Fpresentations\u002F07-module-7-game-rooms-and-turns\u002F03-phase-based-turns",{"path":2679,"title":2490,"order":1197,"module":1258,"status":1262},"\u002Fjava-advanced-programming\u002Fpresentations\u002F07-module-7-game-rooms-and-turns\u002F04-simultaneous-turns",{"path":2681,"title":2493,"order":1396,"module":1258,"status":1262},"\u002Fjava-advanced-programming\u002Fpresentations\u002F07-module-7-game-rooms-and-turns\u002F05-individual-turns",{"path":2683,"title":2496,"order":1184,"module":1340,"status":1262},"\u002Fjava-advanced-programming\u002Fpresentations\u002F08-module-8-grids-cards-and-ui\u002F01-grid-integration",{"path":2685,"title":2499,"order":1221,"module":1340,"status":1262},"\u002Fjava-advanced-programming\u002Fpresentations\u002F08-module-8-grids-cards-and-ui\u002F02-card-integration",{"path":2687,"title":2502,"order":1186,"module":1340,"status":1262},"\u002Fjava-advanced-programming\u002Fpresentations\u002F08-module-8-grids-cards-and-ui\u002F03-equals-6-mini-project",{"path":2689,"title":2505,"order":1197,"module":1340,"status":1262},"\u002Fjava-advanced-programming\u002Fpresentations\u002F08-module-8-grids-cards-and-ui\u002F04-nice-day-for-fishin",{"path":2691,"title":2508,"order":1396,"module":1340,"status":1262},"\u002Fjava-advanced-programming\u002Fpresentations\u002F08-module-8-grids-cards-and-ui\u002F05-java-ui-intro",{"path":2693,"title":2511,"order":1184,"module":1346,"status":1262},"\u002Fjava-advanced-programming\u002Fpresentations\u002F09-module-9-ui-integration\u002F01-ui-integration-2026",{"path":2695,"title":2514,"order":1221,"module":1346,"status":1262},"\u002Fjava-advanced-programming\u002Fpresentations\u002F09-module-9-ui-integration\u002F02-ui-drawing",{"path":2697,"title":2517,"order":1186,"module":1346,"status":1262},"\u002Fjava-advanced-programming\u002Fpresentations\u002F09-module-9-ui-integration\u002F03-baseline-ui-integration",{"path":2699,"title":2520,"order":1197,"module":1346,"status":1262},"\u002Fjava-advanced-programming\u002Fpresentations\u002F09-module-9-ui-integration\u002F04-ndff-ui-integration",{"path":2701,"title":2523,"order":1396,"module":1346,"status":1262},"\u002Fjava-advanced-programming\u002Fpresentations\u002F09-module-9-ui-integration\u002F05-equals-6-ui",{"path":2703,"title":2526,"order":1400,"module":1346,"status":1262},"\u002Fjava-advanced-programming\u002Fpresentations\u002F09-module-9-ui-integration\u002F06-popularity-mini-project",{"path":2705,"title":2529,"order":1184,"module":1184,"status":1262},"\u002Fjava-advanced-programming\u002Fpresentations\u002F10-module-10-wrap-up-and-deployment\u002F01-milestone-3-wrapup",{"path":2707,"title":2532,"order":1221,"module":1184,"status":1262},"\u002Fjava-advanced-programming\u002Fpresentations\u002F10-module-10-wrap-up-and-deployment\u002F02-deploying-java-apps",{"path":2709,"title":2535,"order":1186,"module":1184,"status":1262},"\u002Fjava-advanced-programming\u002Fpresentations\u002F10-module-10-wrap-up-and-deployment\u002F03-ndff-away-spectator",{"path":2711,"title":2712,"order":1221,"module":14,"status":1202},"\u002Fsystems-integration\u002F2e\u002Fpresentations\u002F01-required-architecture-overview","Required Architecture Overview",{"path":2714,"title":2715,"order":1184,"module":1195,"status":1262},"\u002Fsystems-integration\u002F2e\u002Fpresentations\u002F02-team-workflow-and-project-evidence","Team Workflow And Project Evidence",{"path":2717,"title":2718,"order":1186,"module":14,"status":1202},"\u002Fsystems-integration\u002F2e\u002Fpresentations\u002F03-architecture-planning-and-vm-communication-practice","Architecture Planning And VM Communication Practice",{"path":2720,"title":2721,"order":1197,"module":121,"status":1262},"\u002Fsystems-integration\u002F2e\u002Fpresentations\u002F04-role-based-vm-baseline-and-centralized-logging","Role-Based VM Baseline And Logging System",{"path":2723,"title":2724,"order":1396,"module":1237,"status":1202},"\u002Fsystems-integration\u002F2e\u002Fpresentations\u002F05-authentication-and-authorization","Authentication And Authorization Across VMs",{"path":2726,"title":2727,"order":1400,"module":1244,"status":1202},"\u002Fsystems-integration\u002F2e\u002Fpresentations\u002F06-mvp-feature-work","MVP Feature Work",{"path":2729,"title":2730,"order":1195,"module":1294,"status":1202},"\u002Fsystems-integration\u002F2e\u002Fsyllabus\u002Ffall-2026","IT490 - Systems Integration Syllabus",{"path":2732,"title":2733,"order":1195,"module":1294,"status":1202},"\u002Fsystems-integration","Systems Integration",{"path":2735,"title":2736,"order":1181,"module":1181,"status":1262},"\u002Fsystems-integration\u002Fpresentations-revised\u002F00-revision-plan","Systems Integration Revision Plan - Superseded Historical Baseline",{"path":2738,"title":2739,"order":1181,"module":1181,"status":1262},"\u002Fsystems-integration\u002Fpresentations-revised\u002F01-20-minute-recording-plan","Systems Integration Recording Plan - Superseded Historical Baseline",{"path":2741,"title":2712,"order":1184,"module":1195,"status":1202},"\u002Fsystems-integration\u002Fpresentations\u002F01-required-architecture-overview",{"path":2743,"title":2730,"order":1195,"module":1294,"status":1202},"\u002Fsystems-integration\u002Fsyllabus\u002Fsummer-2026",{"path":2745,"title":2746,"order":1181,"module":1181,"status":1181},"\u002Fsystems-integration\u002Fworksheets\u002Fit490-authentication-authorization-core-2026-draft","IT490 Authentication and Authorization Core Milestone (2026)",{"path":2748,"title":2749,"order":1181,"module":1181,"status":1181},"\u002Fsystems-integration\u002Fworksheets\u002Fit490-centralized-logging-milestone-draft","IT490 Centralized Logging Milestone",{"path":2751,"title":2752,"order":1181,"module":1181,"status":1181},"\u002Fsystems-integration\u002Fworksheets\u002Fit490-milestone-3-resiliency-2026-draft","IT490 Milestone 3 - Deployment, Promotion, And Recovery",{"path":2754,"title":2755,"order":1181,"module":1181,"status":1181},"\u002Fsystems-integration\u002Fworksheets\u002Fit490-milestone-4-availability-2026-draft","IT490 Milestone 4 - Availability, Load Balancing, And Recovery",{"path":2757,"title":2758,"order":1221,"module":1294,"status":1262},"\u002Fsystems-integration\u002Fworksheets\u002Fmeeting-minutes-template","IT490 Meeting Minutes Template",{"path":2760,"title":2761,"order":1186,"module":1294,"status":1262},"\u002Fsystems-integration\u002Fworksheets\u002Fproject-changelog-template","IT490 Project Change Log Template",{"path":2763,"title":2764,"order":1184,"module":1294,"status":1262},"\u002Fsystems-integration\u002Fworksheets\u002Fproject-proposal-template","IT490 Project Proposal Template",{"id":4,"title":5,"audience":6,"body":2766,"contentType":1179,"course":1180,"courseId":1181,"description":1182,"estimateBasis":1183,"estimatedDiscussionMinutes":1184,"estimatedLiveMinutes":1185,"estimatedRecordingMinutes":1186,"estimatedTitleSeconds":1181,"estimatedTotalMinutes":1187,"estimatedTraceMinutes":1181,"extension":1188,"meta":3550,"module":1195,"navigation":1196,"order":1197,"path":1198,"presentationRole":1199,"promptAssist":1190,"revision":1200,"semester":1181,"seo":3552,"status":1202,"stem":1203,"syllabus":1181,"tags":3553,"updated":1209,"videoDuration":1181,"videoId":1181,"videoLink":1181,"videoTitle":1181,"week":1195,"__hash__":1210},{"type":8,"value":2767,"toc":3510},[2768,2784,2828,2852,2878,2900,2928,2948,2966,2986,3004,3024,3042,3064,3086,3114,3124,3140,3154,3172,3186,3206,3268,3285,3302,3314,3330,3392,3422,3444,3450,3482],[11,2769,2770,2772],{"id":13,"level":14},[16,2771,19],{"id":18},[21,2773,2774,2776,2778,2780,2782],{},[24,2775,26],{},[24,2777,29],{},[24,2779,32],{},[24,2781,35],{},[24,2783,38],{},[11,2785,2786,2788],{"id":41,"level":14},[16,2787,45],{"id":44},[47,2789,2790,2822],{"gap":49,"left-width":50,"right-width":51},[53,2791,2792,2812],{"v-slot:left":55},[57,2793,2794,2796,2800,2806,2810],{},[24,2795,61],{},[24,2797,64,2798,69],{},[66,2799,68],{},[24,2801,72,2802,76,2804,80],{},[66,2803,75],{},[66,2805,79],{},[24,2807,83,2808,88],{},[85,2809,87],{},[24,2811,91],{},[21,2813,2814,2816],{},[24,2815,96],{},[24,2817,99,2818,103,2820],{},[85,2819,102],{},[85,2821,106],{},[53,2823,2824],{"v-slot:right":55},[110,2825,2826],{},[113,2827],{"alt":115,"src":116,"variant":117},[11,2829,2830,2832,2834,2836,2850],{"id":120,"level":121},[123,2831,126],{"id":125},[110,2833,129],{},[131,2835],{"language":133,"src":134},[21,2837,2838,2842,2846],{},[24,2839,2840,142],{},[85,2841,141],{},[24,2843,2844,148],{},[85,2845,147],{},[24,2847,2848,154],{},[85,2849,153],{},[110,2851,157],{},[11,2853,2854,2856,2858],{"id":160,"level":121},[123,2855,164],{"id":163},[131,2857],{"language":133,"src":167},[21,2859,2860,2862,2866,2868,2872],{},[24,2861,172],{},[24,2863,2864,178],{},[85,2865,177],{},[24,2867,181],{},[24,2869,2870,187],{},[85,2871,186],{},[24,2873,2874,193,2876,197],{},[85,2875,192],{},[85,2877,196],{},[11,2879,2880,2882,2884],{"id":200,"level":14},[16,2881,204],{"id":203},[131,2883],{"language":133,"src":207},[21,2885,2886,2888,2890,2892,2898],{},[24,2887,212],{},[24,2889,215],{},[24,2891,218],{},[24,2893,2894,224,2896,228],{},[85,2895,223],{},[85,2897,227],{},[24,2899,231],{},[11,2901,2902,2904,2906],{"id":234,"level":14},[16,2903,238],{"id":237},[110,2905,241],{},[21,2907,2908,2912,2914],{},[24,2909,246,2910,250],{},[85,2911,249],{},[24,2913,253],{},[24,2915,256,2916,2918],{},[85,2917,259],{},[21,2919,2920,2922],{},[24,2921,264],{},[24,2923,267,2924,271,2926],{},[85,2925,270],{},[85,2927,274],{},[11,2929,2930,2932,2934],{"id":277,"level":121},[123,2931,281],{"id":280},[131,2933],{"language":133,"src":284},[21,2935,2936,2940,2944],{},[24,2937,2938,292],{},[85,2939,291],{},[24,2941,2942,298],{},[85,2943,297],{},[24,2945,2946,304],{},[85,2947,303],{},[11,2949,2950,2952,2954],{"id":307,"level":14},[16,2951,311],{"id":310},[131,2953],{"language":133,"src":314},[21,2955,2956,2958,2962,2964],{},[24,2957,319],{},[24,2959,2960,325],{},[85,2961,324],{},[24,2963,328],{},[24,2965,331],{},[11,2967,2968,2970,2972],{"id":334,"level":121},[123,2969,338],{"id":337},[131,2971],{"language":133,"src":341},[21,2973,2974,2978,2982],{},[24,2975,2976,349],{},[85,2977,348],{},[24,2979,2980,355],{},[85,2981,354],{},[24,2983,358,2984],{},[85,2985,361],{},[11,2987,2988,2990,2992],{"id":364,"level":14},[16,2989,368],{"id":367},[131,2991],{"language":133,"src":371},[21,2993,2994,2996,2998,3002],{},[24,2995,376],{},[24,2997,379],{},[24,2999,3000,385],{},[85,3001,384],{},[24,3003,388],{},[11,3005,3006,3008,3010],{"id":391,"level":14},[16,3007,394],{"id":391},[131,3009],{"language":133,"src":397},[21,3011,3012,3016,3020],{},[24,3013,3014,405],{},[85,3015,404],{},[24,3017,3018,411],{},[85,3019,410],{},[24,3021,414,3022,417],{},[85,3023,186],{},[11,3025,3026,3028,3040],{"id":420,"level":14},[16,3027,424],{"id":423},[21,3029,3030,3034,3036,3038],{},[24,3031,429,3032,250],{},[85,3033,249],{},[24,3035,434],{},[24,3037,437],{},[24,3039,440],{},[131,3041],{"language":133,"src":443},[11,3043,3044,3046,3050,3062],{"id":446,"level":14},[16,3045,450],{"id":449},[110,3047,453,3048,457],{},[85,3049,456],{},[57,3051,3052,3054,3056,3058,3060],{},[24,3053,462],{},[24,3055,465],{},[24,3057,468],{},[24,3059,471],{},[24,3061,474],{},[110,3063,477],{},[11,3065,3066,3068,3070,3072],{"id":480,"level":121},[123,3067,484],{"id":483},[110,3069,487],{},[131,3071],{"language":133,"src":490},[21,3073,3074,3078,3084],{},[24,3075,495,3076,498],{},[85,3077,249],{},[24,3079,501,3080,505,3082],{},[85,3081,504],{},[85,3083,508],{},[24,3085,511],{},[11,3087,3088,3090,3112],{"id":514,"level":121},[123,3089,518],{"id":517},[57,3091,3092,3096,3104,3108],{},[24,3093,523,3094,498],{},[85,3095,456],{},[24,3097,528,3098,531,3100,534,3102],{},[85,3099,504],{},[85,3101,508],{},[85,3103,537],{},[24,3105,540,3106,543],{},[85,3107,456],{},[24,3109,546,3110,550],{},[66,3111,549],{},[110,3113,553],{},[11,3115,3116,3118,3120,3122],{"id":556,"level":121},[123,3117,560],{"id":559},[110,3119,563],{},[131,3121],{"language":133,"src":566},[110,3123,569],{},[11,3125,3126,3128,3130],{"id":572,"level":121},[123,3127,576],{"id":575},[131,3129],{"language":579,"src":580},[21,3131,3132,3134,3138],{},[24,3133,585],{},[24,3135,3136,591],{},[85,3137,590],{},[24,3139,594],{},[11,3141,3142,3144,3146],{"id":597,"level":121},[123,3143,601],{"id":600},[131,3145],{"language":133,"src":604},[21,3147,3148,3150,3152],{},[24,3149,609],{},[24,3151,612],{},[24,3153,615],{},[11,3155,3156,3158,3160,3162],{"id":618,"level":14},[16,3157,622],{"id":621},[110,3159,625],{},[131,3161],{"language":579,"src":628},[21,3163,3164,3168,3170],{},[24,3165,3166,636],{},[85,3167,635],{},[24,3169,639],{},[24,3171,642],{},[11,3173,3174,3176,3184],{"id":645,"level":121},[123,3175,649],{"id":648},[57,3177,3178,3180,3182],{},[24,3179,654],{},[24,3181,657],{},[24,3183,660],{},[131,3185],{"language":133,"src":663},[11,3187,3188,3190],{"id":666,"level":121},[123,3189,670],{"id":669},[21,3191,3192,3196,3204],{},[24,3193,414,3194,677],{},[85,3195,186],{},[24,3197,680,3198,684,3200,688,3202,692],{},[85,3199,683],{},[85,3201,687],{},[85,3203,691],{},[24,3205,695],{},[11,3207,3208,3210,3262,3266],{"id":698,"level":14},[16,3209,702],{"id":701},[704,3211,3212,3222],{},[707,3213,3214],{},[710,3215,3216,3218,3220],{},[713,3217,715],{},[713,3219,718],{},[713,3221,721],{},[723,3223,3224,3234,3244,3252],{},[710,3225,3226,3228,3232],{},[728,3227,730],{},[728,3229,3230],{},[85,3231,735],{},[728,3233,738],{},[710,3235,3236,3238,3242],{},[728,3237,743],{},[728,3239,3240],{},[85,3241,748],{},[728,3243,751],{},[710,3245,3246,3248,3250],{},[728,3247,756],{},[728,3249,759],{},[728,3251,762],{},[710,3253,3254,3256,3260],{},[728,3255,767],{},[728,3257,3258],{},[85,3259,772],{},[728,3261,762],{},[776,3263,3264],{"type":778},[110,3265,781],{},[110,3267,784],{},[11,3269,3270,3272],{"id":787,"level":121},[16,3271,791],{"id":790},[21,3273,3274,3276,3281,3283],{},[24,3275,796],{},[24,3277,799,3278,807],{},[801,3279,806],{"href":803,"rel":3280},[805],[24,3282,810],{},[24,3284,813],{},[11,3286,3287,3289],{"id":816,"level":121},[16,3288,820],{"id":819},[21,3290,3291,3293,3300],{},[24,3292,825],{},[24,3294,828,3295,831,3297,837],{},[85,3296,361],{},[801,3298,836],{"href":834,"rel":3299},[805],[24,3301,840],{},[11,3303,3304,3306],{"id":843,"level":121},[16,3305,847],{"id":846},[21,3307,3308,3310,3312],{},[24,3309,852],{},[24,3311,855],{},[24,3313,858],{},[11,3315,3316,3318],{"id":861,"level":121},[16,3317,865],{"id":864},[21,3319,3320,3322,3326,3328],{},[24,3321,870],{},[24,3323,873,3324,877],{},[85,3325,876],{},[24,3327,855],{},[24,3329,882],{},[11,3331,3332,3334],{"id":885,"level":14},[16,3333,889],{"id":888},[704,3335,3336,3344],{},[707,3337,3338],{},[710,3339,3340,3342],{},[713,3341,898],{},[713,3343,901],{},[723,3345,3346,3364,3374,3382],{},[710,3347,3348,3352],{},[728,3349,3350],{},[85,3351,910],{},[728,3353,414,3354,916,3356,919,3358,923,3360,927,3362,930],{},[85,3355,915],{},[85,3357,177],{},[85,3359,922],{},[85,3361,926],{},[85,3363,186],{},[710,3365,3366,3368],{},[728,3367,935],{},[728,3369,938,3370,941,3372,944],{},[85,3371,186],{},[85,3373,192],{},[710,3375,3376,3378],{},[728,3377,949],{},[728,3379,414,3380,954],{},[85,3381,192],{},[710,3383,3384,3388],{},[728,3385,959,3386],{},[85,3387,186],{},[728,3389,964,3390,967],{},[85,3391,361],{},[11,3393,3394,3396],{"id":970,"level":14},[16,3395,974],{"id":973},[970,3397,3398,3414],{},[53,3399,3400],{"v-slot:questions":55},[57,3401,3402,3406,3410],{},[24,3403,983,3404,987],{},[85,3405,986],{},[24,3407,983,3408,987],{},[85,3409,992],{},[24,3411,983,3412,987],{},[85,3413,404],{},[53,3415,3416,3418,3420],{"v-slot:answers":55},[1000,3417,1002],{},[1000,3419,1005],{},[1000,3421,1008],{},[11,3423,3424,3426],{"id":1011,"level":121},[123,3425,1015],{"id":1014},[970,3427,3428,3438],{},[53,3429,3430],{"v-slot:questions":55},[57,3431,3432,3434],{},[24,3433,1024],{},[24,3435,983,3436,1029],{},[85,3437,410],{},[53,3439,3440,3442],{"v-slot:answers":55},[1000,3441,1034],{},[1000,3443,1037],{},[11,3445,3446,3448],{"id":1040,"level":14},[16,3447,1044],{"id":1043},[1046,3449],{"alt":1048,"src":1049},[11,3451,3452,3454,3468,3470],{"id":1052,"level":14},[16,3453,1056],{"id":1055},[21,3455,3456,3460,3464],{},[24,3457,3458,1064],{},[66,3459,1063],{},[24,3461,3462,1070],{},[66,3463,1069],{},[24,3465,3466,1076],{},[66,3467,1075],{},[110,3469,1079],{},[21,3471,3472,3477],{},[24,3473,3474],{},[801,3475,1088],{"href":1086,"rel":3476},[805],[24,3478,3479],{},[801,3480,1095],{"href":1093,"rel":3481},[805],[11,3483,3484,3486,3508],{"id":1098,"level":14},[16,3485,1101],{"id":1098},[57,3487,3488,3490,3492,3496,3500,3504],{},[24,3489,1106],{},[24,3491,1109],{},[24,3493,1112,3494],{},[85,3495,986],{},[24,3497,1117,3498],{},[85,3499,1120],{},[24,3501,1123,3502],{},[85,3503,1126],{},[24,3505,1129,3506,1133],{},[85,3507,1132],{},[110,3509,1136],{},{"title":55,"searchDepth":1138,"depth":1138,"links":3511},[3512,3513,3517,3518,3521,3524,3525,3526,3527,3534,3538,3539,3540,3541,3542,3543,3544,3547,3548,3549],{"id":18,"depth":1138,"text":19},{"id":44,"depth":1138,"text":45,"children":3514},[3515,3516],{"id":125,"depth":1144,"text":126},{"id":163,"depth":1144,"text":164},{"id":203,"depth":1138,"text":204},{"id":237,"depth":1138,"text":238,"children":3519},[3520],{"id":280,"depth":1144,"text":281},{"id":310,"depth":1138,"text":311,"children":3522},[3523],{"id":337,"depth":1144,"text":338},{"id":367,"depth":1138,"text":368},{"id":391,"depth":1138,"text":394},{"id":423,"depth":1138,"text":424},{"id":449,"depth":1138,"text":450,"children":3528},[3529,3530,3531,3532,3533],{"id":483,"depth":1144,"text":484},{"id":517,"depth":1144,"text":518},{"id":559,"depth":1144,"text":560},{"id":575,"depth":1144,"text":576},{"id":600,"depth":1144,"text":601},{"id":621,"depth":1138,"text":622,"children":3535},[3536,3537],{"id":648,"depth":1144,"text":649},{"id":669,"depth":1144,"text":670},{"id":701,"depth":1138,"text":702},{"id":790,"depth":1138,"text":791},{"id":819,"depth":1138,"text":820},{"id":846,"depth":1138,"text":847},{"id":864,"depth":1138,"text":865},{"id":888,"depth":1138,"text":889},{"id":973,"depth":1138,"text":974,"children":3545},[3546],{"id":1014,"depth":1144,"text":1015},{"id":1043,"depth":1138,"text":1044},{"id":1055,"depth":1138,"text":1056},{"id":1098,"depth":1138,"text":1101},{"requiresLessonBranchCheckpoint":1190,"sourcePresentations":3551,"revisionStatus":1194},[1192,1193],{"title":5,"description":1182},[1205,1206,420,1207,1208],1793199208347]