A) Project: - Repository viewed @ http://phpscheduleit.svn.sourceforge.net/ - Check out url @ https://phpscheduleit.svn.sourceforge.net/svnroot/phpscheduleit/development - To contribute and submit your code please contact "Nick Korbel" - Programming paradigm: toward 100% object oriented php 5, Smarty template engine, LDAP and other plugins - Please include the GPL header on every new source file with your name and date. If you are altering an existing file, just add your name and year. B) Requirements: - Web-server - PHP 5.2 or greater - MySQL x.x or greater C) Getting the development branch running: 1) Create and populate the database run schema.sql run data.sql run sample-data-utf8.sql (optional) 2) Set configuration values update config.php with your local settings D) Development branch technical information: 1) Application structure / All user facing pages /css All css style sheets /Controls All reusable page control objects /lib All application supporting objects /Authorization Login/registration/authorization /Common Non-specific shared objects (localization, dates, smarty, etc) /Config Configuration read/write /Database Database access and abstractions /Domain Domain specific entities, repositories, services, etc /Schedule Non-domain schedule related objects /Server Web server abstractions (sessions, cookies, etc) /Pages Page binding and work flow logic /plugins Contains subdirectories for each type of plugin /Presenters Application logic, page population /scripts All application related javascript files /tests All unit tests /tpl All Smarty page and control templates * Any code outside of these locations should be considered legacy and obsolete 2) Design philosophy [page].php should - define ROOT_DIR - include /Pages/[page]Page.php - construct [page]Page and call PageLoad() Each page should have at least one corresponding template in /tpl Each page should have a corresponding class in /Pages Each Page class should have a corresponding presenter class in /Presenters Logically related code should be grouped in a directory with a "namespace.php" file, which requires all files in that directory All classes should have good unit test coverage (level of coverage is up to the developer)