Making a tool to generate the metadata for you

Assignment 4 – September 24, 2006

Due: 8.00 a.m. October 1 , 2006

Language: Any programming language of your choice (but please ask before are using an esoteric one like Haskell or Erlang for instance )

You may use libraries for this assignment. The libraries should help you accomplish the task, not do everything for you. Unfortunately, if you use an obscure library, you might be better off writing everything instead of wasting time trying to figure out how to use that library.

Objectives:

Sub-objectives:

For this assignment, you will store your files in a folder called ‘project4’ in your repository. You must use the Subversion repository for this and future assignments.

This week we will continue working on our portfolio. Last week we saw how we can parse a metadata file that is loosely based on the XML format. However, having to generate that metadata file by hand is not only tedious, but also error prone. If you forget to put the right closing tag, your parser is not liable for parsing your metadata correctly.

There are two main ways you can “automate” the generation of metadata file. You are free to come up with your own but please ask your TA for approval first. It would be good if you post your idea on the newsgroup so that everyone can also benefit from it.

You pick the method that is most convenient for you. We want you to actually use this portfolio generator so it is up to you how you want to generate the metadata for it.

Method one. You can have something like a README that contains nicely formatted information. You will then parse this README file for information like the title of the project, the date of the project and the author of the project. For the files and code, you can just grab all of them from your repository by providing the link to it. Unfortunately, at the moment, the repository is only accessible by the owner and the TAs. So you cannot just link to it. You have to download those files as well. For the version history, you can use the Subversion log from your repository.

If you wish to use approach one, I suggest using a scripting language. There are subversion bindings for accessing Subversion from scripting languages such as Python and Ruby.

Method two. You can create a GUI with text fields that you fill in. Here is an example of something I made up in Project Builder. This is just a sample and it does not conform to any guidelines so it is probably not the best layout.

Try to make the UI as intuitive as possible. Think of how you would like to use it. And even if it does not look as nice as you would like it too, you can certainly improve it as you gained more inspiration.

If you use this method, I suggest getting familiar with a GUI editing tool. While there is certainly nothing wrong with coding everything by hand, why not learn to use a GUI editing tool? There are built-in ones for Visual Studio and Xcode. And for Eclipse, the Visual Editor is not too shabby. While you can use the GUI editor to layout your components, some features such as toolbars might have to be coded by hand.

You may also elect to use a web-based user interface. It might be an even better idea so that you can edit everything about your portfolio online.

For method two, we allow you to work in pairs on the assignment. You should be able to make it work with both your parsers from last week since all you are doing is just generating the metadata file. You have to let your TA know by Wednesday (September 27) who you are working with.

You may also want to improve the presentation of your HTML. There are many sites out there that offer free templates for your web page. You might consider using one of those. An ugly or pretty interface is a very subjective thing, but do show that you made some effort to make it presentable.

Grading: