Content-type: text/html Manpage of PROJECT


Section: Misc. Reference Manual Pages (1L)
Index Return to Main Contents


project - control electronic submission  


project [-dehilnpqrvV] [-ccourse] [-Gcmd] [-gcmd] [name]


Project allows an administrator of a logical group of users to submit files for examination. Project is typically used by course administrators to allow their students to electronically submit coursework for grading.

Project first determines for which class the invoking user is receiving projects. If project does not find the invoker's login name in its database, it aborts. Otherwise, project looks to see what projects this course has and which one is current.

If project is run without options and no name, it displays a help message. If project is initiated without options but with a name, it will look for the submission directory submit (note: the submit directory may have any name) in the home directory of the user. If submit does not exist, project will create it. Project then modifies the file Projlist to enable submissions for the named project and creates a subdirectory in submit with the same name as the project being enabled to receive the submitted projects.

Project names may not have a period in them, but they may contain letters, numbers, or other marks of punctuation.

Project invoked with options but without a name, uses the file Projlist in the submission directory to determine the current project name.

The invoker may use the options below to disable, enable, grade, and remove the submitted files. The submitted files are stored in a tar format file named for the login name that submitted them (see turnin(5)).  


Project, when run by the superuser, will use this course to select the effective user id (or exit nonzero if the user does not exist). Normal users must use this option to administer more than one course.
Disable submissions for the current project.
Enable submissions for the current project and make the current project the default project.
Enable submissions for the current project but do not change the default project.
Execute the given command once for every submitted assignment. Note that the cmd must be in the search path of the invoker. Several escape sequences are used to pass arguments to cmd, all begin with a percent sign (%), they are:
        h       home directory of the instructor
        t       turnin directory name
        p       current project
        d       division/section identifier for the current student
        u       current student's login name
        s       the full path name of the associated tar file
        %       yields a percent sign
Execute the given command once for every division of the class. Note that the cmd must be in the search path of the invoker. See -g above for escape sequences, except %u expands to ``*''. If both -g and -G are given all the -g commands for a division are done before the -G command for that division.
Display a summary of project's options.
Project will ask the user about how they wish to use the electronic submission system and initialize their account. Note that mail is sent to a superuser to do the final configuration, so this command is not immediate.
Print what would be done but don't do it. This option implies the -v option.
Display a status line, including current course/project.
Tar(1) and compress(1) a submission directory in effort to utilize the invoker's disk space efficiently. The project name must be disabled. The project name will be unpacked by the -e, -g, -l, and -G options automatically.
Project confirms the command then removes all project related files from the user's account.
Remove all files associated with the current project. Project will ask you to verify that you really want to do this before proceeding.
Verbose. Print shell commands as they are executed.
Show which version of project is running.



project -e project4
Enable submissions for project4.
project -d parser
Turn off all new submissions for parser.

For an instructor to disable submission for project3 at around midnight on October 15:
       at -m 0005 Oct 15

       at> project -d project3

project -g "echo %u"
List all the login names of the students that have submitted something for the current project.
project -g "gradeit %s"
Grade all submitted files with a shell script named gradeit.

Note that the script is usually passed the full path name to the submitted files which are kept in a single tar format file. The script that is doing the grading will make a temporary directory to unpack and compile the submitted code.

project -g "if [ d1s1 = %d ] ; then gradeit %s ; fi"
Grade only division 1 section 2 with a grading script (gradeit).

The use of the shell if statement in the cmd is to prevent the unnecessary invocation of the grading script. The script, however, could do the comparison itself and exiting if the division/section identifier did not match an ideal one.

project -i
Set up this account to receive submissions. The default submission directory is /cse/courses/cseXXX/turnin, where cseXXX stands for a course code, e.g., 'cse146'.
project -p oldproj
If submissions are disabled for oldproj, the directory oldproj is run through tar(1) and compress(1), resulting in a file named oldproj.tar.Z. The directory oldproj is removed.


Projlist in the submission directory contains the submission status of all projects for the given course.  


While instructors are welcome to use at(1) to turn off the submissions at the given time (e.g., `at 3pm may 24 project -d'), such jobs for the same course should not be scheduled at the same time on different machines, since they would likely access the Projlist file at the same time and mess up its contents.  


at(1), compress(1), environ(7), sh(1), tar(1), turnin(1)




This document was created by man2html, using the manual pages.
Time: 23:46:33 GMT, October 25, 2000