Creating a SIFTER Project

Creating a SIFTER project is pretty simple. You must first decide on a project name. Project names will come naturally, as you already have some name for the analyses you are doing. The name might be something like progeria or glaucoma or the like.

The name is important as it serves as both the realm name for the server and client, as well as the name of a directory on the web server and therefore in the URL people use when referencing the project with their web browser.

The project name should contain no blanks and consist only of alpha-numeric characters and '-' and '_'. Using unusual or special characters may cause things to fail when scripts refer to the project name.

Your Database Administrator (DBA) will need to create a database for the project. The details important to your DBA will include the number of maps and results you intend to load and the size of the results.

It's time to create a project. Lines you enter are shown in red and commentary is shown in blue. Also note that some of the following was reformatted to make it easier to add comments. If you encounter problems, you might want to look at When the Demo Goes Wrong for some ideas.

Creating a project - Step One

cd [whereever]/sifter-1.00

                    Start in SIFTER distribution directory

perl -w perl/scripts/createproject.pl 

                    If your database is Sybase, you'll want the environment
                    varibale SYBASE set. You may also need to specify a special
                    Perl library directory. If so, set these environment
                    variables or specify something like this:
                      (PERL5LIB=blahblah; export PERL5LIB; \
                         perl -w perl/scripts/createproject.pl)

+----------------------------------------------------
|   Create a SIFTER Project
+----------------------------------------------------
Here are some things we need from you:

(1) The name of the project to be created.

(2) You need to have created a Sybase database where the SIFTER
data will be stored.
You need to know:
    * the complete DSN for your database (an example is provided), 
    * the database userid
    * the password for this database userid

(3) We need to know a web server where the SIFTER project will 
accessed. You must tell us the directory in HTDOCS where the
files will be installed.

(4) If the URL you provided in (3) requires a userid/password
to access the data, you will need to know
    * web userid to use
    * web password to use

You will need to provide two directories where some of this
configuration information can be saved. We'll ask for;

(5a) A directory where the SIFTER client code can find the
URL provided in (4). This should be a directory that is
globally readable. This is only used by people who will
load data into the database. It is not required by analysts
who will access the data using a web browser.

(5b) A directory where a CGI running on the web server (from (3))
can read the database informations. Be careful here because this
information contains a database userid and password, so you
want it protected so that the web server can read it, but
not by anyone else except administrators.

Are you ready to create the SIFTER project?
Enter y or n:
y 
                    Avoid this with the -quiet option the next time.
                    Do read it at least once so you know what's needed.
                    No point in going further if you don't know the
                    answers to what's going to be asked.

Provide the name of this project. This also is your realm name:: MYPROJ

                    The project name is very important as it
                    serves as the realm names for the server
                    and client as well as the directory name 
                    in HTDOCS. Changing this later is not
                    going to be easy. This is case sensitive.

Provide the database DSN (e.g. 'dbi:Sybase:server=my_host;database=sifter_db'): 
dbi:Sybase:server=SOMESERVER;database=SOMEDATABASE

                    Your DBA can tell you the Sybase 'server' and
                    'database' values.

Provide the database userid: DBUSERID
Provide the database password for this userid: DBPASSWORD

                    Again your DBA can tell you database user and
                    password that was defined.

Provide the host name of a web server where MYPROJ will run: www.YOURDOMAIN.COM

                    Your web master can tell you what this should
                    be if you don't know it.

Provide the protocol to access 'www.YOURDOMAIN.com' (https or enter for http): https

                    Again, ask your web master can tell you what
                    this should be if you don't know it.

Enter any special port in the URL to access 'www.YOURDOMAIN.com' (NNNN or enter): 

                    Most times you should just press enter. Ask
                    your web master if you don't know.

If 'https://www.YOURDOMAIN.com/MYPROJ' is password protected,
    provide the userid or press enter for none: MYUSER

                    If accessing the URL mentioned two lines above
                    will required a password, provide the userid
                    here. Again, ask your web master.

Provide the password or press enter for none: MYPASSWORD

                    Likewise.

Provide the full path to the HTDOCS for 'https://www.YOURDOMAIN.com': /home/apache/HTDOCS

                    This is the directory where your web server 
                    documents are kept. We need to create a directory
                    'MYPROJ' here and copy files so the project works.
                    Ask your web master if you don't know this.

We need a directory where the server information can be saved.
This directory must be readable by a CGI runnning on
    https://www.YOURDOMAIN.com/MYPROJ
Enter directory path: /SOMEPATH/sifter/server

                    This is a directory where the database information
                    will be saved. This is a directory where the file
                    'MYPROJ' will be created (since the name of this
                    project is 'MYPROJ').

We need a directory where the client information can be saved.
This directory should be world readable. Enter directory path: /SOMEPATH/sifter/client

                    This is a directory where the URL for the project
                    is saved. This is a directory where the file
                    'MYPROJ' will be created (since the name of this
                    project is 'MYPROJ').

Let's check this one last time:
  project=MYPROJ
  dsn=dbi:Sybase:server=SOMESERVER;database=SOMEDATABASE
    dbuid=DBUSERID dbpwd=DBPASSWORD
  URL=https://www.YOURDOMAIN.com/MYPROJ
    webuid=MYUSER  webpwd=MYPASSWORD
  CGI database details will be in '/SOMEPATH/sifter/server/MYPROJ'
  Client details will be in '/SOMEPATH/sifter/client/MYPROJ'
  HTDOCS is in 'HTDOCS'

Shall we make the various files? y|n y

                    Check the values over carefully. If anything is
                    wrong, enter 'n' and start again. If any errors 
                    are made here, it'll insure something will fail.

Saved pointers to realm data in '/tmp/createproject.data'
Retrieving realm details from '/tmp/createproject.data'

                    Some of the input to createproject.pl is saved
                    here. This is only created so you can restart
                    createproject.pl and not need to re-answer the
                    questions.

+----------------------------------------------------
|   Initialize your database
+----------------------------------------------------
Are you sure you want to continue? (y/n) y

                    This will destroy your database, so be really
                    sure you answered the questions properly
                    and gave the correct DSN.

Verifying DBI access to database works...
  DSN=dbi:Sybase:server=SOMESERVER;database=SOMEDATABASE
  UID=DBUSERID
  PWD=DBPASSWORD
  Connected to database: dbi:Sybase:server=SOMESERVER;database=SOMEDATABASE
  CREATE table 'bogosity'
  INSERT OK
  UPDATE OK
  SELECT OK
  DELETE OK
  DROP OK
DBI access to database appears to work

                    At this point we have verified that the Perl DBI
                    code works. Your database userid and password can
                    create/drop tables and put data in and get it out.

Destroy the SIFTER database and re-initialize it...
WARNING: destroy all data in Sifter realm 'fusion' (dbtype=SYBASE)!
Proceed? (y/N) y

                    Now we are preparing to initialize the SIFTER data
                    in your database.

  Running: perl/scripts/../../db/sybase/clean.sql
  Running: perl/scripts/../../db/sybase/schema.sql
  Running: perl/scripts/../../db/sybase/proc.sql
  Running: perl/scripts/../../db/sybase/data.sql

Database for realm 'MYPROJ' has been initialized.

                    If successful, the SQL has been run using the
                    database userid and password and we've created
                    a bunch of tables.

Adding default attributes:
Added analysis attributes
Added map attributes
Added enumerations
SIFTER database successfully re-initialized. See log file '/tmp/createproject.sql.log'

                    Now we've loaded some SIFTER internal data into
                    the database.

Verifying SIFTER SERVER database access works...
SIFTER SERVER database access appears to work
SIFTER SERVER access is fine. See log file '/tmp/createproject.checkdb.log'

                    We have used the SIFTER realm information to
                    access the initialized tables.

Cleaning SIFTER for install. Ignore errors.

                    The database is ready, now install the project
                    software on the web server.

Creating Makefiles starting at '/home/tpg/dev/sifter'
Makefiles were created. See log file '/tmp/createproject.serverinstall.log'

                    We start by finding where you have installed the
                    SIFTER code and then invoking 'perl Makefile.PL'.
                    Since you have provided all the details earlier, 
                    you do not need to answer the questions.

Preparing SIFTER for install. Ignore deprecated messages...
Note: Alert.java uses or overrides a deprecated API.
Note: Recompile with -deprecation for details.
                    Ignore these java compiler warnings.
Note: ./ClosableFrame.java uses or overrides a deprecated API.
Note: Recompile with -deprecation for details.
etc.
SIFTER ready for install. See log file '/tmp/createproject.serverinstall.log'

                    'make server' has compiled everything and created
                    modules with the paths you provided.

Installing SIFTER...
Install was successful. See log file '/tmp/createproject.serverinstall.log'

                    Everything is copied to the HTDOCS you specified.
                    You should have a running SIFTER installation,
                    but we'll check anyway :-)

Check CGI scripts using DBI module...
CGI scripts can use the DBI module.

                    Your CGI scripts can actually use the CGI module.

Check CGI scripts using SIFTER module...
CGI scripts can use the SIFTER module.

                    We could access some SIFTER information on the
                    web server.

SIFTER project 'MYPROJ' is ready for you to load data into it.

That's it! Your project has been created. Now it's time to set up your attributes so you can eventually load your maps and results into the SIFTER database.

Version=$Id: createproject.html,v 1.5 2002/11/04 16:35:05 tpg Exp $