SpEAK:Spring 2012 Notes Summary


 * Home
 * Semesters
 * Spring 2012

Project Info

 * Documents
 * Notes

Project Summary
If you are reading this, you have inherited the SpEAK project. Congratulations!


 * Current State:

Currently these are the features that we've implemented on the system:


 * 1) Front End
 * 2) Search function - works but needs a better interface
 * 3) Add Function - users can add experiments to the database
 * 4) Admin function just for show.
 * 5) Database


 * Missing Pieces:
 * 1) Users/Authentication
 * 2) Users should be able to login
 * 3) There should be a way to add users to the system - currently user dropdowns/lists are populated from users already in the database .  There is no way to manually add a user except through SQL.
 * 4) User permissions need to be implemented.
 * 5) An uninitialized database is pretty much useless. There has to be some at least one experiment and user in there before anything else will work. This is because the Add function searches for existing users, which are currently tied to experiments.
 * 6) There's little data validation or scrubbing done on the add / search functions, so the project is vulnerable to SQL injection attacks.
 * 7) Much of the controller code in speak/php/controllers/dbExperiment.php is duplicated across functions.  This file could should be refactored/simplified.
 * 1) Much of the controller code in speak/php/controllers/dbExperiment.php is duplicated across functions.  This file could should be refactored/simplified.


 * Quick Guide to important folders/files
 * /html
 * contains html only related related to early look and feel development (deprecated)
 * /php
 * contains the current php files that the web application uses
 * /php/controllers
 * contains 2 files
 * /php/controllers/dbConnect.php
 * handles connecting to the database and
 * /php/controllers/dbExperiment.php
 * contains functions for accessing the database
 * /php/img
 * contains image resources
 * /php/includes
 * contains the html header and footers
 * /sql
 * contains files for initializing the database and populating it with sample data, as well as some diagrams related to the database.

Development Environment
Code base is located in the SpEAK repository on Google Code.

To set up a local development environment, use the following instructions:
 * 1) Install TortoiseSVN
 * 2) Checkout the SpEAK code repository using Tortoise.  Instructions for using tortoise are in the link above.
 * 3) Install XAMPP
 * 4) Edit httpd.conf. On windows, it is in C:\xampp\apache\conf by default.  On Mac/*nix, it is located in /etc/httpd/conf/
 * 5) SpEAK needs a directory tag.  Place this among the other &lt;Directory&gt; tags.
 * 6) SpEAK also needs an Alias tag. This should go inside the &lt;IfModule alias_module&gt; tag.
 * 7) See the code block below for details on what to add.
 * 8) Now it's time to initialize the database
 * 9) In the XAMPP Interface, start the MySQL server
 * 10) Open a command line login to MySQL as root. (  xampp\mysql\bin\mysql.exe -u root -p )
 * 11) Create the tables and speak user using the script speak\sql\createspeaktables.sql ( SOURCE c:\Documents and Settings\user\Desktop\speak\sql\createsqltables.sql )
 * 12) Load sample data ( SOURCE c:\Documents and Settings\user\Desktop\speak\sql\Sample Data Scripts\CombinedSampleData.sql )
 * 13) Start apache in the XAMPP interface
 * 14) Browse to http://localhost/speak

 AllowOverride All Options All Order allow,deny Allow from all  Replacing c:\Documents and Settings\user\Desktop\speak with the location of your local copy of the SpEAK code.
 * Directory Tag

Alias /speak "c:\Documents and Settings\user\Desktop\speak" ScriptAlias /cgi-bin/ "C:/xampp/cgi-bin/" Replacing the url in the first line with the your local SpEAK folder.
 * Alias directive

Production Environment on STEM

 * Working prototype is deployed on Speak Prototype
 * Access to the server is current through the CIS admin department.
 * Future applications will have direct deployment accesss.
 * Current procedure can be found here :- http://www.openitware.org/opencomputing/index.php/Prototype_Staging_on_STEM

COMMENT: Michael Jonas Details of how to access code base and deployment environment can be accessed and how the information is organized would be very helpful to me and the next class.