Software Engineering Alternate Assignment


This exercize will be in lieu of our regular thursday class on 4/19/2007. In it you will learn to use the lab environment here in the lab. It is intended to take somewhat less than the time we normally spend in class.


This project is best done as a group, but can be done as individuals.

First go to the lab and sign up for one of the four divisions of labor for the project. The team whose project was selected should wait till each group has made a selection or Friday at 5pm, which ever comes first.

We will be implementing The list manager design since there were some concerns about the learning curve in learning new languages in the Niche Networker design.

Next go to one of the client machines (one of the old ugly white computers) and login using your group's username and password. (hit return if the machine and monitor are on and it doesn't seem to be responding)

Congratulations, you've logged on and are probobly staring at an ugly command line. first make sure there was no error message about not being able to mount /NFS. If there was, send me the computer's name (its on the top of the computer near the front) and move to another computer.

Now if there was no errors, you don't want to be working solely from the command line terminal. Thats no fun. Type startx at the prompt and hit return. The windowing system will now start up. These are old machines, this is a good time to get to know your groupmates better, catch up on sports scorse or otherwise  entertain yourselves for a minute or two.

Now you should be staring at a screen with a standard menu in the lower left and some icons on the desktop. Click the firefox icon. You won't be able to get out of the local network (this is a quarantined network since we have an experimental webserver) So you can either hit stop or wait for it to time out.  Now go to the website that we will actually be working with. The server's ip address is

so go to

This will bring up a default page that doesn't do anything that I've put there are a place holder. Now you just need to fix this and you'll be all set ;-)

In this class we will be using a version control system called svn. There are both command line and graphical clients for this version control system. The graphical clients that I've tried for the older version of linux in the lab now have been a bit lacking. So we'll have to use the command line client unless someone wants to find another graphical client that I can install that will work nicely.

So open a command terminal. You can do this by clicking on the little computer monitor icon on the bar at the bottom of your screen. I strongly encourage you to change the default editor invoked. By default, it is set to vim, which is obtuse to use unless you are a system administrator or have been using unix since the '80s.


export EDITOR=xemacs

to use xemacs, a graphical text and code editor.

For a full set of svn documentation see the svn manual. I'll walk you through some of the most important commands below though.

Central to these sorts of version control systems is the notion of a repository: a place where all the files for a project will be stored. I've already created a repository in the directory structure mounted from the server /NFS. The repository is in /NSF/svn

If you want to begin working on a project, you will need to first check the project out. To do that, you need to move to the directory that will be the parent of your project directory. (perhaps your home directory) Use the cd command to change your working directory. (if you are ever not sure what a command does, you can type 'man <command>' to get a man page. Omit the quotes and replace <command> with the name of your actual command.)

Once you are in the place you want to work in, checkout the existing project using the checkout command in svn telling svn where the server repository is. In this case

svn checkout file:///NFS/svn

this will add a new subdirectory to your current directory called svn (perhaps a poor project name, but it will do for now.) You won't need to do this again.

Now move into your svn folder/directory. You will see a file called index.html (and perhaps more files if you are not one of the first groups).

One of the things that you'll need to do is add files into the repository as you create them. So create a file. An easy way to do this is to open xemacs and try to open a file that doesn't exist. So open xemacs (type it at the command line) and then do a <file><open> and type in GroupX.txt replacing the X with your group number. Type in each of the members of your team who are in the room and save the file. Now go back to the command line and add this file to the repository.

svn add GroupX.txt
(replacing the X with your group number once again of course)

This tells the repository that this file is file is one you want it to pay attention to, but doesn't actually upload the file to the server repository. To upload the file you'll need to use the commit command.

svn commit

This will bring up xemacs for you to add a comment on the file you are adding. Save the file and quite xemacs. svn will then check the file in. Whenever you want to commit your files to the repository, just use svn commit and add a comment describing the changes you've made since the last commit.

Whenever you come in for the day, there is a good chance that other groups have done some work while you were not there. To get all of the file that have changed, use the update command in svn

svn update

This will give you the most up to date copy of all of the files in the repository.

After you have done this tutorial, you are ready to do the project so get started.