Difference between revisions of "SpEAK:Home"

From Openitware
Jump to: navigation, search
(Production Environment on STEM: Fixed broken link.)
 
(36 intermediate revisions by 6 users not shown)
Line 1: Line 1:
 +
'''SpEAK Pages'''
 +
*[Home]
 +
*[[SpEAK:Semesters| Semesters]] - Project Work by Semester
 +
__NOTOC__
 +
 +
==SpEAK (<b>Sp</b>eech <b>E</b>xperiment <b>A</b>ccessible <b>K</b>nowledge)==
 
[[File:speechLab1.jpg|400px|thumb|right|Home Page]]
 
[[File:speechLab1.jpg|400px|thumb|right|Home Page]]
= Project Description =
+
SpEAK is a project to develop an online database for accessing knowledge acquired during experimentation in speech research.  
''The project description states the  purpose of the project, introduces the project's sponsor, and summarizes in an abstract what problem the project solves and why the problem is important, what the project will accomplish and how it will do so, and what results are expected and what implications these results have. The role assumed by the developer that is responsible for the project description is '''System Analyst'''.
+
  
==Purpose==
+
==Description==
  
To create a database that will store speech recordings for the SpEAK Capstone project that is being conducted at UNH Manchester . The SpEAK Capstone project is going to be a top of the line voice recognition software.Their is going to be multiple uses for the recordings including system testing, collaboration and integration.
+
The system will enable researchers to create, access and modify experimental knowledge capturing summary, explanation and results of both successful and unsuccessful speech experiments being conducted at UNH Manchester.  
  
==Intended users==
+
==Project Summary==
  
*Students
+
If you are reading this, you have inherited the SpEAK project. Congratulations!
*Faculty  
+
  
==Project scope==
+
;Current State:
  
The project scoop is to deliver a working error free relational database conforming to the project specifications, by 05/12/2011.
+
Currently these are the features that we've implemented on the system:
  
==References==
+
#Front End
 +
## Search function - works but needs a better interface
 +
## Add Function - users can add experiments to the database
 +
## Admin function just for show.
 +
#Database
 +
##...
  
SpEAK Capstone project UNH Manchester  
+
;Missing Pieces:
 +
# Users/Authentication
 +
## Users should be able to login
 +
## 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.
 +
## User permissions need to be implemented.
 +
## ...
 +
# 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.
 +
# There's little data validation or scrubbing done on the add / search functions, so the project is vulnerable to [http://en.wikipedia.org/wiki/SQL_injection SQL injection attacks].
 +
# Much of the controller code in speak/php/controllers/dbExperiment.php is duplicated across functions. This file could should be refactored/simplified.
  
==Sponsor Profile==
+
; 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.
  
Proxy client: kcs37@cisunix.unh.edu
+
===Development Environment===
  
==Abstract==
+
Code base is located in the [https://code.google.com/p/speak/ SpEAK repository] on Google Code.
;Title: "SpEAK" Sp-eech Experiment Accessible Knowledge
+
  
;Authors: Jeff Knight, Andy O'Brien, Paskale Odongo, and Mike Tierney
+
To set up a local development environment, use the following instructions:
 +
# Install [http://foss.unh.edu/opencomputing/index.php/TortoiseSVN TortoiseSVN]
 +
# Checkout the SpEAK code repository using Tortoise.  Instructions for using tortoise are in the link above.
 +
# Install [http://foss.unh.edu/opencomputing/index.php/XAMPP XAMPP]
 +
# Edit httpd.conf. On windows, it is in C:\xampp\apache\conf by default.  On Mac/*nix, it is located in /etc/httpd/conf/
 +
## SpEAK needs a directory tag.  Place this among the other &lt;Directory&gt; tags.
 +
## SpEAK also needs an Alias tag. This should go inside the &lt;IfModule alias_module&gt; tag.
 +
## See the code block below for details on what to add.
 +
# Now it's time to initialize the database
 +
## In the XAMPP Interface, start the MySQL server
 +
## Open a command line login to MySQL as root. (  xampp\mysql\bin\mysql.exe -u root -p )
 +
## Create the tables and speak user using the script speak\sql\createspeaktables.sql ( SOURCE c:\Documents and Settings\user\Desktop\speak\sql\createsqltables.sql )
 +
## Load sample data ( SOURCE c:\Documents and Settings\user\Desktop\speak\sql\Sample Data Scripts\CombinedSampleData.sql )
 +
# Start apache in the XAMPP interface
 +
# Browse to http://localhost/speak
  
;Project Sponsor: Capstone Course at the University of New Hampshire at Manchester
 
  
===Motivation===
+
; Directory Tag
The Capstone Project at the UNHM has the extremely complex task of designing speech recognition software. Implementing this software requires performing hundreds of tedious experiments to record sounds and other information needed for its development. Currently the Capstone program has no easy way of storing and organizing these performed experiments for future use.
+
<Directory "c:\Documents and Settings\user\Desktop\speak">
 +
    AllowOverride All
 +
    Options All
 +
    Order allow,deny
 +
    Allow from all
 +
</Directory>
 +
Replacing c:\Documents and Settings\user\Desktop\speak with the location of your local copy of the SpEAK code.
  
===Objectives===
+
; Alias directive
The Speech Lab team is developing a database in the MySQL programming language for Capstone to store and run the queries on their experiments they so desperately need.  
+
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.
  
===Methods===
+
=== Software Configuration Management ===
SpEAK is utilizing Google Code project hosting website to act as a central repository for their developed code. Google Code will be a very easy method of version control for the project. The group is communicating and sharing their work products via Google Group pages, and an online Wiki site.
+
*Code base includes Tag releases from the previous semesters.  
 +
*Information on how to work with development BRANCHES and create TAG releases from the development code case can be found here : -
 +
** http://www.openitware.org/opencomputing/index.php/Software_Configuration_Management
  
===Results===
+
===Production Environment on STEM===
Results of the SpEAK project will incorporate an operational database capable of installing itself onto the user's machine via a script file, and an online wiki site describing the process of development.
+
 
+
===Conclusion===
+
 
+
=Activities=
+
 
+
==Team Members Roles and Responsibilities==
+
'''''Note from Mihaela.'''The project is missing the following. Project purpose and sponsor profile in the Project Description and Conclusion section of the Abstract; System requirements; Database Analysis; brief descriptions of the diagrams (relational model and parent-of and child-of dependency diagrams), definitions of the relational model entities and attributes and summary of the relational model relationships.''
+
 
+
''I'm assigning these tasks as follows. Paskale writes the system requirements and revise project description. Andy writes the database analysis (conceptual model diagram with description and definitions of the conceptual model entities) and a summary of the relational model relationships. Mike writes the other diagrams' descriptions and the definitions of the relational model entities and attributes. Everyone writes SQL queries. Add SQL programmer to your primary roles. Write your queries in a file whose name is your last name and extension .sql. Place the file in your local copy of the repository, add it to version control (use Add command in TortoiseSVN), and commit (do not forget the log message).
+
 
+
;[[User:paskey99|Paskale Odongo]]
+
:Primary role: System Analyst, SQL Progrmmer and Reviewer
+
:Secondary role: Team Leader
+
:Responsibilities: Project description, system requirements, meeting agendas and minutes on google group/mediawiki
+
 
+
;[[User:jwi35|Jeff Knight]] 
+
:Primary Role: DB Designer, SQL Programmer and Reviewer
+
:Secondary Role:
+
:Responsibilities: Database design and updates to create tables SQL script
+
 
+
;[[User:skiman2007|Andrew O'Brien]]
+
:Primary Role: SQL Programmer
+
:Secondary Role: IT Support
+
:Responsibilities: Implementation (SQL script to create the database tables)
+
 
+
;[[User:tierneytm|Mike Tierney]]
+
:Primary Role: SQL Programmer
+
:Secondary Role: Wiki Editor
+
:Responsibilities: Implementation (SQL script to populate the database with sample data)
+
 
+
==Team Meetings==
+
;[[SpEAK:Meetings | Team Meetings Page]]<br>
+
 
+
=Work Products=
+
==System Requirements==
+
''This phase corresponds to specifying the functional and non-functional features that the prototype system will have. The work products of this phase are a list of functional requirements (what the system will do for the user) and a list of non-functional requirements (what constraints apply to the system with regard to the system license, infrastructure, and operation). The developers responsible for these work products assumes the role of '''System Analyst.'''''
+
 
+
===Current System===
+
 
+
There is no current system in place to store theses experiments. The proposed system will have a database subsystem that manages speech experiments.
+
 
+
===Database Subsystem Features===
+
 
+
The database subsystem will manage speech experiments data. Once completed, the SpEAk back-end database will give its users the power to store, manage, and deliver important speech research information.
+
 
+
===User Interactions===
+
There are three types of users who will interact with the database subsystem: viewer, author, and administrator. Based on the user type, the following interactions will be supported by the database subsystem:
+
 
+
'''''Viewer'''''
+
* Can view all experiments
+
* Cannot edit or delete experiments
+
* Can not create experiments 
+
 
+
'''''Author'''''
+
* Can view all experiments
+
* Can create experiment
+
* Can edit the experiments they have created
+
* Can not edit other users' experiments
+
* Can delete their own experiments
+
* Cannot delete other users' experiments
+
 
+
'''''Administrator'''''
+
* Can view all experiments
+
* Can create an experiment
+
* Can edit any experiment
+
* Can delete any experiment
+
 
+
===GUI Functionality===
+
SpEAK system will have a front-end that support user interactions. A preliminary outline of the SpEAK's GUI has four tabs, '''View''', '''New''', '''User''', and '''Admin''', with the following functionality:
+
 
+
'''''View Tab'''
+
* Experiment# (Auto generated)
+
* Experiment Title
+
* Date created
+
* Date modified
+
* Authors
+
 
+
'''''New Tab'''
+
* Experiment # (Auto generated)
+
* Authors
+
* Create Date
+
* Last modified date
+
* Description
+
* Attachments
+
* Save button (front end)
+
 
+
'''''User Tab'''
+
* This is the page that you would use to login. It would ask for Login Name and password( Front End ).
+
 
+
'''''Admin Tab'''
+
* Database must be able to handle multiple users at a time( Front End ).
+
* Webpage should be accessible to anyone wanting to view experiments( Front End ).
+
* However some experiments might need to be hidden from viewer who are not part of the project, so there should be 3 privelege levels( Front End ):
+
** Any one can see experiments
+
** Only team members can see experiments
+
** Admin level, administrators who can add team members.
+
 
+
===Operating Environment===
+
 
+
The database subsystem will be operating on the MySQL database management system. MySQL runs as a server application that provides multi-user access to a number of databases. Client utilities, such as '''mysql''', '''mysqladmin''', '''mysqldump''', and others are used to create, query, and administer databases in the MySQL system. The database is written in the Structured Query Language (SQL). MySQL runs on virtually all platforms, including Linux, UNIX, and Windows.
+
 
+
==Database Analysis==
+
''This phase includes the conceptual modeling tasks. The work product of this phase is a description of the database conceptual model. The developers responsible for these tasks assume the role of '''DB Analyst'''''.
+
 
+
*[[Speak:conceptual model | conceptual model]]
+
*[[Speak:CreateTable1 | Create Table1 sql code]]
+
*[[Speak:CreateTable2 | Create Table2 sql code]]
+
*[[Speak:CreateTable3 | Create Table3 sql code]]
+
*[[Speak:CreateTable4 | Create Table4 sql code]]
+
*[[Speak:Speak sql | speak sql]]
+
 
+
==Database Design==
+
''This phase corresponds to the logical modeling of the database. The work products of this phase are: detailed description of the database entities, attributes, relationships, and constraints; diagrams for the database model and dependency graphs that show the order in which tables are created and deleted; justification of the normalization forms that apply to the database design. The developers responsible for these tasks assume the role of '''DB Designer''.
+
 
