Digital Media Technology (Spring 2009) / Project Work

Description

Project work is supposed to generously complete the technical questions from the exam, and its doing is supposed to be fun.

You can choose a ready-given topic, or suggest your own (similar) one. The topics can also be broken and recombined together, if only the size remains mostly same. Regardless of the topic, you have to chat with the instructor to make it valid, preferably live at the exercise session.

What ever you do, it must be reuseable! (Unless it's a game.) Example: a picture gallery of your own (already taken) pictures won't do, but a gallery for your untaken pictures will do. The idea is to separate the application from its "input".

You can use (JavaScript) libraries, but not "code from the net". Library use must be documented, though!

Course Staffs' Back-end

You can also use the given, simple back-end. It'll offer you generic put+get for key-value-pairs. Using this back-end will almost certainly lead to bigger requirements for your other project work parts.

Back-end's description is available on the back-end page.

Topic/Subject

The topic selection process is supposed to verify that all topics are comparable.

Topic selection paths

  1. Staff-given topic and technical requirements (list below).
  2. (Your own) topic → exercise instructor will give you technical requirements.
  3. (Your own) techniques defined, but a topic is missing → choose one from the list below, or ask instructor for help.

Possible topics

The topics are now artificially categorized into easy, mid- and difficult. This isn't really supposed to affect anyones topic selection, it's just a small hint of their difficulty. An easy topic can easily be hard, if you make it too big.

The techniques mentioned on the topic list are suggestions, you don't have to follow them! Choose the techniques you want to use. Note that you can just fine get full points without any PHP.

Creating "extra" material (images and stuff) might benefit from online generators. These haven't been tested, there might be some good ones too!

Topic
suggested, techniques, for the topic
A short description or an example of topics content/implementation.
Picture gallery
php, html, javascript, ajax
As a server extra, maybe metadata and comments?
Chat
php, html, javascript, ajax
How to route messages to the server and back to all clients?
Guest book
php, html, javascript
Spam filtering?
Form generator
json input, javascript validation
Kinda like a real smallE-form.
Form validator
javascript
A separate brick OR an extra brick to form generator!
Graph generator
svg/css
Histograms/curves/pies from given data.
Video gallery
flash, html
YouTube-embed video wall or maybe your own Flash player?
Content management system
javascript, html, css, rss feed from edits
Really, really small!
Like: when clicking a text paragraph, it'll change into text box, where you can edit and save the text.
RSS reader+combiner
rss, javascript
Your own small Google Reader!
CSS live editor
css, javascript
Kinda like Firebug, but easier and alooot smaller.
Site "enhancer"
javascript
Dynamic link icons based on link type (external vs. internal vs. image vs. etc), TOC generating, etcetc.
CSS image map
css, generate with javascript?
Clean packaging, easy reuse.
http://frankmanno.com/ideas/css-imagemap/
Drawing application
javascript, canvas, svg
Should you use Canvas or SVG?
http://webkit.org/blog/122/webkit-3-10-new-things/
A small game!
javascript, canvas, svg
Maybe use a physics engine library?
interesting technical requirements based on game's nature!
http://box2d-js.sourceforge.net/

Structure

Project work has an XHTML document as a starting page. This page documents the whole work. It's also part of the work, and is graded just as the rest of it. You must define the layout with CSS. This way, every project has an XHTML+CSS part, which is the delicious core substance of this course.

Documenting shall include

Grading is contributed from (in order of relevance)

  1. Separation of structure, layout and functionality.
  2. Reuseability.
  3. Standards compliance (source code validation).
  4. Source code readability, indentation, and commenting when appropriate.
  5. Usability.
  6. If the application is composed of several views/pages, their logical division.
  7. Are user inputs validated, is it possible to hang the application (in less than a minute).
  8. Are different techniques used extensively...
  9. ...and is their usage justified.
  10. Browser independence: the application should work in all mainstream browsers.
  11. Accessibility, if the application is supposed to offer accessible content.

Submission

Submission will be done in CS department's Moodle. Moodle has a assignment submission form for both the first part and the final submission. Copy-paste your project's www address into submission form. We recommend that you make a separate branch copy (to different address) of the project for the first submission, so that you can immediately continue working on it without breaking anything while waiting on instructor's feedback. (It's also nice to see afterwards, what the project's state was back then.)

Introductory submission 5.4.

This first submission is just the project's current (unbroken) state. It won't be graded, and doesn't affect final grading. You'll get useful comments though, by following which you should get good points for sure.

Consider the following perspectives:

Final submission 29.4.

The project is done. Validate your documents. Read the text once through. Check in other browsers (IE). DONE.