About This File

Thank you for your interest in deploying this application to your campus or community! We are always happy to share our work and experiences with other institutions, in keeping with the philosophy of openness and transparency in software development.

The source code file includes a completely self-contained version of this application, along with an installer script that will guide you through the initial basic setup steps. All web applications developed by the Technology Services - Student Affairs at Texas A&M University are free and open-source software, and are available for general download upon request.

Note: Keep in mind that this application may contain references to external sites that are specific to the Texas A&M University system, including but not limited to the Central Authentication System (CAS), LDAP server configuration, and centralized API access, which may need to be updated before you can run this application in a different environment. We will do our best to answer any questions related to customizing our web applications, but we offer no warranty or official technical support for the implementation of our applications on other campuses.

System Requirements

This application was built to run on a specific set of servers at the Texas A&M University campus, but because the codebase is powered by a very flexible PHP framework, it has been shown to work with a wide variety of server and database combinations, including:

  • Apache 2.0+ or IIS 7.0+
  • PHP 5.3.0 or greater (PHP 5.2.x will not work)
  • MySQL 5.0 or greater, or Microsoft SQL Server 2005/8

In order to produce "Clean URLs" for each of the application's pages, you are strongly encouraged to set up your web server to support URL rewriting. In Apache, you can enable "mod_rewrite" to automatically gain support for this feature. Apache should pick up the configuration of the included ".htaccess" file without additional setup. In newer versions of IIS, you can download the URL Rewrite Module, then visit its control panel and import the ".htaccess" file from the "web" directory.

Folder Structure

All DF ("DoIT Framework", the PHP core of our systems) applications share a common directory structure, allowing for easy access to certain types of files:

  • /app: The core application code for the site. Almost all important functionality is included within this folder.
    • /app/common: Templates used in many locations across the site.
    • /app/config: System-wide configuration files. Most importantly, the "application.conf.php" file in this folder defines the database connections used by the system and the e-mail address that the site uses to send mail.
    • /app/layouts: Overall site layout templates. These define the HTML that "wraps" around the output of each individual page.
    • /app/library: Framework files used by the application. This folder may be large, as entire copies of frameworks are stored in it for easy reference, but the application itself only uses a small portion of the files contained in it.
    • /app/library_local: Framework files specific to this program.
    • /app/messages: E-mail templates used when the system sends messages.
    • /app/models: These scripts are used by the application to connect to the database and make changes. They define the field structure and provide "helpers" for easy data access.
    • /app/modules: The primary folder for handling incoming requests. All requests are routed to a module ("default" if not specified), then to a controller file, then to an action within that controller. For example, the URL "/admin/users/index" would look inside the "admin" folder for a controller file named "UsersController.php", then trigger the "indexAction" function inside that file. Page-specific templates are also contained in this folder, under the "views" subfolders.
  • /resources: The "raw" versions of graphics and other files used on the site. Most graphics are built in Adobe Fireworks and can be easily modified to fit your branding needs.
  • /tmp: A temporary cache directory where the script stores compiled versions of database metadata and the results of large queries. This directory should be writable by the site.
  • /web: The directory that should be exposed to the web server. Contains all "static" resources (images, CSS, JavaScript), the main index.php file, and the install.php helper file.

Installing Locally

To download the codebase file, click the button below.

Extract this file into its own folder. Note that, for security reasons, the root directory of the file should not be exposed to the web; the "/web" folder should serve as the document root for the site. The files inside this folder will automatically include other files as needed.

We have included a helpful installer script that will check your system to ensure it meets the basic application requirements and automate some of the initial setup work. Visit "http://your-server.name/install.php" to view this script, and follow up on any items that require more action (these items are usually highlighted in yellow).