13134defbf26a3e0ae0eec77d11fc716c5cf409e
haas/spring2026/unix/projects/wpa0.md
| ... | ... | @@ -0,0 +1,217 @@ |
| 1 | +# CSCS1730 UNIX/Linux Fundamentals |
|
| 2 | + |
|
| 3 | +# PROJECT: WEB PAGE ADVENTURE (wpa0) |
|
| 4 | + |
|
| 5 | +## OBJECTIVE |
|
| 6 | + |
|
| 7 | +One of the original draws of the early World Wide Web, which for most |
|
| 8 | +people seems to have outpaced the general Internet in popularity, was the |
|
| 9 | +ability to host web pages. |
|
| 10 | + |
|
| 11 | +We will be experiencing that very task, through the manual creation of |
|
| 12 | +our own web pages, as well as the necessary UNIX-related backdrop helping |
|
| 13 | +to ensure its operation. |
|
| 14 | + |
|
| 15 | +## URL |
|
| 16 | + |
|
| 17 | +Web pages are written in HTML (HyperText Markup Language), a document |
|
| 18 | +format that web browsers can interpret and render content to the screen. |
|
| 19 | + |
|
| 20 | +They are reached via URLs (Uniform Resource Locators), which inform |
|
| 21 | +various tools of the how, where, and what to retrieve. |
|
| 22 | + |
|
| 23 | +How: what is known as a schema, this is the `http://`, `https://`, and |
|
| 24 | +`ftp://` that far too often is abstracted by the web browser in the |
|
| 25 | +address bar. This doesn't mean it is by any means optional: the web |
|
| 26 | +browser still has to insert that information. |
|
| 27 | + |
|
| 28 | +Where: host, fully-qualified domain name (FQDN), and any resultant path |
|
| 29 | +referencing the location of content on the server |
|
| 30 | + |
|
| 31 | +What: the actual file we wish to retrieve. Often times, if no specific |
|
| 32 | +file is requested, the web server can be configured to serve a default |
|
| 33 | +"**index.html**". |
|
| 34 | + |
|
| 35 | +In our case, we'll be using the Lab46 Web Server to host our own web |
|
| 36 | +content. Piecing together the above how, where, and what, our URL will |
|
| 37 | +resemble the following: |
|
| 38 | + |
|
| 39 | + * https://lab46.g7n.org/~username/wpa0/adventure.html |
|
| 40 | + |
|
| 41 | +Many of you have likely already been interacting with your web URL as a |
|
| 42 | +means of facilitating activities in other assignments. |
|
| 43 | + |
|
| 44 | +The "**~username**", and specifically the tilde (~), is a |
|
| 45 | +server-configured feature indicating your home directory's web directory, |
|
| 46 | +which is **public_html/**, any content put under that directory and made |
|
| 47 | +world readable (**public_html/** itself as well as your parent home |
|
| 48 | +directory must both have world search (aka execute) in order for it to |
|
| 49 | +work as well). You may create subdirectories under **public_html/** and |
|
| 50 | +store web content under them- the same permissions requirements apply. |
|
| 51 | + |
|
| 52 | +In some web-server contexts, your **public_html/** directory might also |
|
| 53 | +be referred to as a sort of "document root". So if you see paths starting |
|
| 54 | +with "/", that does NOT mean the root of the filesystem, but the base of |
|
| 55 | +your **public_html/** directory. |
|
| 56 | + |
|
| 57 | +To reference any subdirectories, merely append the directory name after |
|
| 58 | +the "**~username/**" component of the URL. |
|
| 59 | + |
|
| 60 | +Basic rule of thumb for file permissions is as follows: |
|
| 61 | + |
|
| 62 | + * web pages and image assets need to be world readable |
|
| 63 | + * directories (all directories from the home directory through directory containing your content) need to be world searchable |
|
| 64 | + |
|
| 65 | +## HTML |
|
| 66 | + |
|
| 67 | +As indicated above, web documents intended for viewing in a web browser |
|
| 68 | +are predominantly either written (or ultimately displayed as) HTML. |
|
| 69 | + |
|
| 70 | +HTML uses a set of predefined tags, and a google search for HTML tags |
|
| 71 | +will turn up a seemingly unending list of information on HTML and the |
|
| 72 | +available tags, that information which you will be required to obtain to |
|
| 73 | +complete this project. |
|
| 74 | + |
|
| 75 | +The basic format of many tags is of one of the two formats: |
|
| 76 | + |
|
| 77 | + * pair (open and close): `<p>This identifies a paragraph</p>` |
|
| 78 | + * unary (standalone): `<img src="images/image1.png" />` |
|
| 79 | + |
|
| 80 | +The forward slash (stroke) is used to identify the closing tag, and is |
|
| 81 | +also present at the end of the unary tag. |
|
| 82 | + |
|
| 83 | +Common mistakes are misspelling the tag, or forgetting to close an |
|
| 84 | +opening tag. |
|
| 85 | + |
|
| 86 | +## TASK |
|
| 87 | + |
|
| 88 | +Your task for this project will be to create a series of web pages in the |
|
| 89 | +form of a simple web-based adventure game. |
|
| 90 | + |
|
| 91 | +It will consist of a minimum of 11 pages (1 for start page, 1 for map |
|
| 92 | +page, 9 minimum for world pages-- of course, you can **always** have |
|
| 93 | +more), each one consisting of a room that the viewer can navigate to. |
|
| 94 | + |
|
| 95 | +You get to come up with the theme of your particular world/adventure. Is |
|
| 96 | +it medieval? Futuristic? Based in the Thundercats universe? Filled with |
|
| 97 | +furries? Bronies? Pick something you can have fun with that still |
|
| 98 | +conforms to the requirements. |
|
| 99 | + |
|
| 100 | +Requirements are as follows: |
|
| 101 | + |
|
| 102 | + * all pages and resources are referenced relatively. Nothing should be hardcoded to any host or location. This will allow one to relocate your website to a different location and have it still work with no changes. |
|
| 103 | + * all web site assets are to be stored locally. No external references. |
|
| 104 | + * overall website size should not exceed 12MB. |
|
| 105 | + * starting page in the base of your **public_html/wpa0/** directory with a file named: **adventure.html** |
|
| 106 | + * This page should have an introduction describing the nature of your quest/adventure |
|
| 107 | + * also in the base you should have a **map.html** file which describes the world you've created |
|
| 108 | + * it should provide a "map" allowing a viewer to successfully make it through to the goal and avoid any obstacles |
|
| 109 | + * at least 9 additional pages making up your web-based adventure |
|
| 110 | + * each page must have a set of links to adjoining rooms (methods of connection up to you: left, right, up, down, north, south, etc.) and clicking on the link takes you to that adjoining page |
|
| 111 | + * there needs to be a logical connection of your rooms, so that there can exist a path or paths to enable the viewer to navigate from start to completion |
|
| 112 | + * you need to have (at least) 3 obstacles of some sort (unending abyss, space aliens abduct you, a hungry grue, or whatever fits the overall theme of your adventure). These can constitute dead ends (and if terminal dead ends, should only provide a link back to "start over"). |
|
| 113 | + * each page representing a room in your world needs to have (at minimum): |
|
| 114 | + * links to adjoining rooms (even if a terminal dead end- something to let the user "start over") |
|
| 115 | + * descriptions of what the viewer encounters in each room, providing a narrative enticing the user to continue on this adventure you've crafted for them |
|
| 116 | + * each "room" page needs to be in its own subdirectory beneath **public_html/wpa0/**, and any associated media files located in that same directory. At the very least, you must have a minimum of 3 subdirectories upon which your adventure is organized and correctly references content amongst |
|
| 117 | + * you need to have at least 4 images scattered throughout your world. These can be in the form of a visual aid, augmenting any textual description found on a given page |
|
| 118 | + * You must make use of the following: |
|
| 119 | + * text bolding |
|
| 120 | + * paragraphs |
|
| 121 | + * list |
|
| 122 | + * images |
|
| 123 | + * links |
|
| 124 | + * underline or italics |
|
| 125 | + * table |
|
| 126 | + * font color or size change |
|
| 127 | + |
|
| 128 | +As this would be a great opportunity to better familiarize yourself with |
|
| 129 | +**vi/vim**, I will emphasize the following: |
|
| 130 | + |
|
| 131 | + * I want you to create these files locally on lab46, using **vim**. |
|
| 132 | + * This activity is more a focus on your file manipulation skills in the UNIX environment than a display of your web authoring skills. |
|
| 133 | + * Not only am I not expecting anyone to have any prior web authoring experience, but I am interested in seeing how those with experience "cope" with a lack of any preferred "shiny" authoring tools. |
|
| 134 | + * Again, this isn't an endeavor to see how polished a site you can make, but instead how you deal with the remote and administrative aspects of web design (which frequently finds one interacting with UNIX systems). |
|
| 135 | + |
|
| 136 | +## CURRENT SEMESTER ENDEAVOURS |
|
| 137 | + |
|
| 138 | +Here are the starting pages for the efforts this semester: |
|
| 139 | + |
|
| 140 | + * https://lab46.g7n.org/~cg004474/wpa0/adventure.html |
|
| 141 | + * https://lab46.g7n.org/~ebaile11/wpa0/adventure.html |
|
| 142 | + * https://lab46.g7n.org/~lbailey6/wpa0/adventure.html |
|
| 143 | + * https://lab46.g7n.org/~lwyrick/wpa0/adventure.html |
|
| 144 | + * https://lab46.g7n.org/~qlewis/wpa0/adventure.html |
|
| 145 | + |
|
| 146 | +## PAST ENTRIES |
|
| 147 | + |
|
| 148 | +Here are some prior semester examples, which you can use for inspiration |
|
| 149 | +(but please, no wholesale copying!) |
|
| 150 | + |
|
| 151 | + * https://lab46.g7n.org/~wedge/wpa0/abarbcal/adventure.html |
|
| 152 | + * https://lab46.g7n.org/~bpatrice/wpa0/adventure.html |
|
| 153 | + * https://lab46.g7n.org/~eraffer2/wpa0/adventure.html |
|
| 154 | + * https://lab46.g7n.org/~wedge/wpa0/pgrant3/adventure.html |
|
| 155 | + * https://lab46.g7n.org/~wedge/wpa0/zswartwo/adventure.html |
|
| 156 | + * https://lab46.g7n.org/~wedge/wpa0/nburns/adventure.html |
|
| 157 | + * https://lab46.g7n.org/~memeryjr/wpa0/adventure.html |
|
| 158 | + * https://lab46.g7n.org/~ngugliel/wpa0/adventure.html |
|
| 159 | + * https://lab46.g7n.org/~wedge/wpa0/gsuber/adventure.html |
|
| 160 | + * https://lab46.g7n.org/~kjacks19/wpa0/adventure.html |
|
| 161 | + * https://lab46.g7n.org/~wedge/wpa0/mfee1/adventure.html |
|
| 162 | + * https://lab46.g7n.org/~wedge/wpa0/rsanche1/adventure.html |
|
| 163 | + * https://lab46.g7n.org/~wedge/wpa0/hcordell/adventure.html |
|
| 164 | + * https://lab46.g7n.org/~amelvil2/0x2/adventure.html |
|
| 165 | + * https://lab46.g7n.org/~gsalce/0x1/adventure.html |
|
| 166 | + |
|
| 167 | +## SUBMISSION |
|
| 168 | + |
|
| 169 | +To successfully complete this project, the following criteria must be met: |
|
| 170 | + |
|
| 171 | + * All criteria indicated above |
|
| 172 | + * To signal completion, submit the following to me: |
|
| 173 | + * URL of your starting page in your lab46 web space. |
|
| 174 | + * gzipped tar archive of your entire web page adventure content (including images, all in their respective subdirectories based off **~/public_html/wpa0/** as the base directory). |
|
| 175 | + * archive must preserve your original permissions. |
|
| 176 | + |
|
| 177 | +To submit this project to me using the **submit** tool, run the following |
|
| 178 | +command at your lab46 prompt: |
|
| 179 | + |
|
| 180 | +``` |
|
| 181 | +lab46:~/src/SEMESTER/unix/wpa0$ submit unix wpa0 wpa0.tar.gz https://lab46.g7n.org/~username/adventure.html |
|
| 182 | +Submitting unix project "wpa0": |
|
| 183 | + -> wpa0.tar.gz (OK) |
|
| 184 | + -> https://lab46.g7n.org/~username/adventure.html(OK) |
|
| 185 | + |
|
| 186 | +SUCCESSFULLY SUBMITTED |
|
| 187 | +``` |
|
| 188 | + |
|
| 189 | +You should get some sort of confirmation indicating successful submission |
|
| 190 | +if all went according to plan. If not, check for typos or location |
|
| 191 | +mismatches. |
|
| 192 | + |
|
| 193 | +### RUBRIC |
|
| 194 | + |
|
| 195 | +I'll be evaluating the project based on the following criteria: |
|
| 196 | + |
|
| 197 | +``` |
|
| 198 | +234:wpa0:final tally of results (234/234) |
|
| 199 | +*:wpa0:only relative addressing used [13/13] |
|
| 200 | +*:wpa0:all assets hosted locally on lab46 [13/13] |
|
| 201 | +*:wpa0:overall website is under 12MiB in size [13/13] |
|
| 202 | +*:wpa0:successfully submitted project [13/13] |
|
| 203 | +*:wpa0:correct URL given [13/13] |
|
| 204 | +*:wpa0:has starting page at /adventure.{html,php} [13/13] |
|
| 205 | +*:wpa0:adventure starting page describes adventure [13/13] |
|
| 206 | +*:wpa0:adventure page has link(s) to navigate [13/13] |
|
| 207 | +*:wpa0:has map page at /map.{html,php} [13/13] |
|
| 208 | +*:wpa0:at least 9 additional pages [13/13] |
|
| 209 | +*:wpa0:each additional page has link(s) to navigate [13/13] |
|
| 210 | +*:wpa0:each additional page is connected via available links [13/13] |
|
| 211 | +*:wpa0:adventure contains at least 4 images [13/13] |
|
| 212 | +*:wpa0:adventure pages utilize additional content enhancements [13/13] |
|
| 213 | +*:wpa0:minimum of three subdirectories storing adventure files [13/13] |
|
| 214 | +*:wpa0:page and media located in pertinent directory [13/13] |
|
| 215 | +*:wpa0:web site also stored in private semester repository [13/13] |
|
| 216 | +*:wpa0:web site visitations solicited on the DISCORD for feedback [13/13] |
|
| 217 | +``` |