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
+```