Resources: Resources and Guidelines

Project Organization

Table of Contents

EDGE Site Structure

Here is a hierarchical display of the contents of the EDGE site. In order to understand this image, it is easiest to begin at the far right of the image, assuming you are a member of one or more projects.

Project Repository
Each project has a repository, and the web site is one element contained inside of the repository. Projects can also store other information in their repository, that has nothing to do with the web site. For example, your team may choose to use the repository to provide version control of your CAD drawings, and simulation results.
Web Space
Within the repository established for each project, the EDGE site administrator has created a web space for each team. Anything that you place within the web space area of your repository can be rendered by the EDGE web site into an internet browser, as long as you follow the site conventions on material content. Anyone with Guest access to your project can view the entire contents of your web space.
Public web
Inside of your Web Space is a subdirectory call public. Any contents that a project Editor places in public may be Observed by anyone who has logged into the EDGE web site. The public contents should never contain confidential or proprietary information.
Private web
Anything contained inside of the web space, but NOT within the public subdirectory is considered to be accessible through a browser, but is only readable by individuals who have at least a Guest level of access. The EDGE adminisitrator creates a private subdirectory, as a convenient places for the memebrs of a team to host a web site for their internal efforts, but not for view by the general public.
Graphical view of the EDGE system

Graphical view of the EDGE system

Super-Project Repository
A super-project has all of the same features of a regular project. A super project also has a subdirectory called Scripts within its repository. Only an EDGE Admin can enable a project to become a Super-project.
The Scripts associated with a super-project must be stored in this subdirectory within the Repository. Each script is typically written in the PHP language, and may access the underlying database, or may provide certain tools and forms to assist project teams with their efforts. As of the start of the 2006-07 academic year, these scripts are fairly rudimentary. We anticipate that the scripts will grow in sophisication over time.
A relational database is used behind the scenes of the EDGE web site, to provide the infra-structure common to all of the projects. Since most of the users of the EDGE web site are Engineers and Engineering students, it may be of interest for you to understand a little bit about this portion of the system. However, as a casual user, the Database should be transparent to you. We are using the MySQL database engine. The database contains many tables. The tables illusrated in the graphic include the Projects, Users, and Bids tables. There are several tables within the database. The strucuture of the tables in the database is very closely linked to the Classes used in the Object Oriented scripts used by the EDGE super-project to interact with the database.
The core of the Engineering Design Guide and Environment is built upon open-source software. Whenever possible, our philosophy is to re-ise open source software and libraries developed elsewhere, and only to develop our own code to hooks other packages to one another, or to create functionality related to the engineering design process that we have not been able to lcoate elsewhere. If you are interested in wokring on the Core development team, your first stop will likely be to be tasked with solving a particular problem in a super-project, and then grow into the core. We use several libraries within the core.
The database engine
The server for hosting the web site
The object oriented scripting language used to couple the database to the server
Lightweight Directory Access Protocol, to interface with the RIT DCE user authentication system
The wikipedia formatting used on all web site within EDGE

Access Control

All access control on the EDGE web site is controlled on a project by project basis. For example, you may be an Observer of a super-project, but an editor of a particular student design project team. A closely related student team may offer you guest privileges to view their internal documents, but not give you access to modify them.

An observer of a project has chosen to list this project in their personal side bar along the left hand side-bar of their browser. An observer can only view content located in the public portion of the web site within the repository. (See the section on EDGE Site Structure below).
A guest has the ability to view all contents of the project repository. Guests can read the public and private areas of the web site, and can read the other contents of the repository that have been placed their by the team.
An editor has all of the access of the Guest, PLUS, an editor can create, or edit (e.g. write privileges) the contents of the project.
The curator of a project can control which versions of the contents are displayed to public view by Observers. The curator of senior design projects is typically the faculy member who is guiding the design team.
The administrator of a project has the ability to grant access control privileges to other people. If you are not currently a guest or an editor of a particular project, you may ask the administrator to grant you that access. The administrator is responsible for the security of the project.


Any information that is About a project is contained in a database, separate from the project's repository. You can review the project title, track affiliation, starting and ending terms, and a brief description at the "About" node for each project.

Home Node

The Home node of a project is the place that visitors to the project will begin. The editors of a project can modify the home node and add links to other information that they wish to share.


Super-projects may have Scripts that users can execute to perform various operations, usually that interact with the underlying database. Scripts are written in the PHP language.


A "track" is a general category of projects to which a student project may belong. Tracks are helpful for students seeking project membership in that they provide a way to look for a project in an area, but without knowing the specific projects. Tracks of projects are generally correlated with the various concentrations and options offered through the departments in the Kate Gleason College of Engineering at RIT.

You can review the list of Project Tracks supported through the program here. Notice that "Tracks" tend to be focused on paticular areas of technology, while "Families" tend to be focused on projects associated with a particular application.

Project Families

A "family" is a group of closely related projects, which are all focused on a particular application. Project families are typically built around areas of common interest held by one or more faculty members in the College, regardless of what discipline or technical background they may be from. Often, a family of projects is closely aligned with a particular technology track.

You can review the list of Project Families supported through the program here.


You can use the script here to filter those projects having a specific starting quarter, or field of technology, etc.

Public Access

A normal project has a publicly-accessable /web/public directory in its repository. The curator of a project controls what is displayed in that public web space through the project's information (the "edit mode" allows curators to view and change the hidden information).

A project starts life with a public revision of -1, which means that there is no publicly available information (although it is still available for guests). When the public web space is populated (with wiki pages and files) by the project's members, the curator can verify that a particular revision is suitable for public viewing and set the project's "public revision".

Public Revision Cases:

Negative number
The public web space of the project is only viewable by guests
Positive number
Any user can view that single revision of the public web space
The public view is always the latest revision of the public web space
NOTICE: This is dangerous in that any editor may change the public view without approval by the curator.