POPL Assignment 3
In this assignment you will be writing a web program. The assignment is not individual, but may be done in pairs.
Unlike the other programming assignments in the course, you will be able to use a programming language of your choice. If you’re already familiar with web programming, choose a language that you’re comfortable with. If you’re not, the web is a font of meta-information, so you should have little trouble in finding resources about programming for it.
For example, you could use:
If you are unfamiliar with programming web applications, we advice you to choose the first as you will be able to get a lot of support on this technique from us.
You will write the authoring half of a simple blogging tool. (The publishing half that would complete the tool is outside the scope of this assignment.) Although this program is quite simple, it is representative of the core of much larger web software (just as the interpreters we write in this course are themselves quite lean, but represent the core of large programming languages).
Weblogs (“blogs”) are web pages that consist of a list of posts ordered so that newer content is at the top. For our purposes, a post is a title, some text, and a post date. You must assume that the title and body are plain, ASCII-encoded text. In particular, this means that your software will need to escape HTML entities. For example, typing
into a text field should not make any part of the post bold.
The main page of your web application should have:
- A list of posts, sorted correctly by date and spread across multiple pages, such that each page shows at most 10 posts (like the Google search results)
- A form for creating new posts, with a field for the title and a text area for the body
Upon submitting the form, the user should see a preview page that shows the post along with its date. The post is not shown on the main page until the user confirms it from the preview page, either through a link or a form button.
Entered posts need to be persisted to disk and visible from any computer accessing the web application. You may use a database for this purpose, but are also allowed to simply store the posts in files on disk manually. Yet, keep in mind that using a database is probably easier.
Handing in the assignment is somewhat different from the previous assignments. This time, the handin consists of two actions:
- Email a zip file of all the sources for your web application to S.D.Vermolen at tudelft.nl
- Give us a live demonstration of your web application. This demonstration should take about five to ten minutes (depending on the size of your application) and should be given during a practical session. If you cannot make it to the practical session at all, please contact me (Sander).
You have one week to complete the assignment. The deadline is 8 December. This is not an individual assignment, hand in your solution in pairs.
- 03 Dec 2008