1
Operating Systems and Networks Final Project Benjamin Sanders, MS April 13, 2020
Assignment Description
• For the final exam project in Operating Systems and Networks, you will write a program which interacts with the filesystem of your local computer, and is available to other computers over the same network.
This is effectively an ftp webpage that displays your own computer’s content.
2 Requirements
1. Use the JavaHTTPServer.java code as a starting base for your project.
2. Your code needs to generate an index file to reflect real-time updates to the filesystem on your computer,
upon browser refresh.
You may research real webpages to see how they generate their file records upon refresh. Hint: you should be looking for a specific programming language to perform this, such as PHP.
3. The index file will have a very simple structure. See the example above. It will contain:
(a) A greyed-out link to the parent directory, when the user is at the root.
(b) A click-able link to the parent directory, when the user is not at root.
This link takes the user one page above in the directory hierarchy.
(c) An html table of three columns: Name, Size, and Date Modified.
(d) Each entry in the table will have a click-able link that corresponds to either (I) entering a directory, or (II) downloading a file directly.
(e) If the entry corresponds to a directory, the Size column should be blank.
(f) If the entry corresponds to a file, the Size column will have the size of the file, in kB, rounded to a single decimal place.
1
3
the website over localhost.
5. You will need to access this website, navigate through it, and download a file from it, using a remote
computer on the same network.
Security Notice
(g) (h)
(i)
(j) 4. You
The data for the Date Modified column will be the date and time of the last modification of a given entry.
The data for all three columns is queried from the operating system in real-time, upon browser refresh.
If an item is deleted from the filesystem, when the browser refreshes, it should no longer appear in the website.
If a new item is added to the filesystem, when the browser refreshes, it should now appear in the website.
In the root directory, there needs to be at least the following: i. Three or more files.
ii. Two or more folders.
Each folder needs to contain three or more files.
For a total of: two folders, and nine files, organized as described above. You will need to include at least one *.txt file, and at least one *.jpg file.
You may sort the contents however you would like, or not at all.
do not need to have a domain name. In other words, you can use 127.0.0.1:8080 when accessing
You need to ensure that your website does not have write permissions into your computer. This project should exhibit read permissions only. You may allow your website to exhibit execute permissions as you see fit, depending on how you write your filesystem querying code.
4
What to Turn In
1. Turn in one Word or PDF document, containing the following:
(a) State whether or not the project is working overall.
(b) State individual features of interest that are working.
(c) State features that are not working.
(d) Paste screenshots of all of the webpages generated by your code, for your website.
(e) Paste the entire code of a fully functioning, fully-generated website, including all *.java code, all *.html code, and anything else, such as *.php code.
Note that, for the above, you need to paste both the code that generates the webpages, and the resulting webpages themselves.
(f) State the IP address and port number of the computer that is running the server.
(g) State a given day, within one week after the project deadline, when you will run this server, from 6AM to 6PM, and I will try to access it remotely. You may alternately schedule a day and time with me to test it in real-time, over a video chat.
I will attempt to download the *.jpg file from your website.
The *.jpg file should be a picture of something that would fall into your ‘personal favorite’ category. For example, you might post a movie poster of your favorite movie, or of your favorite TV show, or of your favorite music album, or even a photo of your favorite vacation location.
2