Project Part 1--Proposal for Charles Felt (Ed)

Subject: Student Availability Database

    The goal of my project is to build a web site and database that holds data to determine the availability of students for classes at a College or University.  I am trying to make this web site portable so that anyone who wants to can use it.  It not only has information on hours that students will be available for classes but also will be able to provide College Administrators with statistical data to help in class schedule decision making.

Description of Users: Students, College Administrators, and the Web Admin or "root"

    The biggest user group of the web site is the students.  The web site allows a student to log in by his/her College email ID and password, (the password will be randomly chosen by the web site and sent via email to his/her College email account), and input their work schedules via a form to the MySQL database.  The student can also input other contact information if desired, (telephone, address etc...).  There will also be the option to input times a student would prefer to take a class, (in blocks of times per day).  The student will be able to log in to the site and change their contact information, password, work hours and preferred blocks of times to take classes.

    The smaller and more involved user group of the web site is the College Administrators.  They have access to statistical output from the web site to make administrative decisions for scheduling classes.  Their access to the site will be initialized via a simple comma separated values text file, submitted to the web site admin to be loaded.  This text file contains only usernames and passwords.  There will be a function on the web site that enters data from the csv file to the database.  College Administrators will have the option to change passwords and contact information.  College Administrators also have access to all student accounts and data and can make changes as needed, (such as resetting student passwords).

    I've tried to design this web site to be easy to use, as well as easy to administer by the web administrator ("root").  Password issues for College Administrators are handled by the web site admin only ("root").  Only root can load the csv file that contains the names and passwords of administrators.  Root can also set global variables for the web site which include:

  1. email domain for the College (ie: "@uvsc.edu")- This is important for the password authentication for students.
  2. Name of the College (ie: "Utah Valley State College")- This will affect the identifying name of the college on all page interfaces.
  3. Address and contact information for the College- Will be helpful for anyone accessing the web site.
  4. Contact information for the web site admin, ("root").- Kept in a separate table.
  5. Location of the cgi-bin (as this can sometimes vary on different web sites).

    All of these global variables, will be kept in the MySQL database for ease of access.  There will be a default.sql file included with the project that the web administrator can use to start a new database.  Or the web administrator can load a backup.sql file if needed.  Variables needed to access the MySQL database as well as the root password to the web site will be kept in a protected file (settings.txt) on the web site.  The default password for root is "password".

Sample HTML Forms and Pages:

  1. The main or index.html page for the web site is a login page that redirects the user to the correct section of the web site.  It also allows for creation of new student accounts with the student's email alias.
  2. The Web Administrator's Page requires login with username of "root" and password and has access to the following:
  3. The College Administrator's Page requires College Administrator's login and has access to the following:
  4. The Student Page requires student login and has access to the following:

Sample Data:

  1. global_vars
  2. student
  3. college_administrator
  4. root_contact_info