+
*[[Speak:UML Class Diagram | Relational Model Diagram]]
+
*[[Speak:Parent Child Diagram | Parent-of Dependency Diagram]]
+
*[[Speak:Child Parent Diagram | Child-of Dependency Diagram]]
+
*[[Speak:Normalization Document v1.0 | Normalization Document v1.0]]
+
 
+
==Implementation==
+
''This phase corresponds to the physical modeling of the database. The work products of this phase are SQL scripts that create the database, populate it with sample data, and query the database. The developers responsible for these tasks assume the role of '''SQL Programmer'''''.
+
 
+
===Code Base===
+
SQL scripts and design diagrams are stored on the project's central repository on the '''Google Code''' site at '''[http://code.google.com/p/speak/ speak]'''.
+
 
+
===Jeff's Query Examples===
+
 
+
Finds how many authors are from UNH and orders them by last name.
+
 
+
<big>
+
<pre>
+
+--------+----------+-----------+------------+----------------------+--------+
+
| UserID | LastName | FirstName | Phone      | email                | Campus |
+
+--------+----------+-----------+------------+----------------------+--------+
+
|      6 | Archer  | Jim      | 6039992343 | archy@yahoo.com      | UNH    |
+
|      7 | Barilla  | Jose      | 6037512343 | fritobandito@yahoo.c | UNH    |
+
|      5 | Knight  | Jeff      | 6038882343 | dawhiteballer@yahoo. | UNH    |
+
|      3 | Odongo  | Paskale  | 6034662843 | pasky@yahoo.com      | UNH    |
+
+--------+----------+-----------+------------+----------------------+--------+
+
4 rows in set (0.06 sec)
+
</pre>
+
</big>
+
 
+
Displays all experiments from a specific author by joining the author and experiment tables.
+
<big>
+
<pre>
+
+--------+----------+-----------+------------------+
+
| UserID | LastName | FirstName | ExperimentNumber |
+
+--------+----------+-----------+------------------+
+
|      2 | Jonas    | Michael  |              101 |
+
|      2 | Jonas    | Michael  |              102 |
+
|      2 | Jonas    | Michael  |              104 |
+
|      2 | Jonas    | Michael  |              105 |
+
+--------+----------+-----------+------------------+
+
4 rows in set (0.00 sec)
+
 
+
=== Paskale Odongo Query Examples ===
+
 
+
Displays all experiments from the experiment table.
+
 
+
+------------------+--------+--------+-------------+--------------+---------------+
+
| ExperimentNumber | UserID | Title  | DateCreated | DateModified | Description  |
+
+------------------+--------+--------+-------------+--------------+---------------+
+
|              101 |      1 | Ears  | 2011-04-24  | 2011-04-25  | super awesome |
+
|              102 |      2 | Music  | 2011-05-24  | 2011-06-25  | was great    |
+
|              103 |      3 | Listen | 2011-07-24  | 2011-08-25  | wow          |
+
|              104 |      4 | Talk  | 2011-03-24  | 2011-06-25  | holy cow      |
+
|              105 |    15 | Yell  | 2011-02-24  | 2011-07-25  | stunning      |
+
+------------------+--------+--------+-------------+--------------+---------------+
+
5 rows in set (0.00 sec)
+
 
+
Displays all experiment admin from the experiment admin table.
+
 
+
+--------+----------+-----------+--------------+--------------------+--------+
+
| UserID | LastName | FirstName | Phone        | email              | Campus |
+
+--------+----------+-----------+--------------+--------------------+--------+
+
|      3 | Allan    | Ray      | 603-584-5485 | rayallan@unh.edu  | Durham |
+
|      4 | Pierce  | Paul      | 603-545-8125 | paulpierce@unh.edu | Durham |
+
+--------+----------+-----------+--------------+--------------------+--------+
+
2 rows in set (0.00 sec)
+
 
+
Displays all experiment attachments from experment admin table.
+
 
+
+------------------+--------------+----------------+
+
| ExperimentNumber | AttachmentID | AttachmentName |
+
+------------------+--------------+----------------+
+
|              101 |          15 | super15        |
+
+------------------+--------------+----------------+
+
1 row in set (0.00 sec)
+
 
+
Displays all experiment URL from experiment_url table.
+
 
+
+------------------+-------+---------------+
+
| ExperimentNumber | UrlID | UrlName      |
+
+------------------+-------+---------------+
+
|              101 |    45 | www.music.com |
+
+------------------+-------+---------------+
+
1 row in set (0.00 sec)
+
  
 +
*Working prototype is deployed on [http://STEM.UNH.EDU/speak 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/resources/index.php/Prototype_Staging_on_STEM
  
 +
==References==
  
</pre>
+
[[Speech:Home| Speech project at UNH Manchester]] 
</big>
+
  
  
 
[[Category:Project]]
 
[[Category:Project]]

Latest revision as of 07:23, 22 June 2013

SpEAK Pages


SpEAK (Speech Experiment Accessible Knowledge)

Home Page

SpEAK is a project to develop an online database for accessing knowledge acquired during experimentation in speech research.

Description

The system will enable researchers to create, access and modify experimental knowledge capturing summary, explanation and results of both successful and unsuccessful speech experiments being conducted at UNH Manchester.

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
    1. Search function - works but needs a better interface
    2. Add Function - users can add experiments to the database
    3. Admin function just for show.
  2. Database
    1. ...
Missing Pieces
  1. Users/Authentication
    1. Users should be able to login
    2. 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.
    3. User permissions need to be implemented.
    4. ...
  2. 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.
  3. There's little data validation or scrubbing done on the add / search functions, so the project is vulnerable to SQL injection attacks.
  4. 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/
    1. SpEAK needs a directory tag. Place this among the other <Directory> tags.
    2. SpEAK also needs an Alias tag. This should go inside the <IfModule alias_module> tag.
    3. See the code block below for details on what to add.
  5. Now it's time to initialize the database
    1. In the XAMPP Interface, start the MySQL server
    2. Open a command line login to MySQL as root. ( xampp\mysql\bin\mysql.exe -u root -p )
    3. Create the tables and speak user using the script speak\sql\createspeaktables.sql ( SOURCE c:\Documents and Settings\user\Desktop\speak\sql\createsqltables.sql )
    4. Load sample data ( SOURCE c:\Documents and Settings\user\Desktop\speak\sql\Sample Data Scripts\CombinedSampleData.sql )
  6. Start apache in the XAMPP interface
  7. Browse to http://localhost/speak


Directory Tag
<Directory "c:\Documents and Settings\user\Desktop\speak">
    AllowOverride All
    Options All
    Order allow,deny
    Allow from all
</Directory>

Replacing c:\Documents and Settings\user\Desktop\speak with the location of your local copy of the SpEAK code.

Alias directive
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.

Software Configuration Management

Production Environment on STEM

References

Speech project at UNH Manchester